List of usage examples for com.fasterxml.jackson.databind SerializerProvider getConfig
public final SerializationConfig getConfig()
From source file:org.zalando.jackson.datatype.money.MonetaryAmountSerializer.java
@Nullable private String format(final MonetaryAmount value, final SerializerProvider provider) { final Locale locale = provider.getConfig().getLocale(); final MonetaryAmountFormat format = factory.create(locale); return format == null ? null : format.format(value); }
From source file:de.escalon.hypermedia.spring.de.escalon.hypermedia.spring.jackson.ResourcesSerializer.java
@Override public void serialize(Resources value, JsonGenerator jgen, SerializerProvider provider) throws IOException { final SerializationConfig config = provider.getConfig(); JavaType javaType = config.constructType(value.getClass()); JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(provider, javaType); jgen.writeStartObject();//from w ww. j a v a 2s. c om serializer.serialize(value, jgen, provider); jgen.writeEndObject(); }
From source file:de.escalon.hypermedia.spring.hydra.ResourceSerializer.java
@Override public void serialize(Resource value, JsonGenerator jgen, SerializerProvider provider) throws IOException { final SerializationConfig config = provider.getConfig(); JavaType javaType = config.constructType(value.getClass()); JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(provider, javaType); jgen.writeStartObject();// ww w . j ava2 s. c om serializer.unwrappingSerializer(NameTransformer.NOP).serialize(value, jgen, provider); jgen.writeEndObject(); }
From source file:de.escalon.hypermedia.spring.de.escalon.hypermedia.spring.jackson.ResourceSerializer.java
@Override public void serialize(Resource value, JsonGenerator jgen, SerializerProvider provider) throws IOException { final SerializationConfig config = provider.getConfig(); JavaType javaType = config.constructType(value.getClass()); JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(provider, javaType); jgen.writeStartObject();//from w w w . ja v a 2s . co m serializer.unwrappingSerializer(NameTransformer.NOP).serialize(value, jgen, provider); // // make a Link Serializer // for (Link link : value.getLinks()) { // final String rel = link.getRel(); // String linkFieldName = IanaRels.isIanaRel(rel) ? IANA_REL_PREFIX + rel : rel; // jgen.writeFieldName(linkFieldName); // jgen.writeStartObject(); // jgen.writeStringField("@id", link.getHref()); // jgen.writeEndObject(); // } jgen.writeEndObject(); }
From source file:com.vino.serialization.ReferenceSerializer.java
@Override public void serialize(Reference reference, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { Class<?> activeView = serializerProvider.getConfig().getActiveView(); // If the reference is serialized to mongodb if (activeView == Views.Private.class) { jsonGenerator.writeString(reference.getKey()); }/* w w w . j a v a 2 s.c o m*/ // If the reference is serialized to client else { serializerProvider.defaultSerializeValue(reference.get(), jsonGenerator); } }
From source file:org.lable.rfc3881.auditlogger.serialization.ReferenceableSerializer.java
void writeField(JsonGenerator generator, SerializerProvider provider, String name, String value) throws IOException { switch (provider.getConfig().getSerializationInclusion()) { case NON_NULL: case NON_ABSENT: if (value == null) return; break;/*from www. ja va 2 s . c o m*/ case NON_EMPTY: if (value == null || value.isEmpty()) return; break; default: case ALWAYS: // Allow. break; } generator.writeStringField(name, value); }
From source file:nl.talsmasoftware.enumerables.support.json.jackson2.EnumerableSerializer.java
@Override public void serialize(Enumerable value, JsonGenerator jgen, SerializerProvider provider) throws IOException { if (value == null) { jgen.writeNull();//from w ww .j a va 2 s . c om } else if (serializationMethod.serializeAsJsonObject(value.getClass())) { serializeObject(value, jgen, provider.getConfig()); } else { jgen.writeString(Enumerable.print(value)); } }
From source file:de.escalon.hypermedia.spring.hydra.PagedResourcesSerializer.java
@Override public void serialize(PagedResources pagedResources, JsonGenerator jgen, SerializerProvider serializerProvider) throws IOException { final SerializationConfig config = serializerProvider.getConfig(); JavaType javaType = config.constructType(pagedResources.getClass()); JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(serializerProvider, javaType);//from w w w . j av a 2 s . c o m // replicate pretty much everything from JacksonHydraSerializer // since we must reorganize the internals of pagedResources to get a hydra collection // with partial page view, we have to serialize pagedResources with an // unwrapping serializer Deque<LdContext> contextStack = (Deque<LdContext>) serializerProvider.getAttribute(KEY_LD_CONTEXT); if (contextStack == null) { contextStack = new ArrayDeque<LdContext>(); serializerProvider.setAttribute(KEY_LD_CONTEXT, contextStack); } // TODO: filter next/previous/first/last from link list - maybe create new PagedResources without them? List<Link> links = pagedResources.getLinks(); List<Link> filteredLinks = new ArrayList<Link>(); for (Link link : links) { String rel = link.getRel(); if (navigationRels.contains(rel)) { continue; } else { filteredLinks.add(link); } } PagedResources toRender = new PagedResources(pagedResources.getContent(), pagedResources.getMetadata(), filteredLinks); jgen.writeStartObject(); serializeContext(toRender, jgen, serializerProvider, contextStack); jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:Collection"); // serialize with PagedResourcesMixin serializer.unwrappingSerializer(NameTransformer.NOP).serialize(toRender, jgen, serializerProvider); PagedResources.PageMetadata metadata = pagedResources.getMetadata(); jgen.writeNumberField("hydra:totalItems", metadata.getTotalElements()); // begin hydra:view jgen.writeObjectFieldStart("hydra:view"); jgen.writeStringField(JsonLdKeywords.AT_TYPE, "hydra:PartialCollectionView"); writeRelLink(pagedResources, jgen, Link.REL_NEXT); writeRelLink(pagedResources, jgen, "previous"); // must also translate prev to its synonym previous writeRelLink(pagedResources, jgen, Link.REL_PREVIOUS, "previous"); writeRelLink(pagedResources, jgen, Link.REL_FIRST); writeRelLink(pagedResources, jgen, Link.REL_LAST); jgen.writeEndObject(); // end hydra:view jgen.writeEndObject(); contextStack = (Deque<LdContext>) serializerProvider.getAttribute(KEY_LD_CONTEXT); if (!contextStack.isEmpty()) { contextStack.pop(); } }
From source file:de.fraunhofer.iosb.ilt.sta.serialize.EntitySerializer.java
@Override public void serialize(Entity entity, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException { gen.writeStartObject();//from www . j a va 2 s . c om try { BasicBeanDescription beanDescription = serializers.getConfig() .introspect(serializers.constructType(entity.getClass())); List<BeanPropertyDefinition> properties = beanDescription.findProperties(); for (BeanPropertyDefinition property : properties) { // 0. check if it should be serialized if (selectedProperties != null) { if (!selectedProperties.contains(property.getName())) { continue; } } // 1. is it a NavigableElement? if (NavigableElement.class.isAssignableFrom(property.getAccessor().getRawType())) { Object rawValue = property.getAccessor().getValue(entity); if (rawValue != null) { NavigableElement value = (NavigableElement) rawValue; // If navigation link set, output navigation link. if (value.getNavigationLink() != null && !value.getNavigationLink().isEmpty()) { gen.writeFieldName(property.getName() + "@iot.navigationLink"); gen.writeString(value.getNavigationLink()); } // If object should not be exported, skip any further processing. if (!value.isExportObject()) { continue; } } } // 2. check if property has CustomSerialization annotation -> use custom serializer Annotation annotation = property.getAccessor().getAnnotation(CustomSerialization.class); if (annotation != null) { serializeFieldCustomized(entity, gen, property, properties, (CustomSerialization) annotation); } else { serializeField(entity, gen, serializers, beanDescription, property); } // 3. check if property is EntitySet than eventually write count if (EntitySet.class.isAssignableFrom(property.getAccessor().getRawType())) { Object rawValue = property.getAccessor().getValue(entity); if (rawValue != null) { EntitySet set = (EntitySet) rawValue; long count = set.getCount(); if (count >= 0) { gen.writeNumberField(property.getName() + "@iot.count", count); } String nextLink = set.getNextLink(); if (nextLink != null) { gen.writeStringField(property.getName() + "@iot.nextLink", nextLink); } } } } } catch (Exception e) { LOGGER.error("could not serialize Entity", e); throw new IOException("could not serialize Entity", e); } finally { gen.writeEndObject(); } }
From source file:de.escalon.hypermedia.spring.hydra.PagedResourcesSerializer.java
protected void serializeContext(Object bean, JsonGenerator jgen, SerializerProvider serializerProvider, Deque<LdContext> contextStack) throws IOException { // TODO: this code is duplicated from JacksonHydraSerializer, see there for considerations if (proxyUnwrapper != null) { bean = proxyUnwrapper.unwrapProxy(bean); }// w ww. ja v a 2s .c o m MixinSource mixinSource = new JacksonMixinSource(serializerProvider.getConfig()); final Class<?> mixInClass = mixinSource.findMixInClassFor(bean.getClass()); final LdContext parentContext = contextStack.peek(); LdContext currentContext = new LdContext(parentContext, ldContextFactory.getVocab(mixinSource, bean, mixInClass), ldContextFactory.getTerms(mixinSource, bean, mixInClass)); contextStack.push(currentContext); // check if we need to write a context for the current bean at all // If it is in the same vocab: no context // If the terms are already defined in the context: no context boolean mustWriteContext; if (parentContext == null || !parentContext.contains(currentContext)) { mustWriteContext = true; } else { mustWriteContext = false; } if (mustWriteContext) { // begin context // default context: schema.org vocab or vocab package annotation jgen.writeObjectFieldStart("@context"); // do not repeat vocab if already defined in current context if (parentContext == null || parentContext.vocab == null || (currentContext.vocab != null && !currentContext.vocab.equals(parentContext.vocab))) { jgen.writeStringField(JsonLdKeywords.AT_VOCAB, currentContext.vocab); } for (Map.Entry<String, Object> termEntry : currentContext.terms.entrySet()) { if (termEntry.getValue() instanceof String) { jgen.writeStringField(termEntry.getKey(), termEntry.getValue().toString()); } else { jgen.writeObjectField(termEntry.getKey(), termEntry.getValue()); } } jgen.writeEndObject(); // end context } }