List<BeanPropertyWriter> props = builder.getProperties(); boolean includeByDefault = config.isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION); final int propCount = props.size(); int viewsFound = 0; filtered[i] = constructFilteredBeanWriter(bpw, views); return; builder.setFilteredProperties(filtered);
if (beanDesc.getBeanClass() == Object.class) { return prov.getUnknownTypeSerializer(Object.class); BeanSerializerBuilder builder = constructBeanSerializerBuilder(beanDesc); builder.setConfig(config); prov.getAnnotationIntrospector().findAndAddVirtualProperties(config, beanDesc.getClassInfo(), props); builder.setObjectIdWriter(constructObjectIdHandler(prov, beanDesc, props)); builder.setProperties(props); builder.setFilterId(findFilterId(config, beanDesc)); AnnotatedMember anyGetter = beanDesc.findAnyGetter(); if (anyGetter != null) { JavaType type = anyGetter.getType(); BeanProperty.Std anyProp = new BeanProperty.Std(name, valueType, null, anyGetter, PropertyMetadata.STD_OPTIONAL); builder.setAnyGetter(new AnyGetterWriter(anyProp, anyGetter, anySer)); ser = (JsonSerializer<Object>) builder.build(); } catch (RuntimeException e) { prov.reportBadTypeDefinition(beanDesc, "Failed to construct BeanSerializer for %s: (%s) %s", if (beanDesc.hasKnownClassAnnotations()) { return builder.createDummy();
/** * Constructor used by {@link BeanSerializerBuilder} to create an * instance * * @param type Nominal type of values handled by this serializer * @param builder Builder for accessing other collected information */ protected BeanSerializerBase(JavaType type, BeanSerializerBuilder builder, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) { super(type); _beanType = type; _props = properties; _filteredProps = filteredProperties; if (builder == null) { // mostly for testing _typeId = null; _anyGetterWriter = null; _propertyFilterId = null; _objectIdWriter = null; _serializationShape = null; } else { _typeId = builder.getTypeId(); _anyGetterWriter = builder.getAnyGetter(); _propertyFilterId = builder.getFilterId(); _objectIdWriter = builder.getObjectIdWriter(); JsonFormat.Value format = builder.getBeanDescription().findExpectedFormat(null); _serializationShape = (format == null) ? null : format.getShape(); } }
@Override protected void processViews(SerializationConfig config, BeanSerializerBuilder builder) { super.processViews(config, builder); // ignore fields only for concrete class // note, that you can avoid or change this check Class<?> beanClass = builder.getBeanDescription().getBeanClass(); ClassUtil.ClassInfo classInfo = ClassUtil.getClassInfo(beanClass); // if (builder.getBeanDescription().getBeanClass().equals(Entity.class)) // { // get original writer List<BeanPropertyWriter> originalWriters = builder.getProperties(); // create actual writers List<BeanPropertyWriter> writers = new ArrayList<BeanPropertyWriter>(); String[] fs = this._getFilterFields(classInfo); for (BeanPropertyWriter writer : originalWriters) { final String propName = writer.getName(); // if it isn't ignored field, add to actual writers list boolean find = isFilterField( classInfo, propName, fs); if(!find){ writers.add(writer); } } builder.setProperties(writers); } }
BeanSerializerBuilder builder) { List<PropertyFilter> filters = (List<PropertyFilter>) RequestContextHolder.getRequestAttributes().getAttribute("filters", RequestAttributes.SCOPE_REQUEST); PropertyFilter filter = getPropertyFilterForClass(filters, beanDesc.getBeanClass()); if(filter == null) { return builder; for(BeanPropertyWriter writer : builder.getProperties()) { if(!filter.propertiesToIgnore.contains(writer.getName())) { propsToWrite.add(writer); builder.setProperties(propsToWrite); return builder;
public BuilderAndBeanPropertiyWriters constructBeanSerializerBuilder(JavaType type) { BeanDescription beanDesc = serializerProvider.getConfig().introspect(type); BeanSerializerBuilder builder = new BeanSerializerBuilder(beanDesc); BeanPropertyWriter[] properties; try { properties = serializerFactory.findBeanProperties(serializerProvider, beanDesc, builder).toArray(new BeanPropertyWriter[0]); } catch (JsonMappingException e) { throw new RuntimeException("Unexpected exception", e); } return new BuilderAndBeanPropertiyWriters(builder, properties); }
/** * Constructor used by {@link BeanSerializerBuilder} to create an * instance * * @param type Nominal type of values handled by this serializer * @param builder Builder for accessing other collected information */ protected BeanSerializerBase(JavaType type, BeanSerializerBuilder builder, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) { super(type); _props = properties; _filteredProps = filteredProperties; if (builder == null) { // mostly for testing _typeId = null; _anyGetterWriter = null; _propertyFilterId = null; _objectIdWriter = null; } else { _typeId = builder.getTypeId(); _anyGetterWriter = builder.getAnyGetter(); _propertyFilterId = builder.getFilterId(); _objectIdWriter = builder.getObjectIdWriter(); } }
if (builder.getBeanDescription().getBeanClass().equals(Entity.class)){ List<BeanPropertyWriter> originalWriters = builder.getProperties(); builder.setProperties(writers);
protected BeanSerializerBuilder constructBeanSerializerBuilder(BeanDescription beanDesc) { return new BeanSerializerBuilder(beanDesc); }
@Override protected void processViews(SerializationConfig config, BeanSerializerBuilder builder) { super.processViews(config, builder); // ignore fields only for concrete class // note, that you can avoid or change this check Class<?> beanClass = builder.getBeanDescription().getBeanClass(); ClassUtil.ClassInfo classInfo = ClassUtil.getClassInfo(beanClass); // if (builder.getBeanDescription().getBeanClass().equals(Entity.class)) // { // get original writer List<BeanPropertyWriter> originalWriters = builder.getProperties(); // create actual writers List<BeanPropertyWriter> writers = new ArrayList<BeanPropertyWriter>(); String[] fs = this._getFilterFields(classInfo); for (BeanPropertyWriter writer : originalWriters) { final String propName = writer.getName(); // if it isn't ignored field, add to actual writers list boolean find = isFilterField( classInfo, propName, fs); if(!find){ writers.add(writer); } } builder.setProperties(writers); } }
protected BeanSerializerBuilder constructBeanSerializerBuilder(BeanDescription beanDesc) { return new BeanSerializerBuilder(beanDesc); }
if (beanDesc.getBeanClass() == Object.class) { return prov.getUnknownTypeSerializer(Object.class); BeanSerializerBuilder builder = constructBeanSerializerBuilder(beanDesc); builder.setConfig(config); List<BeanPropertyWriter> props = findBeanProperties(prov, beanDesc, builder); if (props == null) { props = new ArrayList<BeanPropertyWriter>(); props = filterBeanProperties(config, beanDesc, props); builder.setObjectIdWriter(constructObjectIdHandler(prov, beanDesc, props)); builder.setProperties(props); builder.setFilterId(findFilterId(config, beanDesc)); JavaType type = anyGetter.getType(beanDesc.bindingsForBeanType()); BeanProperty.Std anyProp = new BeanProperty.Std(anyGetter.getName(), valueType, beanDesc.getClassAnnotations(), anyGetter); builder.setAnyGetter(new AnyGetterWriter(anyProp, anyGetter, mapSer)); JsonSerializer<Object> ser = (JsonSerializer<Object>) builder.build(); if (beanDesc.hasKnownClassAnnotations()) { return builder.createDummy();
List<BeanPropertyWriter> props = builder.getProperties(); boolean includeByDefault = config.isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION); final int propCount = props.size(); int viewsFound = 0; filtered[i] = constructFilteredBeanWriter(bpw, views); return; builder.setFilteredProperties(filtered);
/** * Constructor used by {@link BeanSerializerBuilder} to create an * instance * * @param type Nominal type of values handled by this serializer * @param builder Builder for accessing other collected information */ protected BeanSerializerBase(JavaType type, BeanSerializerBuilder builder, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) { super(type); _props = properties; _filteredProps = filteredProperties; if (builder == null) { // mostly for testing _typeId = null; _anyGetterWriter = null; _propertyFilterId = null; _objectIdWriter = null; _serializationShape = null; } else { _typeId = builder.getTypeId(); _anyGetterWriter = builder.getAnyGetter(); _propertyFilterId = builder.getFilterId(); _objectIdWriter = builder.getObjectIdWriter(); JsonFormat.Value format = builder.getBeanDescription().findExpectedFormat(null); _serializationShape = (format == null) ? null : format.getShape(); } }
protected BeanSerializerBuilder constructBeanSerializerBuilder(BeanDescription beanDesc) { return new BeanSerializerBuilder(beanDesc); }
if (beanDesc.getBeanClass() == Object.class) { throw new IllegalArgumentException("Can not create bean serializer for Object.class"); BeanSerializerBuilder builder = constructBeanSerializerBuilder(beanDesc); List<BeanPropertyWriter> props = findBeanProperties(prov, beanDesc, builder); props = filterBeanProperties(config, beanDesc, props); builder.setObjectIdWriter(constructObjectIdHandler(prov, beanDesc, props)); builder.setProperties(props); builder.setFilterId(findFilterId(config, beanDesc)); JavaType type = anyGetter.getType(beanDesc.bindingsForBeanType()); boolean staticTyping = config.isEnabled(MapperFeature.USE_STATIC_TYPING); JavaType valueType = type.getContentType(); TypeSerializer typeSer = createTypeSerializer(config, valueType); BeanProperty.Std anyProp = new BeanProperty.Std(anyGetter.getName(), valueType, beanDesc.getClassAnnotations(), anyGetter); builder.setAnyGetter(new AnyGetterWriter(anyProp, anyGetter, mapSer)); JsonSerializer<Object> ser = (JsonSerializer<Object>) builder.build(); if (beanDesc.hasKnownClassAnnotations()) { return builder.createDummy();
List<BeanPropertyWriter> props = builder.getProperties(); boolean includeByDefault = config.isEnabled(MapperFeature.DEFAULT_VIEW_INCLUSION); final int propCount = props.size(); int viewsFound = 0; filtered[i] = constructFilteredBeanWriter(bpw, views); return; builder.setFilteredProperties(filtered);
/** * Constructor used by {@link BeanSerializerBuilder} to create an * instance * * @param type Nominal type of values handled by this serializer * @param builder Builder for accessing other collected information */ protected BeanSerializerBase(JavaType type, BeanSerializerBuilder builder, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) { super(type); _props = properties; _filteredProps = filteredProperties; if (builder == null) { // mostly for testing _typeId = null; _anyGetterWriter = null; _propertyFilterId = null; _objectIdWriter = null; _serializationShape = null; } else { _typeId = builder.getTypeId(); _anyGetterWriter = builder.getAnyGetter(); _propertyFilterId = builder.getFilterId(); _objectIdWriter = builder.getObjectIdWriter(); JsonFormat.Value format = builder.getBeanDescription().findExpectedFormat(null); _serializationShape = (format == null) ? null : format.getShape(); } }
protected BeanSerializerBuilder constructBeanSerializerBuilder(BeanDescription beanDesc) { return new BeanSerializerBuilder(beanDesc); }
if (beanDesc.getBeanClass() == Object.class) { return prov.getUnknownTypeSerializer(Object.class); BeanSerializerBuilder builder = constructBeanSerializerBuilder(beanDesc); builder.setConfig(config); prov.getAnnotationIntrospector().findAndAddVirtualProperties(config, beanDesc.getClassInfo(), props); builder.setObjectIdWriter(constructObjectIdHandler(prov, beanDesc, props)); builder.setProperties(props); builder.setFilterId(findFilterId(config, beanDesc)); AnnotatedMember anyGetter = beanDesc.findAnyGetter(); if (anyGetter != null) { JavaType type = anyGetter.getType(); BeanProperty.Std anyProp = new BeanProperty.Std(name, valueType, null, anyGetter, PropertyMetadata.STD_OPTIONAL); builder.setAnyGetter(new AnyGetterWriter(anyProp, anyGetter, anySer)); ser = (JsonSerializer<Object>) builder.build(); } catch (RuntimeException e) { prov.reportBadTypeDefinition(beanDesc, "Failed to construct BeanSerializer for %s: (%s) %s", if (beanDesc.hasKnownClassAnnotations()) { return builder.createDummy();