/** * Choose suitable ClassMapBuilderFactory for types from factories chain * * @param aType * @param bType * @param <A> * @param <B> * @return this ClassMapBuilderFactory */ public <A, B> ClassMapBuilderFactory chooseClassMapBuilderFactory(Type<A> aType, Type<B> bType) { if (appliesTo(aType, bType)) return this; return nextClassMapBuilderFactory == null ? null : nextClassMapBuilderFactory.chooseClassMapBuilderFactory(aType, bType); }
/** * Begin a new mapping for the specified types. * * @param aType * @param bType * @return a new ClassMapBuilder instance for the specified types */ public <A, B> ClassMapBuilder<A, B> map(Type<A> aType, Type<B> bType) { return getNewClassMapBuilder(aType, bType); }
/** * @return the (initialized) ClassMapBuilderFactory configured for this * mapper factory */ protected ClassMapBuilderFactory getClassMapBuilderFactory() { if (!classMapBuilderFactory.isInitialized()) { classMapBuilderFactory.setDefaultFieldMappers(defaultFieldMappers.toArray(new DefaultFieldMapper[defaultFieldMappers.size()])); } return classMapBuilderFactory; }
/** * Add factory to the factories chain * * @param factory */ protected void addClassMapBuilderFactory(ClassMapBuilderFactory factory) { factory.setChainClassMapBuilderFactory(chainClassMapBuilderFactory); chainClassMapBuilderFactory = factory; factory.setPropertyResolver(this.propertyResolverStrategy); factory.setMapperFactory(this); }
public <A, B> ClassMapBuilder<A, B> classMap(Type<A> aType, Type<B> bType) { ClassMapBuilderFactory classMapBuilderFactory = chainClassMapBuilderFactory.chooseClassMapBuilderFactory(aType, bType); if (classMapBuilderFactory != null) { return classMapBuilderFactory.map(aType, bType); } else { return getClassMapBuilderFactory().map(aType, bType); } }
this.classMapBuilderFactory.setPropertyResolver(this.propertyResolverStrategy); this.classMapBuilderFactory.setMapperFactory(this); addClassMapBuilderFactory(new ClassMapBuilderForArrays.Factory()); addClassMapBuilderFactory(new ClassMapBuilderForLists.Factory());
/** * @param aType * @param bType * @return */ private synchronized final <A, B> ClassMapBuilder<A, B> getNewClassMapBuilder(Type<A> aType, Type<B> bType) { return newClassMapBuilder(aType, bType, mapperFactory, propertyResolver, defaults); }
public <A, B> ClassMapBuilder<A, B> classMap(Type<A> aType, Type<B> bType) { if ((aType.isMap() && !bType.isMap()) || (bType.isMap() && !aType.isMap())) { return this.classMapBuilderForMapsFactory.map(aType, bType); } else if ((aType.isList() && !bType.isList()) || (bType.isList() && !aType.isList())) { return this.classMapBuilderForListsFactory.map(aType, bType); } else if ((aType.isArray() && !bType.isArray()) || (bType.isArray() && !aType.isArray())) { return this.classMapBuilderForArraysFactory.map(aType, bType); } else { return getClassMapBuilderFactory().map(aType, bType); } }
this.classMapBuilderFactory.setPropertyResolver(this.propertyResolverStrategy); this.classMapBuilderFactory.setMapperFactory(this); this.classMapBuilderForMapsFactory = new ClassMapBuilderForMaps.Factory(); this.classMapBuilderForMapsFactory.setPropertyResolver(this.propertyResolverStrategy);
/** * @param aType * @param bType * @return */ private synchronized final <A, B> ClassMapBuilder<A, B> getNewClassMapBuilder(Type<A> aType, Type<B> bType) { return newClassMapBuilder(aType, bType, mapperFactory, propertyResolver, defaults); }
/** * Begin a new mapping for the specified types. * * @param aType * @param bType * @return a new ClassMapBuilder instance for the specified types */ public <A, B> ClassMapBuilder<A, B> map(Type<A> aType, Type<B> bType) { return getNewClassMapBuilder(aType, bType); }
/** * @return the (initialized) ClassMapBuilderFactory configured for this * mapper factory */ protected ClassMapBuilderFactory getClassMapBuilderFactory() { if (!classMapBuilderFactory.isInitialized()) { classMapBuilderFactory.setDefaultFieldMappers(defaultFieldMappers.toArray(new DefaultFieldMapper[defaultFieldMappers.size()])); } return classMapBuilderFactory; }
/** * Begin a new mapping for the specified class and type. * * @param aType * @param bType * @return a new ClassMapBuilder instance for the specified types */ public <A, B> ClassMapBuilder<A, B> map(Class<A> aType, Type<B> bType) { return getNewClassMapBuilder(TypeFactory.<A> valueOf(aType), bType); }
/** * Begin a new mapping for the specified class and type. * * @param aType * @param bType * @return a new ClassMapBuilder instance for the specified types */ public <A, B> ClassMapBuilder<A, B> map(Class<A> aType, Type<B> bType) { return getNewClassMapBuilder(TypeFactory.<A> valueOf(aType), bType); }
/** * Begin a new mapping for the specified type and class. * * @param aType * @param bType * @return a new ClassMapBuilder instance for the specified types */ public <A, B> ClassMapBuilder<A, B> map(Type<A> aType, Class<B> bType) { return getNewClassMapBuilder(aType, TypeFactory.<B> valueOf(bType)); }
/** * Begin a new mapping for the specified type and class. * * @param aType * @param bType * @return a new ClassMapBuilder instance for the specified types */ public <A, B> ClassMapBuilder<A, B> map(Type<A> aType, Class<B> bType) { return getNewClassMapBuilder(aType, TypeFactory.<B> valueOf(bType)); }
/** * Begin a new mapping for the specified classes. * * @param aType * @param bType * @return a new ClassMapBuilder instance for the specified types */ public <A, B> ClassMapBuilder<A, B> map(Class<A> aType, Class<B> bType) { return getNewClassMapBuilder(TypeFactory.<A> valueOf(aType), TypeFactory.<B> valueOf(bType)); }
/** * Begin a new mapping for the specified classes. * * @param aType * @param bType * @return a new ClassMapBuilder instance for the specified types */ public <A, B> ClassMapBuilder<A, B> map(Class<A> aType, Class<B> bType) { return getNewClassMapBuilder(TypeFactory.<A> valueOf(aType), TypeFactory.<B> valueOf(bType)); }