static Class<?> resolveClass(String className) { final RuntimeFieldFactory<Object> inline = RuntimeFieldFactory .getInline(className); if (inline == null) return RuntimeEnv.loadClass(className); if (className.indexOf('.') != -1) return inline.typeClass(); switch (inline.id) { case ID_BOOL: return boolean.class; case ID_BYTE: return byte.class; case ID_CHAR: return char.class; case ID_SHORT: return short.class; case ID_INT32: return int.class; case ID_INT64: return long.class; case ID_FLOAT: return float.class; case ID_DOUBLE: return double.class; default: throw new RuntimeException("Should never happen."); } }
@Override public <T> Field<T> create(int number, String name, java.lang.reflect.Field field, IdStrategy strategy) { final RuntimeFieldFactory<Collection<?>> factory = 0 != (IdStrategy.COLLECTION_SCHEMA_ON_REPEATED_FIELDS & strategy.flags) ? RuntimeCollectionFieldFactory.getFactory() : RuntimeRepeatedFieldFactory.getFactory(); return factory.create(number, name, field, strategy); }
value = BYTE.readFrom(input); break; case ID_SHORT: value = SHORT.readFrom(input); break; case ID_INT32: value = INT32.readFrom(input); break; case ID_INT64: value = INT64.readFrom(input); break; case ID_FLOAT: value = FLOAT.readFrom(input); break; case ID_DOUBLE: value = DOUBLE.readFrom(input); break; case ID_BIGDECIMAL: value = BIGDECIMAL.readFrom(input); break; case ID_BIGINTEGER: value = BIGINTEGER.readFrom(input); break; default:
if (!Modifier.isStatic(mod) && !Modifier.isTransient(mod) && f.getAnnotation(Exclude.class) == null) final Field<T> field = RuntimeFieldFactory.getFieldFactory( f.getType(), strategy).create(++i, entry.getValue(), f, strategy); fields.add(field);
@SuppressWarnings("unchecked") static void writeObjectTo(Output output, Object value, Schema<?> currentSchema, IdStrategy strategy) throws IOException { final Class<Object> clazz = (Class<Object>) value.getClass(); final RuntimeFieldFactory<Object> inline = RuntimeFieldFactory .getInline(clazz); if (inline != null) { // scalar value inline.writeTo(output, inline.id, value, false); return; } // AtomicInteger/AtomicLong final Schema<Object> schema = strategy.writePojoIdTo(output, ID_POJO, clazz).getSchema(); if (output instanceof StatefulOutput) { // update using the derived schema. ((StatefulOutput) output).updateLast(schema, currentSchema); } schema.writeTo(output, value); }
BYTE.transfer(pipe, input, output, number, false); break; case ID_SHORT: SHORT.transfer(pipe, input, output, number, false); break; case ID_INT32: INT32.transfer(pipe, input, output, number, false); break; case ID_INT64: INT64.transfer(pipe, input, output, number, false); break; case ID_FLOAT: FLOAT.transfer(pipe, input, output, number, false); break; case ID_DOUBLE: DOUBLE.transfer(pipe, input, output, number, false); break; case ID_BIGDECIMAL: BIGDECIMAL.transfer(pipe, input, output, number, false); break; case ID_BIGINTEGER: BIGINTEGER.transfer(pipe, input, output, number, false); break; default:
@Override public Class<?> typeClass() { return org.typeClass(); }
Class<Object> ct = (Class<Object>) clazz.getComponentType(); RuntimeFieldFactory<?> rff = RuntimeFieldFactory.getFieldFactory( ct, strategy); .pojo(ct, null, strategy)))
RuntimeFieldFactory.getInline(componentType);
@Override public void writeTo(Output output, int number, Map<?, ?> value, boolean repeated) throws IOException { org.writeTo(output, number, value, repeated); }
@Override public FieldType getFieldType() { return org.getFieldType(); }
/** * Gets the runtime field factory of the given {@code clazz}. * <p> * Method overload for backwards compatibility. */ public static RuntimeFieldFactory<?> getFieldFactory(Class<?> clazz) { return getFieldFactory(clazz, RuntimeEnv.ID_STRATEGY); }
@SuppressWarnings("unchecked") static void writeObjectTo(Output output, Object value, Schema<?> currentSchema, IdStrategy strategy) throws IOException { final Class<Object> clazz = (Class<Object>) value.getClass(); final RuntimeFieldFactory<Object> inline = RuntimeFieldFactory .getInline(clazz); if (inline != null) { // scalar value inline.writeTo(output, inline.id, value, false); return; } // AtomicInteger/AtomicLong final Schema<Object> schema = strategy.writePojoIdTo(output, ID_POJO, clazz).getSchema(); if (output instanceof StatefulOutput) { // update using the derived schema. ((StatefulOutput) output).updateLast(schema, currentSchema); } schema.writeTo(output, value); }
if (!Modifier.isStatic(mod) && !Modifier.isTransient(mod) && f.getAnnotation(Exclude.class) == null) final Field<T> field = RuntimeFieldFactory.getFieldFactory( f.getType(), strategy).create(++i, entry.getValue(), f, strategy); fields.add(field);
BYTE.transfer(pipe, input, output, number, false); break; case ID_SHORT: SHORT.transfer(pipe, input, output, number, false); break; case ID_INT32: INT32.transfer(pipe, input, output, number, false); break; case ID_INT64: INT64.transfer(pipe, input, output, number, false); break; case ID_FLOAT: FLOAT.transfer(pipe, input, output, number, false); break; case ID_DOUBLE: DOUBLE.transfer(pipe, input, output, number, false); break; case ID_BIGDECIMAL: BIGDECIMAL.transfer(pipe, input, output, number, false); break; case ID_BIGINTEGER: BIGINTEGER.transfer(pipe, input, output, number, false); break; default:
@Override public Class<?> typeClass() { return org.typeClass(); }
Class<Object> ct = (Class<Object>) clazz.getComponentType(); RuntimeFieldFactory<?> rff = RuntimeFieldFactory.getFieldFactory( ct, strategy); .pojo(ct, null, strategy)))
RuntimeFieldFactory.getInline(componentType);
@Override public void writeTo(Output output, int number, Map<?, ?> value, boolean repeated) throws IOException { org.writeTo(output, number, value, repeated); }
@Override public FieldType getFieldType() { return org.getFieldType(); }