registerTypeHandler<T extends ExtendedType> static method

void registerTypeHandler<T extends ExtendedType>(
  1. ExtendedTypeHandler<T> typeHandler
)

Used to register a ExtendedTypeHandler for type T.

Implementation

static void registerTypeHandler<T extends ExtendedType>(
    ExtendedTypeHandler<T> typeHandler) {
  var typeName = typeHandler.getTypeName();
  var typeID = typeHandler.getTypeID();

  if (typeName.isEmpty || hasBlankChar(typeName)) {
    throw StateError('Invalid ExtendedType name: $typeName');
  }
  if (typeID <= 0) throw StateError("ExtendedType ID can't be <= 0: $typeID");

  if (typeHandlersRegistered.containsKey(typeName)) return;

  if (typeHandlersRegisteredIDs.containsKey(typeID)) {
    throw StateError(
        'TypeID[$typeID] conflict: $typeHandler != ${typeHandlersRegisteredIDs[typeID]}');
  }

  typeHandlersRegistered[typeName] = typeHandler;
  typeHandlersRegisteredIDs[typeID] = typeHandler;
}