@Override public MetaParameter[] getParameters() { return Arrays.stream(constructor.getParameters()) .map(p -> new GWTParameter(oracle, p, this)) .toArray(s -> new MetaParameter[s]); }
@Override public MetaParameter[] getParameters() { return Arrays.stream(constructor.getParameters()) .map(p -> new GWTParameter(oracle, p, this)) .toArray(s -> new MetaParameter[s]); }
public static String toUniqueFactory(final JParameter params[], final JConstructor[] ctors) { final int length = params.length; final ArrayList<JConstructor> sameSize = new ArrayList<JConstructor>(); for (final JConstructor ctor : ctors) { if (ctor.getParameters().length == length) { sameSize.add(ctor); } } if (sameSize.size() == 1) { return ReflectionUtilType.simplify(params); } final HashSet<String> unique = new HashSet<String>(); for (final JConstructor method : sameSize) { final String simple = ReflectionUtilType.simplify(method.getParameters()); unique.add(simple); } if (unique.size() == sameSize.size()) { return simpleParams(params); } return ReflectionUtilType.verboseParams(params); }
public static String toUniqueFactory(JParameter params[], JConstructor[] ctors) { int length = params.length; ArrayList<JConstructor> sameSize = new ArrayList<JConstructor>(); for (JConstructor ctor : ctors) { if (ctor.getParameters().length == length) sameSize.add(ctor); } if (sameSize.size() == 1) { return ReflectionUtilType.simplify(params); } HashSet<String> unique = new HashSet<String>(); for (JConstructor method : sameSize) { String simple = ReflectionUtilType.simplify(method.getParameters()); unique.add(simple); } if (unique.size() == sameSize.size()) { return simpleParams(params); } return ReflectionUtilType.verboseParams(params); }
private List<JField> getOrderedFields(List<JField> fields, JConstructor creator) throws UnableToCompleteException { List<JField> orderedFields = new ArrayList<JField>(); for (JParameter param : creator.getParameters()) { JsonProperty prop = getAnnotation(param, JsonProperty.class); if (prop != null) { for (JField field : fields) { if (field.getName().equals(prop.value())) { orderedFields.add(field); } } } else { getLogger().log(ERROR, "a constructor annotated with @JsonCreator requires that all paramaters are annotated with " + "@JsonProperty."); throw new UnableToCompleteException(); } } return orderedFields; }
private List<JField> getOrderedFields(List<JField> fields, JConstructor creator) throws UnableToCompleteException { List<JField> orderedFields = new ArrayList<JField>(); for (JParameter param : creator.getParameters()) { JsonProperty prop = getAnnotation(param, JsonProperty.class); if (prop != null) { for (JField field : fields) { if (field.getName().equals(prop.value())) { orderedFields.add(field); } } } else { getLogger().log(ERROR, "a constructor annotated with @JsonCreator requires that all paramaters are annotated with " + "@JsonProperty."); throw new UnableToCompleteException(); } } return orderedFields; }
@Override protected void doGenerate(SourceWriter sourceWriter) throws UnableToCompleteException { JClassType adapterProviderClassType = typeOracle.findType(getAdapterProviderBaseClass().getCanonicalName()); JClassType[] adapterProviders = adapterProviderClassType.getSubtypes(); sourceWriter.println("public void registerAllAdapters() {"); sourceWriter.indent(); for (JClassType adapterProviderImplementationClassType : adapterProviders) { if (!adapterProviderImplementationClassType.isAbstract()) { boolean found = false; for (JConstructor constructor :adapterProviderImplementationClassType.getConstructors()) { if (constructor.getParameters().length == 0) { found = true; } } if (found) { sourceWriter.println(BeanAdapterFactory.class.getSimpleName() + ".addProvider(new " + adapterProviderImplementationClassType.getQualifiedSourceName() + "());"); } } } sourceWriter.indent(); sourceWriter.println("}"); }
public String getOrMakeConstructorFactory(TreeLogger logger, ReflectionGeneratorContext ctx, JConstructor ctor, com.google.gwt.core.ext.typeinfo.JType classType, ReflectionManifest manifest, boolean declaredOnly) throws UnableToCompleteException { // get cached manifest for this type String clsName = classType.getQualifiedSourceName(); TypeOracle oracle = ctx.getGeneratorContext().getTypeOracle(); JClassType cls = oracle.findType(clsName); if (cls == null) { logger.log(Type.ERROR, "Unable to find enclosing class "+clsName); throw new UnableToCompleteException(); } String constructorFactoryName = getConstructorFactoryName(cls, ctor.getParameters()); JClassType factory; String pkgName = ctor.getEnclosingType().getPackage().getName(); factory = oracle.findType(pkgName, constructorFactoryName); if (factory == null) { return generateConstructorFactory(logger, ctx, ctor, constructorFactoryName, manifest); } else return (pkgName.length()==0?"":pkgName+".")+ constructorFactoryName; }
public String getOrMakeConstructorFactory(final TreeLogger logger, final ReflectionGeneratorContext ctx, final JConstructor ctor, final com.google.gwt.core.ext.typeinfo.JType classType, final ReflectionManifest manifest, final boolean declaredOnly) throws UnableToCompleteException { // get cached manifest for this type final String clsName = classType.getQualifiedSourceName(); final TypeOracle oracle = ctx.getGeneratorContext().getTypeOracle(); final JClassType cls = oracle.findType(clsName); if (cls == null) { logger.log(Type.ERROR, "Unable to find enclosing class "+clsName); throw new UnableToCompleteException(); } final String constructorFactoryName = ConstructorGenerator.getConstructorFactoryName(cls, ctor.getParameters()); JClassType factory; final String pkgName = ctor.getEnclosingType().getPackage().getName(); factory = oracle.findType(pkgName, constructorFactoryName); if (factory == null) { return generateConstructorFactory(logger, ctx, ctor, constructorFactoryName, manifest); } else { return (pkgName.length()==0?"":pkgName+".")+ constructorFactoryName; } }
private void generateInternalTokenizer(TreeLogger logger, SourceWriter srcWriter) { boolean hasTokeConstructor = false; for (JConstructor constructor : this.placeType.getConstructors()) { if (constructor.getParameters().length == 1 && constructor.getParameters()[0].getType().getSimpleSourceName().equals(String.class.getSimpleName())) { hasTokeConstructor = true;
private void generateInternalTokenizer(TreeLogger logger, SourceWriter srcWriter) { boolean hasTokeConstructor = false; for (JConstructor constructor : this.placeType.getConstructors()) { if (constructor.getParameters().length == 1 && constructor.getParameters()[0].getType().getSimpleSourceName().equals(String.class.getSimpleName())) { hasTokeConstructor = true;
private boolean generateConstructors(TreeLogger logger, ReflectionManifest manifest, SourceBuilder<Object> classBuilder, ReflectionGeneratorContext context) throws UnableToCompleteException { Collection<ReflectionUnit<JConstructor>> ctors = manifest.getConstructors(); if (ctors.size() > 0) { MethodBuffer initMethod = classBuilder.getClassBuffer() .createMethod("public static void enhanceConstructors(Class<?> cls)") .println("JsMemberPool map = JsMemberPool.getMembers(cls);") .addImports("com.google.gwt.reflect.shared.JsMemberPool"); TypeOracle oracle = context.getTypeOracle(); for (ReflectionUnit<JConstructor> unit : ctors) { JConstructor ctor = unit.getNode(); String ctorFactoryName = MemberGenerator.getConstructorFactoryName(ctor.getEnclosingType(), ctor.getParameters()); JClassType existing; String factory; existing = oracle.findType(ctor.getEnclosingType().getPackage().getName(), ctorFactoryName); if (existing == null) factory = manifests.generateConstructorFactory(logger, context, ctor, ctorFactoryName, manifest); else { factory = existing.getQualifiedSourceName(); } factory = initMethod.addImport(factory); initMethod.println("map.addConstructor("+factory+".instantiate());"); } return true; } return false; }
private boolean generateConstructors(final TreeLogger logger, final ReflectionManifest manifest, final SourceBuilder<Object> classBuilder, final ReflectionGeneratorContext context) throws UnableToCompleteException { final Collection<ReflectionUnit<JConstructor>> ctors = manifest.getConstructors(); if (ctors.size() > 0) { final MethodBuffer initMethod = classBuilder.getClassBuffer() .createMethod("public static void enhanceConstructors(Class<?> cls)") .println("JsMemberPool map = JsMemberPool.getMembers(cls);") .addImports("com.google.gwt.reflect.shared.JsMemberPool"); final TypeOracle oracle = context.getTypeOracle(); for (final ReflectionUnit<JConstructor> unit : ctors) { final JConstructor ctor = unit.getNode(); final String ctorFactoryName = ConstructorGenerator.getConstructorFactoryName(ctor.getEnclosingType(), ctor.getParameters()); JClassType existing; String factory; existing = oracle.findType(ctor.getEnclosingType().getPackage().getName(), ctorFactoryName); if (existing == null) { factory = constructorGenerator.generateConstructorFactory(logger, context, ctor, ctorFactoryName, manifest); } else { factory = existing.getQualifiedSourceName(); } factory = initMethod.addImport(factory); initMethod.println("map.addConstructor("+factory+".instantiate());"); } return true; } return false; }
if ( constructor.getParameters().length == 0 ) { creatorDefaultConstructor = constructor; continue; .get( 0 ), JsonProperty.class ); if ( (isAnnotationPresent( JsonCreator.class, constructors ) && ((isAllParametersAnnotatedWithJsonProperty) || (constructor .getParameters().length == 1))) || isAllParametersAnnotatedWithJsonProperty ) { creatorConstructor = constructor; creators = constructors;
JParameter[] params = ctor.getParameters(); instantiator .addImports(JavaScriptObject.class) .returnValue("ctor"); createInvokerMethod(cb, type, type, "new", ctor.getParameters(), true);
appendClassArray(instantiator, ctor.getParameters(), ctx); instantiator.print(", "); createInvokerMethod(cb, type, type, "new", ctor.getParameters(), true, ctor.isPublic());
if ( constructor.isPublic() && constructor.getParameters().length == nbParam ) { MapperType[] parameters = getParameters( mappedType, constructor, isSerializers ); if ( null == parameters ) {
if ( constructor.isPublic() && constructor.getParameters().length == nbParam ) { MapperType[] parameters = getParameters( mappedType, constructor, isSerializers ); if ( null == parameters ) {