@Override protected JsonSerializer initialValue() { return new JsonSerializerFactory().addFilter((parent, fieldAccess) -> !fieldAccess.name().equals("metaClass")).create(); } };
@Override protected JsonSerializer initialValue() { return new JsonSerializerFactory().setUseAnnotations(true) .addFilter((parent, fieldAccess) -> !fieldAccess.name().equals("metaClass")).create(); } };
private Schema convertFieldToSchema(final FieldAccess fieldAccess) { try { final Class<?> type = fieldAccess.type(); final Schema schema = mappings.get(type); final String description = getDescription(fieldAccess); if (schema != null) { if (description == null) { return schema; } else { return Schema.schemaWithDescription(schema, description); } } return convertFieldToComplexSchema(fieldAccess); } catch (Exception ex) { logger.warn("unable to convert field " + fieldAccess.name() + " from " + fieldAccess.declaringParent(), ex); return Schema.schemaWithFormat("error", "error.see.logs"); } }
private void addClass(final ClassMeta<?> classMeta) { try { if (definitionMap.containsKey(classMeta.name())) { return; } definitionMap.put(classMeta.name(), null); final DefinitionBuilder definitionBuilder = new DefinitionBuilder(); final String description = getDescription(classMeta); definitionBuilder.setDescription(description); final Map<String, FieldAccess> fieldAccessMap = classMeta.fieldMap(); fieldAccessMap.entrySet().forEach(fieldAccessEntry -> { final FieldAccess fieldAccess = fieldAccessEntry.getValue(); if (fieldAccess.ignore() || fieldAccess.isStatic()) { return; } definitionBuilder.addProperty(fieldAccess.name(), convertFieldToSchema(fieldAccess)); }); final Definition definition = definitionBuilder.build(); definitionMap.put(classMeta.name(), definition); } catch (Exception ex) { logger.warn("Unable to add class " + classMeta.longName(), ex); } }
@Override public boolean serializeField(JsonSerializerInternal serializer, Object parent, FieldAccess fieldAccess, CharBuf builder) { // It only check parent class equality, doesn't work with inheritance if (parentClass == parent.getClass() && fieldName.equals(fieldAccess.name())) { Object value = fieldAccess.getValue(parent); serialize(serializer, parent, fieldAccess, value, builder); return true; } return false; }
private static void fieldByFieldCopy( Object src, Object dst, Set<String> ignore ) { final Class<?> srcClass = src.getClass(); Map<String, FieldAccess> srcFields = Reflection.getAllAccessorFields( srcClass ); final Class<?> dstClass = dst.getClass(); Map<String, FieldAccess> dstFields = Reflection.getAllAccessorFields ( dstClass ); for ( FieldAccess srcField : srcFields.values() ) { if (ignore.contains ( srcField.name() )) { continue; } FieldAccess dstField = dstFields.get ( srcField.name() ); try { copySrcFieldToDestField ( src, dst, dstField, srcField, ignore ); }catch (Exception ex) { Exceptions.handle( Str.sputs("copying field", srcField.name(), srcClass, " to ", dstField.name(), dstClass), ex ); } } }
@Override public boolean serializeField(JsonSerializerInternal serializer, Object parent, FieldAccess fieldAccess, CharBuf builder) { // It only check parent class equality, doesn't work with inheritance if (parentClass == parent.getClass() && fieldName.equals(fieldAccess.name())) { Object value = fieldAccess.getValue(parent); serialize(serializer, parent, fieldAccess, value, builder); return true; } return false; }
@Override public boolean serializeField(JsonSerializerInternal serializer, Object parent, FieldAccess fieldAccess, CharBuf builder) { // It only check parent class equality, doesn't work with inheritance if (parentClass == parent.getClass() && fieldName.equals(fieldAccess.name())) { Object value = fieldAccess.getValue(parent); serialize(serializer, parent, fieldAccess, value, builder); return true; } return false; }
private static void fieldByFieldCopy( Object src, Object dst, Set<String> ignore ) { final Class<?> srcClass = src.getClass(); Map<String, FieldAccess> srcFields = Reflection.getAllAccessorFields( srcClass ); final Class<?> dstClass = dst.getClass(); Map<String, FieldAccess> dstFields = Reflection.getAllAccessorFields ( dstClass ); for ( FieldAccess srcField : srcFields.values() ) { if (ignore.contains ( srcField.name() )) { continue; } FieldAccess dstField = dstFields.get ( srcField.name() ); try { copySrcFieldToDestField ( src, dst, dstField, srcField, ignore ); }catch (Exception ex) { Exceptions.handle( Str.sputs("copying field", srcField.name(), srcClass, " to ", dstField.name(), dstClass), ex ); } } }
private static void fieldByFieldCopy( Object src, Object dst ) { final Class<?> srcClass = src.getClass(); Map<String, FieldAccess> srcFields = Reflection.getAllAccessorFields( srcClass ); final Class<?> dstClass = dst.getClass(); Map<String, FieldAccess> dstFields = Reflection.getAllAccessorFields ( dstClass ); for ( FieldAccess srcField : srcFields.values() ) { FieldAccess dstField = dstFields.get ( srcField.name() ); try { copySrcFieldToDestField ( src, dst, dstField, srcField, null ); }catch (Exception ex) { Exceptions.handle( Str.sputs("copying field", srcField.name(), srcClass, " to ", dstField.name(), dstClass), ex ); } } }
private static void fieldByFieldCopy( Object src, Object dst ) { final Class<?> srcClass = src.getClass(); Map<String, FieldAccess> srcFields = Reflection.getAllAccessorFields( srcClass ); final Class<?> dstClass = dst.getClass(); Map<String, FieldAccess> dstFields = Reflection.getAllAccessorFields ( dstClass ); for ( FieldAccess srcField : srcFields.values() ) { FieldAccess dstField = dstFields.get ( srcField.name() ); try { copySrcFieldToDestField ( src, dst, dstField, srcField, null ); }catch (Exception ex) { Exceptions.handle( Str.sputs("copying field", srcField.name(), srcClass, " to ", dstField.name(), dstClass), ex ); } } }
private final Map<String, FieldAccess> doGetFields ( Class<? extends Object> aClass ) { Map<String, FieldAccess> fields = Maps.copy ( Reflection.getPropertyFieldAccessMapFieldFirstForSerializer ( aClass ) ); List<FieldAccess> removeFields = new ArrayList<>(); for (FieldAccess field : fields.values()) { if (field.isWriteOnly ()) { removeFields.add(field); } } for (FieldAccess fieldAccess : removeFields) { fields.remove(fieldAccess.name()); } return fields; }
private final Map<String, FieldAccess> doGetFields ( Class<? extends Object> aClass ) { Map<String, FieldAccess> fields = Maps.copy ( Reflection.getPropertyFieldAccessMapFieldFirstForSerializer ( aClass ) ); List<FieldAccess> removeFields = new ArrayList<>(); for (FieldAccess field : fields.values()) { if (field.isWriteOnly ()) { removeFields.add(field); } } for (FieldAccess fieldAccess : removeFields) { fields.remove(fieldAccess.name()); } return fields; }
private final Map<String, FieldAccess> doGetFields ( Class<? extends Object> aClass ) { Map<String, FieldAccess> fields = Maps.copy ( Reflection.getPropertyFieldAccessMapFieldFirstForSerializer ( aClass ) ); List<FieldAccess> removeFields = new ArrayList<>(); for (FieldAccess field : fields.values()) { if (field.isWriteOnly ()) { removeFields.add(field); } } for (FieldAccess fieldAccess : removeFields) { fields.remove(fieldAccess.name()); } return fields; }
@Override protected JsonSerializer initialValue() { return new JsonSerializerFactory().addFilter((parent, fieldAccess) -> !fieldAccess.name().equals("metaClass")).create(); } };
@Override protected JsonSerializer initialValue() { return new JsonSerializerFactory().addFilter((parent, fieldAccess) -> !fieldAccess.name().equals("metaClass")).create(); } };
public static Map<String, FieldAccess> getAllAccessorFields( Class<? extends Object> theClass, boolean useUnsafe ) { Map<String, FieldAccess> map = getAccessorFieldsFromCache(theClass, useUnsafe); if ( map == null ) { List<FieldAccess> list = Lists.mapBy( getAllFields( theClass ), new FieldConverter( useUnsafe ) ); map = new LinkedHashMap<>( list.size() ); for ( FieldAccess fieldAccess : list ) { map.put( fieldAccess.name(), fieldAccess ); } setAccessorFieldInCache( theClass, useUnsafe, map ); } return map; }
public static Map<String, FieldAccess> getAllAccessorFields( Class<? extends Object> theClass, boolean useUnsafe ) { Map<String, FieldAccess> map = getAccessorFieldsFromCache(theClass, useUnsafe); if ( map == null ) { List<FieldAccess> list = Lists.mapBy( getAllFields( theClass ), new FieldConverter( useUnsafe ) ); map = new LinkedHashMap<>( list.size() ); for ( FieldAccess fieldAccess : list ) { map.put( fieldAccess.name(), fieldAccess ); } setAccessorFieldInCache( theClass, useUnsafe, map ); } return map; }
@Override protected JsonSerializer initialValue() { return new JsonSerializerFactory().setUseAnnotations(true) .addFilter((parent, fieldAccess) -> !fieldAccess.name().equals("metaClass")).create(); } };
@Override protected JsonSerializer initialValue() { return new JsonSerializerFactory().setUseAnnotations(true) .addFilter((parent, fieldAccess) -> !fieldAccess.name().equals("metaClass")).create(); } };