/** * Gets the no-arg constructor for the specified class. * * @param <T> The class to check. * @param c The class to check. * @param v The minimum visibility for the constructor. * @return The no arg constructor, or <jk>null</jk> if the class has no no-arg constructor. */ protected final <T> Constructor<? extends T> getImplClassConstructor(Class<T> c, Visibility v) { if (implClasses.isEmpty()) return null; Class cc = c; while (cc != null) { Class implClass = implClasses.get(cc.getName()); if (implClass != null) return findNoArgConstructor(implClass, v); for (Class ic : cc.getInterfaces()) { implClass = implClasses.get(ic.getName()); if (implClass != null) return findNoArgConstructor(implClass, v); } cc = cc.getSuperclass(); } return null; }
/** * Gets the no-arg constructor for the specified class. * * @param <T> The class to check. * @param c The class to check. * @param v The minimum visibility for the constructor. * @return The no arg constructor, or <jk>null</jk> if the class has no no-arg constructor. */ protected final <T> Constructor<? extends T> getImplClassConstructor(Class<T> c, Visibility v) { if (implClasses.isEmpty()) return null; Class cc = c; while (cc != null) { Class implClass = implClasses.get(cc.getName()); if (implClass != null) return findNoArgConstructor(implClass, v); for (Class ic : cc.getInterfaces()) { implClass = implClasses.get(ic.getName()); if (implClass != null) return findNoArgConstructor(implClass, v); } cc = cc.getSuperclass(); } return null; }
/** * Gets the no-arg constructor for the specified class. * * @param <T> The class to check. * @param c The class to check. * @param v The minimum visibility for the constructor. * @return The no arg constructor, or <jk>null</jk> if the class has no no-arg constructor. */ protected final <T> Constructor<? extends T> getImplClassConstructor(Class<T> c, Visibility v) { if (implClasses.isEmpty()) return null; Class cc = c; while (cc != null) { Class implClass = implClasses.get(cc.getName()); if (implClass != null) return findNoArgConstructor(implClass, v); for (Class ic : cc.getInterfaces()) { implClass = implClasses.get(ic.getName()); if (implClass != null) return findNoArgConstructor(implClass, v); } cc = cc.getSuperclass(); } return null; }
return null; builderConstructor = findNoArgConstructor(builderClass, cVis); if (builderConstructor == null && builderCreateMethod == null) return null;
return null; builderConstructor = findNoArgConstructor(builderClass, cVis); if (builderConstructor == null && builderCreateMethod == null) return null;
/** * Creates a BuilderSwap from the specified builder class if it qualifies as one. * * @param builderClass The potential builder class. * @param cVis Minimum constructor visibility. * @param mVis Minimum method visibility. * @return A new swap instance, or <jk>null</jk> if class wasn't a builder class. */ @SuppressWarnings("rawtypes") public static BuilderSwap<?,?> findSwapFromBuilderClass(Class<?> builderClass, Visibility cVis, Visibility mVis) { if (! isPublic(builderClass)) return null; Class<?> pojoClass = resolveParameterType(Builder.class, 0, builderClass); Method createPojoMethod, createBuilderMethod; Constructor<?> pojoConstructor, builderConstructor; createPojoMethod = findCreatePojoMethod(builderClass); if (createPojoMethod != null) pojoClass = createPojoMethod.getReturnType(); if (pojoClass == null) return null; pojoConstructor = findConstructor(pojoClass, cVis, false, builderClass); if (pojoConstructor == null) return null; builderConstructor = findNoArgConstructor(builderClass, cVis); createBuilderMethod = findBuilderCreateMethod(pojoClass); if (builderConstructor == null && createBuilderMethod == null) return null; return new BuilderSwap(pojoClass, builderClass, pojoConstructor, builderConstructor, createBuilderMethod, createPojoMethod); }
/** * Creates a BuilderSwap from the specified builder class if it qualifies as one. * * @param builderClass The potential builder class. * @param cVis Minimum constructor visibility. * @param mVis Minimum method visibility. * @return A new swap instance, or <jk>null</jk> if class wasn't a builder class. */ @SuppressWarnings("rawtypes") public static BuilderSwap<?,?> findSwapFromBuilderClass(Class<?> builderClass, Visibility cVis, Visibility mVis) { if (! isPublic(builderClass)) return null; Class<?> pojoClass = resolveParameterType(Builder.class, 0, builderClass); Method createPojoMethod, createBuilderMethod; Constructor<?> pojoConstructor, builderConstructor; createPojoMethod = findCreatePojoMethod(builderClass); if (createPojoMethod != null) pojoClass = createPojoMethod.getReturnType(); if (pojoClass == null) return null; pojoConstructor = findConstructor(pojoClass, cVis, false, builderClass); if (pojoConstructor == null) return null; builderConstructor = findNoArgConstructor(builderClass, cVis); createBuilderMethod = findBuilderCreateMethod(pojoClass); if (builderConstructor == null && createBuilderMethod == null) return null; return new BuilderSwap(pojoClass, builderClass, pojoConstructor, builderConstructor, createBuilderMethod, createPojoMethod); }
return null; builderConstructor = findNoArgConstructor(builderClass, cVis); if (builderConstructor == null && builderCreateMethod == null) return null;
/** * Creates a BuilderSwap from the specified builder class if it qualifies as one. * * @param builderClass The potential builder class. * @param cVis Minimum constructor visibility. * @param mVis Minimum method visibility. * @return A new swap instance, or <jk>null</jk> if class wasn't a builder class. */ @SuppressWarnings("rawtypes") public static BuilderSwap<?,?> findSwapFromBuilderClass(Class<?> builderClass, Visibility cVis, Visibility mVis) { if (! isPublic(builderClass)) return null; Class<?> pojoClass = resolveParameterType(Builder.class, 0, builderClass); Method createPojoMethod, createBuilderMethod; Constructor<?> pojoConstructor, builderConstructor; createPojoMethod = findCreatePojoMethod(builderClass); if (createPojoMethod != null) pojoClass = createPojoMethod.getReturnType(); if (pojoClass == null) return null; pojoConstructor = findConstructor(pojoClass, cVis, false, builderClass); if (pojoConstructor == null) return null; builderConstructor = findNoArgConstructor(builderClass, cVis); createBuilderMethod = findBuilderCreateMethod(pojoClass); if (builderConstructor == null && createBuilderMethod == null) return null; return new BuilderSwap(pojoClass, builderClass, pojoConstructor, builderConstructor, createBuilderMethod, createPojoMethod); }
constructor = (Constructor<T>)findNoArgConstructor(c, conVis);
constructor = (Constructor<T>)findNoArgConstructor(c, conVis);
constructor = (Constructor<T>)findNoArgConstructor(c, conVis);
Constructor<T> c = ClassUtils.findNoArgConstructor(type.getInnerClass(), Visibility.PUBLIC); if (c != null) { try {
Constructor<T> c = ClassUtils.findNoArgConstructor(type.getInnerClass(), Visibility.PUBLIC); if (c != null) { try {
Constructor<T> c = ClassUtils.findNoArgConstructor(type.getInnerClass(), Visibility.PUBLIC); if (c != null) { try {