throws JsonMappingException if (_beanType.isMapLikeType() && Map.class.isAssignableFrom(_handledType)) { JavaType mapEntryType = _beanType.findSuperType(Map.Entry.class); JavaType kt = mapEntryType.containedTypeOrUnknown(0); JsonIgnoreProperties.Value ignorals = intr.findPropertyIgnorals(accessor); if (ignorals != null) { ignoredProps = ignorals.findIgnoredForSerialization(); ObjectIdInfo objectIdInfo = intr.findObjectIdInfo(accessor); if (objectIdInfo == null) { objectIdInfo = intr.findObjectReferenceInfo(accessor, null); if (objectIdInfo != null) { oiw = _objectIdWriter.withAlwaysAsId(objectIdInfo.getAlwaysAsId()); if (propName.equals(prop.getName())) { idProp = prop; idType = idProp.getType(); gen = new PropertyBasedObjectIdGenerator(objectIdInfo, idProp); oiw = ObjectIdWriter.construct(idType, (PropertyName) null, gen, objectIdInfo.getAlwaysAsId());
BeanPropertyWriter prop = _props[i]; if (!prop.willSuppressNulls() && !prop.hasNullSerializer()) { JsonSerializer<Object> nullSer = provider.findNullValueSerializer(prop); if (nullSer != null) { prop.assignNullSerializer(nullSer); w2.assignNullSerializer(nullSer); if (prop.hasSerializer()) { continue; if (ser == null) { JavaType type = prop.getSerializationType(); type = prop.getType(); if (!type.isFinal()) { if (type.isContainerType() || type.containedTypeCount() > 0) { prop.setNonTrivialBaseType(type); ser = provider.findValueSerializer(type, prop); BeanPropertyWriter w2 = _filteredProps[i]; if (w2 != null) { w2.assignSerializer(ser); prop.assignSerializer(ser);
public void depositSchemaProperty(ObjectNode propertiesNode, SerializerProvider provider) throws JsonMappingException { JavaType propType = getSerializationType(); Type hint = (propType == null) ? getType() : propType.getRawClass(); JsonNode schemaNode; JsonSerializer<Object> ser = getSerializer(); if (ser == null) { // nope ser = provider.findValueSerializer(getType(), this); boolean isOptional = !isRequired(); if (ser instanceof SchemaAware) { schemaNode = ((SchemaAware) ser).getSchema(provider, hint, .getDefaultSchemaNode(); _depositSchemaProperty(propertiesNode, schemaNode);
@Override public void serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov) throws Exception { Class<?> activeView = prov.getActiveView(); if (activeView == null || _view.isAssignableFrom(activeView)) { _delegate.serializeAsField(bean, gen, prov); } else { _delegate.serializeAsOmittedField(bean, gen, prov); } }
@Deprecated @Override public void serializeAsField(Object bean, JsonGenerator jgen, SerializerProvider provider, BeanPropertyWriter writer) throws Exception { if (include(writer)) { writer.serializeAsField(bean, jgen, provider); } else if (!jgen.canOmitFields()) { // since 2.3 writer.serializeAsOmittedField(bean, jgen, provider); } }
@Override public void serializeAsField(Object bean, JsonGenerator jgen, SerializerProvider prov) throws Exception { if (bean instanceof DefaultErrorDTO) { DefaultErrorDTO error = (DefaultErrorDTO) bean; try { int codeAsInt = Integer.parseInt(error.code); jgen.writeFieldName(_name); jgen.writeNumber(codeAsInt); return; } catch (Throwable t) { // Do nothing - let it be serialized normally as a string. } } super.serializeAsField(bean, jgen, prov); } }
public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeString(customValue); for (int i = 0; i < beanProperties.size(); i++) { BeanPropertyWriter beanPropertyWriter = beanProperties.get(i); if (PropertyName.equals(beanPropertyWriter.getName())) { beanProperties.set(i, beanPropertyWriter.withSerializer(new CustomSerializer()));
/** * {@inheritDoc} * * @deprecated Provided for compatibility with deprecated method in Jackson. */ @Override @Deprecated public void serializeAsField( final Object pojo, final JsonGenerator jgen, final SerializerProvider prov, final BeanPropertyWriter writer) throws Exception { if (writer.getAnnotation(LogRedact.class) == null) { super.serializeAsField(pojo, jgen, prov, writer); } else { // since 2.3 if (_allowNull && writer.get(pojo) == null) { super.serializeAsField(pojo, jgen, prov, writer); } else { jgen.writeStringField(writer.getSerializedName().getValue(), REDACTION_STRING); } } }
return prov.reportBadPropertyDefinition(_beanDesc, propDef, ClassUtil.exceptionMessage(e)); JavaType ct = serializationType.getContentType(); prov.reportBadPropertyDefinition(_beanDesc, propDef, "serialization type "+serializationType+" has no content"); serializationType = serializationType.withContentTypeHandler(contentTypeSer); ct = serializationType.getContentType(); JsonInclude.Value inclV = _config.getDefaultInclusion(actualType.getRawClass(), rawPropertyType, _defaultInclusion); views = _beanDesc.findDefaultViews(); BeanPropertyWriter bpw = new BeanPropertyWriter(propDef, am, _beanDesc.getClassAnnotations(), declaredType, ser, typeSer, serializationType, suppressNulls, valueToSuppress, views); Object serDef = _annotationIntrospector.findNullSerializer(am); if (serDef != null) { bpw.assignNullSerializer(prov.serializerInstance(am, serDef)); NameTransformer unwrapper = _annotationIntrospector.findUnwrappingNameTransformer(am); if (unwrapper != null) { bpw = bpw.unwrappingWriter(unwrapper);
@Override public final void serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov) throws Exception { if (broken) { fallbackWriter.serializeAsField(bean, gen, prov); return; } boolean value; try { value = _propertyAccessor.booleanGetter(bean, _propertyIndex); } catch (Throwable t) { _handleProblem(bean, gen, prov, t, false); return; } if (!_suppressableSet || _suppressableBoolean != value) { gen.writeFieldName(_fastName); gen.writeBoolean(value); } }
JavaType ct = serializationType.getContentType(); prov.reportBadPropertyDefinition(_beanDesc, propDef, "serialization type "+serializationType+" has no content"); serializationType = serializationType.withContentTypeHandler(contentTypeSer); ct = serializationType.getContentType(); JsonInclude.Value inclV = _config.getDefaultPropertyInclusion(actualType.getRawClass(), _defaultInclusion); if (prov.isEnabled(MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS)) { am.fixAccess(_config.isEnabled(MapperFeature.OVERRIDE_PUBLIC_ACCESS_MODIFIERS)); BeanPropertyWriter bpw = new BeanPropertyWriter(propDef, am, _beanDesc.getClassAnnotations(), declaredType, ser, typeSer, serializationType, suppressNulls, valueToSuppress); Object serDef = _annotationIntrospector.findNullSerializer(am); if (serDef != null) { bpw.assignNullSerializer(prov.serializerInstance(am, serDef)); NameTransformer unwrapper = _annotationIntrospector.findUnwrappingNameTransformer(am); if (unwrapper != null) { bpw = bpw.unwrappingWriter(unwrapper);
if (_filteredProps != null && provider.getActiveView() != null) { props = _filteredProps; } else { BeanPropertyWriter prop = props[i]; if (prop == null) { // can have nulls in filtered list; but if so, MUST write placeholders gen.writeNull(); } else { prop.serializeAsElement(bean, gen, provider); String name = (i == props.length) ? "[anySetter]" : props[i].getName(); wrapAndThrow(provider, e, bean, name); } catch (StackOverflowError e) { JsonMappingException mapE = JsonMappingException.from(gen, "Infinite recursion (StackOverflowError)", e); String name = (i == props.length) ? "[anySetter]" : props[i].getName(); mapE.prependPath(new JsonMappingException.Reference(bean, name)); throw mapE;
if (_filteredProps != null && provider.getActiveView() != null) { props = _filteredProps; } else { BeanPropertyWriter prop = props[i]; if (prop == null) { // can have nulls in filtered list; but if so, MUST write placeholders gen.writeNull(); } else { prop.serializeAsElement(bean, gen, provider); String name = (i == props.length) ? "[anySetter]" : props[i].getName(); wrapAndThrow(provider, e, bean, name); } catch (StackOverflowError e) { JsonMappingException mapE = new JsonMappingException("Infinite recursion (StackOverflowError)", e); String name = (i == props.length) ? "[anySetter]" : props[i].getName(); mapE.prependPath(new JsonMappingException.Reference(bean, name)); throw mapE;
throws JsonMappingException JavaType propType = getSerializationType(); Type hint = (propType == null) ? getGenericPropertyType() : propType.getRawClass(); JsonNode schemaNode; JsonSerializer<Object> ser = getSerializer(); if (ser == null) { // nope Class<?> serType = getRawSerializationType(); if (serType == null) { serType = getPropertyType(); ser = provider.findValueSerializer(serType, this); boolean isOptional = !isRequired(provider.getAnnotationIntrospector()); if (ser instanceof SchemaAware) { schemaNode = ((SchemaAware) ser).getSchema(provider, hint, isOptional) ; schemaNode = JsonSchema.getDefaultSchemaNode(); propertiesNode.put(getName(), schemaNode);
if (_filteredProps != null && provider.getActiveView() != null) { props = _filteredProps; } else { BeanPropertyWriter prop = props[i]; if (prop != null) { // can have nulls in filtered list prop.serializeAsField(bean, gen, provider); _anyGetterWriter.getAndSerialize(bean, gen, provider); String name = (i == props.length) ? "[anySetter]" : props[i].getName(); wrapAndThrow(provider, e, bean, name); } catch (StackOverflowError e) { JsonMappingException mapE = new JsonMappingException(gen, "Infinite recursion (StackOverflowError)", e); String name = (i == props.length) ? "[anySetter]" : props[i].getName(); mapE.prependPath(new JsonMappingException.Reference(bean, name)); throw mapE;
@Override public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) { for (int i = 0; i < beanProperties.size(); ++i) { final BeanPropertyWriter writer = beanProperties.get(i); if (Optional.class.isAssignableFrom(writer.getType().getRawClass())) { beanProperties.set(i, new GuavaOptionalBeanPropertyWriter(writer)); } } return beanProperties; } }
throws JsonMappingException JavaType propType = getSerializationType(); Type hint = (propType == null) ? getGenericPropertyType() : propType.getRawClass(); JsonNode schemaNode; JsonSerializer<Object> ser = getSerializer(); if (ser == null) { // nope Class<?> serType = getRawSerializationType(); if (serType == null) { serType = getPropertyType(); ser = provider.findValueSerializer(serType, this); boolean isOptional = !isRequired(); if (ser instanceof SchemaAware) { schemaNode = ((SchemaAware) ser).getSchema(provider, hint, isOptional) ; schemaNode = com.fasterxml.jackson.databind.jsonschema.JsonSchema.getDefaultSchemaNode(); _depositSchemaProperty(propertiesNode, schemaNode);
final AnnotationIntrospector intr = provider.getAnnotationIntrospector(); ignorals = intr.findPropertiesToIgnore(accessor); final ObjectIdInfo objectIdInfo = intr.findObjectIdInfo(accessor); if (objectIdInfo != null) { JavaType type = provider.constructType(implClass); JavaType idType = provider.getTypeFactory().findTypeParameters(type, ObjectIdGenerator.class)[0]; if (propName.equals(prop.getName())) { idProp = prop; idType = idProp.getType(); gen = new PropertyBasedObjectIdGenerator(objectIdInfo, idProp); oiw = ObjectIdWriter.construct(idType, null, gen);
private AnnotatedMethod findSetter(BeanDescription beanDesc, BeanPropertyWriter writer) { String name = "set" + determineAccessorSuffix(writer.getName()); Class<?> type = writer.getType().getRawClass(); AnnotatedMethod setter = beanDesc.findMethod(name, new Class<?>[] { type }); // The enabled property of endpoints returns a boolean primitive but is set // using a Boolean class if (setter == null && type.equals(Boolean.TYPE)) { setter = beanDesc.findMethod(name, new Class<?>[] { Boolean.class }); } return setter; }