mlt, property); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
keySerializer, elementTypeSerializer, elementValueSerializer); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
mlt, property); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
keySerializer, elementTypeSerializer, elementValueSerializer); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
/** * Custom type resolver is used only for non concrete collections and maps. * @param t the JavaType of the object */ @Override public boolean useForType(JavaType t) { if ((t.isCollectionLikeType() || t.isMapLikeType()) && !t.isConcrete()) { return true; } return false; }
@Override protected TypeIdResolver idResolver(MapperConfig<?> config, JavaType baseType, Collection<NamedType> subtypes, boolean forSer, boolean forDeser) { TypeIdResolver idResolver; if (baseType.isCollectionLikeType()) { // provide a custom id resolver for collections idResolver = new JsonCollectionIdResolver(baseType, config.getTypeFactory()); } else if (baseType.isMapLikeType()) { // provide a custom id resolver for maps idResolver = new JsonMapIdResolver(baseType, config.getTypeFactory()); } else { // use the default resolver idResolver = super.idResolver(config, baseType, subtypes, forSer, forDeser); } return idResolver; } }
@Override public Class findContentDeserializer(Annotated am) { if (am.hasAnnotation(ObjectId.class)) { JavaType type = deserializationConfig.getTypeFactory().constructType(am.getGenericType()); if (type.isCollectionLikeType()) { return findObjectIdDeserializer(type.containedType(0)); } else if (type.isMapLikeType()) { return findObjectIdDeserializer(type.containedType(1)); } } return null; }
@Override public Class findContentDeserializer(Annotated am) { if (am.hasAnnotation(ObjectId.class)) { JavaType type = deserializationConfig.getTypeFactory().constructType(am.getGenericType()); if (type.isCollectionLikeType()) { return findObjectIdDeserializer(type.containedType(0)); } else if (type.isMapLikeType()) { return findObjectIdDeserializer(type.containedType(1)); } } return null; }
@Override public JsonDeserializer<?> deserializerInstance(DeserializationConfig config, Annotated annotated, Class<? extends JsonDeserializer<?>> deserClass) { if (deserClass.equals(DBRefDeserializer.class)) { JavaType type = config.getTypeFactory().constructType(annotated.getGenericType()); JavaType dbRefType; if (type.isContainerType()) { if (type.isCollectionLikeType()) { dbRefType = type.containedType(0); } else if (type.isMapLikeType()) { dbRefType = type.containedType(1); } else { return null; } } else { dbRefType = type; } Class<? extends JsonDeserializer> keyDeserializer = introspector.findObjectIdDeserializer(dbRefType.containedType(1)); return new DBRefDeserializer(dbRefType.containedType(0), dbRefType.containedType(1), ClassUtil.createInstance(keyDeserializer, false)); } return null; }
@Override public JsonDeserializer<?> deserializerInstance(DeserializationConfig config, Annotated annotated, Class<? extends JsonDeserializer<?>> deserClass) { if (deserClass.equals(DBRefDeserializer.class)) { JavaType type = config.getTypeFactory().constructType(annotated.getGenericType()); JavaType dbRefType; if (type.isContainerType()) { if (type.isCollectionLikeType()) { dbRefType = type.containedType(0); } else if (type.isMapLikeType()) { dbRefType = type.containedType(1); } else { return null; } } else { dbRefType = type; } Class<? extends JsonDeserializer> keyDeserializer = introspector.findObjectIdDeserializer(dbRefType.containedType(1)); return new DBRefDeserializer(dbRefType.containedType(0), dbRefType.containedType(1), ClassUtil.createInstance(keyDeserializer, false)); } return null; }
mlt, property); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
mlt, property); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
mlt, property); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
keySerializer, elementTypeSerializer, elementValueSerializer); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
keySerializer, elementTypeSerializer, elementValueSerializer); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {
keySerializer, elementTypeSerializer, elementValueSerializer); if (type.isCollectionLikeType()) { CollectionLikeType clt = (CollectionLikeType) type; if (clt.isTrueCollectionType()) {