if (EnumSet.class.isAssignableFrom(raw)) { JavaType enumType = type.getContentType(); Class<?> elementRaw = type.getContentType().getRawClass(); if (isIndexedList(raw)) { if (elementRaw == String.class) { ser = buildIndexedListSerializer(type.getContentType(), staticTyping, elementTypeSerializer, elementValueSerializer); ser = buildCollectionSerializer(type.getContentType(), staticTyping, elementTypeSerializer, elementValueSerializer);
throws JsonMappingException JavaType contentType = type.getContentType();
private void requireCollectionOfComparableElements(CollectionType actualType, String targetType) { Class<?> elemType = actualType.getContentType().getRawClass(); if (!Comparable.class.isAssignableFrom(elemType)) { throw new IllegalArgumentException("Can not handle " + targetType + " with elements that are not Comparable<?> (" + elemType.getName() + ")"); } }
/** * Method called to finalize setup of this deserializer, * after deserializer itself has been registered. This * is needed to handle recursive and transitive dependencies. */ @Override public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException { JsonDeserializer<?> deser = _valueDeserializer; TypeDeserializer typeDeser = _typeDeserializerForValue; if (deser == null) { deser = ctxt.findContextualValueDeserializer(_containerType.getContentType(), property); } if (typeDeser != null) { typeDeser = typeDeser.forProperty(property); } if (deser == _valueDeserializer && typeDeser == _typeDeserializerForValue) { return this; } return withResolved(typeDeser, deser); }
private void requireCollectionOfComparableElements(CollectionType actualType, String targetType) { Class<?> elemType = actualType.getContentType().getRawClass(); if (!Comparable.class.isAssignableFrom(elemType)) { throw new IllegalArgumentException("Can not handle " + targetType + " with elements that are not Comparable<?> (" + elemType.getName() + ")"); } }
@Override public JsonSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { // without this logic, Jackson will not be able to handle collections containing // hibernate proxies if (AbstractEntity.class.isAssignableFrom(type.getContentType().getRawClass())) { return new CollectionSerializer(type.getContentType(), false, elementTypeSerializer, elementValueSerializer); } else { return null; } }
@Override public JsonDeserializer<?> findCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException { if (type.getContentType() != null && HasJsonKey.class.isAssignableFrom(type.getContentType().getRawClass())) { return new KeyedListDeserializer(type.getContentType().getRawClass()); } return super.findCollectionDeserializer(type, config, beanDesc, elementTypeDeserializer, elementDeserializer); }
private static boolean shouldAddExtraProperty(JavaType javaType) { if (javaType.getClass().isAssignableFrom(CollectionType.class)){ CollectionType collectionType = (CollectionType) javaType; return shouldAddExtraProperty(collectionType.getContentType()); } return numberTypes.contains(javaType.getRawClass().getCanonicalName()); }
private static boolean shouldAddExtraProperty(JavaType javaType) { if (javaType.getClass().isAssignableFrom(CollectionType.class)){ CollectionType collectionType = (CollectionType) javaType; return shouldAddExtraProperty(collectionType.getContentType()); } return numberTypes.contains(javaType.getRawClass().getCanonicalName()); }
@Override public JsonSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { if (type.getContentType() != null && HasJsonKey.class.isAssignableFrom(type.getContentType().getRawClass())) { return new KeyedListSerializer(); } return super.findCollectionSerializer(config, type, beanDesc, elementTypeSerializer, elementValueSerializer); } }
@Override public JsonSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { if (type.getContentType().isReferenceType()) { return new CollectionSerializer(type.getContentType(), false, null, (JsonSerializer) _referenceSerializer); } return super.findCollectionSerializer(config, type, beanDesc, elementTypeSerializer, elementValueSerializer); }
@Override public JsonSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { if (type.getContentType().isReferenceType()) { return new CollectionSerializer(type.getContentType(), false, null, (JsonSerializer) _referenceSerializer); } return super.findCollectionSerializer(config, type, beanDesc, elementTypeSerializer, elementValueSerializer); }
@Override public JsonDeserializer<?> findCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException { if (type.getContentType().isTypeOrSubTypeOf(EObject.class)) { return new CollectionDeserializer(new EObjectDeserializer(builder, type.getContentType().getRawClass()), _referenceDeserializer); } return super.findCollectionDeserializer(type, config, beanDesc, elementTypeDeserializer, elementDeserializer); }
@Override public JsonDeserializer<?> findCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException { if (type.getContentType().isTypeOrSubTypeOf(EObject.class)) { return new CollectionDeserializer(new EObjectDeserializer(builder, type.getContentType().getRawClass()), _referenceDeserializer); } return super.findCollectionDeserializer(type, config, beanDesc, elementTypeDeserializer, elementDeserializer); }
/** {@inheritDoc} */ @Override public JsonSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) { if (Collection.class.isAssignableFrom(type.getRawClass()) && jsonContext.isSupportedType(type.getContentType().getRawClass())) { return createSerializer(); } return null; }
/** {@inheritDoc} */ @Override public JsonDeserializer<?> findCollectionDeserializer(CollectionType type, DeserializationConfig config, BeanDescription beanDesc, TypeDeserializer elementTypeDeserializer, JsonDeserializer<?> elementDeserializer) throws JsonMappingException { Class clazz = type.getContentType().getRawClass(); if (Collection.class.isAssignableFrom(type.getRawClass()) && jsonContext.isSupportedType(clazz)) { return new BeanListTypeDeserializer(jsonContext, clazz); } return null; }
if (EnumSet.class.isAssignableFrom(raw)) { JavaType enumType = type.getContentType(); Class<?> elementRaw = type.getContentType().getRawClass(); if (isIndexedList(raw)) { if (elementRaw == String.class) { return StdContainerSerializers.indexedListSerializer(type.getContentType(), staticTyping, elementTypeSerializer, elementValueSerializer); return StdContainerSerializers.collectionSerializer(type.getContentType(), staticTyping, elementTypeSerializer, elementValueSerializer);
/** * Method called to finalize setup of this deserializer, * after deserializer itself has been registered. This * is needed to handle recursive and transitive dependencies. */ @Override public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException { JsonDeserializer<?> deser = _valueDeserializer; TypeDeserializer typeDeser = _typeDeserializerForValue; if (deser == null) { deser = ctxt.findContextualValueDeserializer(_containerType.getContentType(), property); } if (typeDeser != null) { typeDeser = typeDeser.forProperty(property); } if (deser == _valueDeserializer && typeDeser == _typeDeserializerForValue) { return this; } return withResolved(typeDeser, deser); }
/** * Method called to finalize setup of this deserializer, * after deserializer itself has been registered. This * is needed to handle recursive and transitive dependencies. */ @Override public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException { JsonDeserializer<?> deser = _valueDeserializer; TypeDeserializer typeDeser = _typeDeserializerForValue; if (deser == null) { deser = ctxt.findContextualValueDeserializer(_containerType.getContentType(), property); } if (typeDeser != null) { typeDeser = typeDeser.forProperty(property); } if (deser == _valueDeserializer && typeDeser == _typeDeserializerForValue) { return this; } return withResolved(typeDeser, deser); }
private List<?> loadFromBackReferences(String thisId, DocumentReferences ann, CollectionType collectionType, String fieldName) throws JsonMappingException { try { Class<?> raw = collectionType.getRawClass(); if (Set.class.isAssignableFrom(raw)) { ViewQuery query = createBackReferenceQuery(thisId, ann, fieldName); Class<?> klass = collectionType.getContentType().getRawClass(); return loadSetResult(query, klass); } else { throw new DbAccessException("Unsupported back reference collection type: " + raw); } } catch (DbAccessException e) { if (e.getCause() instanceof JsonProcessingException) { JsonProcessingException jpe = (JsonProcessingException) e .getCause(); throw JsonMappingException.wrapWithPath(jpe, new JsonMappingException.Reference(collectionType .getContentType().getRawClass()), fieldName); } else { throw e; } } }