in modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryFieldAccessor.java [56:121]
public static BinaryFieldAccessor create(Field field, int id) {
BinaryWriteMode mode = BinaryUtils.mode(field.getType());
switch (mode) {
case P_BYTE:
return new BytePrimitiveAccessor(field, id);
case P_BOOLEAN:
return new BooleanPrimitiveAccessor(field, id);
case P_SHORT:
return new ShortPrimitiveAccessor(field, id);
case P_CHAR:
return new CharPrimitiveAccessor(field, id);
case P_INT:
return new IntPrimitiveAccessor(field, id);
case P_LONG:
return new LongPrimitiveAccessor(field, id);
case P_FLOAT:
return new FloatPrimitiveAccessor(field, id);
case P_DOUBLE:
return new DoublePrimitiveAccessor(field, id);
case BYTE:
case BOOLEAN:
case SHORT:
case CHAR:
case INT:
case LONG:
case FLOAT:
case DOUBLE:
case DECIMAL:
case STRING:
case UUID:
case DATE:
case TIMESTAMP:
case TIME:
case BYTE_ARR:
case SHORT_ARR:
case INT_ARR:
case LONG_ARR:
case FLOAT_ARR:
case DOUBLE_ARR:
case CHAR_ARR:
case BOOLEAN_ARR:
case DECIMAL_ARR:
case STRING_ARR:
case UUID_ARR:
case DATE_ARR:
case TIMESTAMP_ARR:
case TIME_ARR:
case ENUM_ARR:
case OBJECT_ARR:
case BINARY_OBJ:
case BINARY:
return new DefaultFinalClassAccessor(field, id, mode, false);
default:
return new DefaultFinalClassAccessor(field, id, mode, !U.isFinal(field.getType()));
}
}