private Map<FieldMetadata<?, ?>, TypeHandler> getFieldHandlerMap(ClassMetadata<?, ?> type) { Map<FieldMetadata<?, ?>, TypeHandler> handlerMap = Maps.newHashMap(); for (FieldMetadata<?, ?> field : type.getFields()) { TypeHandler<?> handler = getHandlerFor(field.getField().getGenericType()); if (handler != null) { handlerMap.put(field, handler); } else { logger.info("Unsupported field: '{}.{}'", type.getUri(), field.getName()); } } return handlerMap; }
private <T> Map<Class<? extends T>, Integer> generateIds(ClassLibrary<T> classLibrary) { Map<Class<? extends T>, Integer> result = Maps.newHashMap(); for (ClassMetadata<? extends T, ?> metadata : classLibrary) { int index = result.size(); result.put(metadata.getType(), index); int fieldId = 0; for (FieldMetadata<?, ?> field : metadata.getFields()) { if (fieldId >= 256) { logger.error("Class {} has too many fields (>255), serialization will be incomplete", metadata.getUri()); break; } field.setId((byte) fieldId); fieldId++; } } return result; }
for (FieldMetadata<? extends UIWidget, ?> field : elementMetadata.getFields()) { if (jsonObject.has(field.getSerializationName())) { unknownFields.remove(field.getSerializationName());