private String getElementTypes (JField f) { StringBuilder b = new StringBuilder(); JParameterizedType params = f.getType().isParameterized(); if (params != null) { JClassType[] typeArgs = params.getTypeArgs(); b.append("new Class[] {"); for (JClassType typeArg : typeArgs) { if (typeArg.isWildcard() != null) b.append("null"); else if (!isVisible(typeArg)) b.append("null"); else if (typeArg.isClassOrInterface() != null) b.append(typeArg.isClassOrInterface().getQualifiedSourceName()).append(".class"); else if (typeArg.isParameterized() != null) b.append(typeArg.isParameterized().getQualifiedBinaryName()).append(".class"); else b.append("null"); b.append(", "); } b.append("}"); return b.toString(); } return "null"; }
private String getElementTypes (JField f) { StringBuilder b = new StringBuilder(); JParameterizedType params = f.getType().isParameterized(); if (params != null) { JClassType[] typeArgs = params.getTypeArgs(); b.append("new Class[] {"); for (JClassType typeArg : typeArgs) { if (typeArg.isWildcard() != null) b.append("null"); else if (!isVisible(typeArg)) b.append("null"); else if (typeArg.isClassOrInterface() != null) b.append(typeArg.isClassOrInterface().getQualifiedSourceName()).append(".class"); else if (typeArg.isParameterized() != null) b.append(typeArg.isParameterized().getQualifiedBinaryName()).append(".class"); else b.append("null"); b.append(", "); } b.append("}"); return b.toString(); } return "null"; }
@Override public String createAssignment(TreeLogger logger, ResourceContext context, JMethod method) throws UnableToCompleteException { JParameterizedType returnType = method.getReturnType().isParameterized(); assert returnType != null; JClassType args[] = returnType.getTypeArgs(); assert args.length == 1; ClassType override = method.getAnnotation(ClassType.class); JClassType toCreate; if (override != null) { toCreate = context.getGeneratorContext().getTypeOracle().findType( override.value().getName().replace('$', '.')); assert toCreate != null; } else { toCreate = args[0]; } JClassType gwtType = context.getGeneratorContext().getTypeOracle().findType( GWT.class.getName()); assert gwtType != null; return "new " + returnType.getParameterizedQualifiedSourceName() + "() {\n public " + toCreate.getQualifiedSourceName() + " create() {\n return " + gwtType.getQualifiedSourceName() + ".create(" + toCreate.getQualifiedSourceName() + ".class);}\n" + "public String getName() { return \"" + method.getName() + "\";}}"; } }
private void addImport(JType type) { JParameterizedType parametrizedType = type.isParameterized(); if (parametrizedType != null) { this.imports.add(parametrizedType.getRawType()); this.imports.addAll(Lists.newArrayList(parametrizedType.getTypeArgs())); } else { this.imports.add(type); } }
private void addImport(JType type) { JParameterizedType parametrizedType = type.isParameterized(); if (parametrizedType != null) { this.imports.add(parametrizedType.getRawType()); this.imports.addAll(Lists.newArrayList(parametrizedType.getTypeArgs())); } else { this.imports.add(type); } }
/** * Returns the first type variable of the specified parameterized type or * null if {@code type} is <code>null</code> or does not have any type * variables. * * @param type * @return */ public static JClassType getTypeVariable(JType type) { JClassType parameterType = null; JParameterizedType parameterizedType = type.isParameterized(); if (parameterizedType != null) { JClassType[] typeArgs = parameterizedType.getTypeArgs(); if (typeArgs != null && typeArgs.length > 0) { parameterType = typeArgs[0]; } } return parameterType; }
/** * Flattens a parameterized type into a simple list of types. */ private void createTypeList(List<JType> accumulator, JType type) { accumulator.add(type); JParameterizedType hasParams = type.isParameterized(); if (hasParams != null) { for (JClassType arg : hasParams.getTypeArgs()) { createTypeList(accumulator, arg); } } }
/** * Flattens a parameterized type into a simple list of types. */ private void createTypeList(List<JType> accumulator, JType type) { accumulator.add(type); JParameterizedType hasParams = type.isParameterized(); if (hasParams != null) { for (JClassType arg : hasParams.getTypeArgs()) { createTypeList(accumulator, arg); } } }
/** * Flattens a parameterized type into a simple list of types. */ private void createTypeList(List<JType> accumulator, JType type) { accumulator.add(type); JParameterizedType hasParams = type.isParameterized(); if (hasParams != null) { for (JClassType arg : hasParams.getTypeArgs()) { createTypeList(accumulator, arg); } } }
protected JClassType[] getTypesHelper(JType type) { JParameterizedType parameterizedType = type.isParameterized(); if (parameterizedType == null || parameterizedType.getTypeArgs() == null) { return null; } return parameterizedType.getTypeArgs(); }
protected JClassType[] getTypesHelper(JType type) { JParameterizedType parameterizedType = type.isParameterized(); if (parameterizedType == null || parameterizedType.getTypeArgs() == null) { return null; } return parameterizedType.getTypeArgs(); }
private String getElementTypes (JField f) { StringBuilder b = new StringBuilder(); JParameterizedType params = f.getType().isParameterized(); if (params != null) { JClassType[] typeArgs = params.getTypeArgs(); b.append("new Class[] {"); for (JClassType typeArg : typeArgs) { if (typeArg.isWildcard() != null) b.append("Object.class"); else if (!isVisible(typeArg)) b.append("null"); else if (typeArg.isClassOrInterface() != null) b.append(typeArg.isClassOrInterface().getQualifiedSourceName()).append(".class"); else if (typeArg.isParameterized() != null) b.append(typeArg.isParameterized().getQualifiedBinaryName()).append(".class"); else b.append("null"); b.append(", "); } b.append("}"); return b.toString(); } return "null"; }
private String getElementTypes (JField f) { StringBuilder b = new StringBuilder(); JParameterizedType params = f.getType().isParameterized(); if (params != null) { JClassType[] typeArgs = params.getTypeArgs(); b.append("new Class[] {"); for (JClassType typeArg : typeArgs) { if (typeArg.isWildcard() != null) b.append("null"); else if (!isVisible(typeArg)) b.append("null"); else if (typeArg.isClassOrInterface() != null) b.append(typeArg.isClassOrInterface().getQualifiedSourceName()).append(".class"); else if (typeArg.isParameterized() != null) b.append(typeArg.isParameterized().getQualifiedBinaryName()).append(".class"); else b.append("null"); b.append(", "); } b.append("}"); return b.toString(); } return "null"; }
@Override public MetaTypeVariable[] getTypeParameters() { final JGenericType genericType; if (getEnclosedMetaObject().isGenericType() != null) { genericType = getEnclosedMetaObject().isGenericType(); } else if (getEnclosedMetaObject().isParameterized() != null) { genericType = getEnclosedMetaObject().isParameterized().getBaseType(); } else if (getEnclosedMetaObject().isRawType() != null) { genericType = getEnclosedMetaObject().isRawType().getGenericType(); } else { return new MetaTypeVariable[0]; } return Arrays.stream(genericType.getTypeParameters()) .map(p -> new GWTTypeVariable(oracle, p)).toArray(s -> new MetaTypeVariable[s]); }
@Override public MetaTypeVariable[] getTypeParameters() { final JGenericType genericType; if (getEnclosedMetaObject().isGenericType() != null) { genericType = getEnclosedMetaObject().isGenericType(); } else if (getEnclosedMetaObject().isParameterized() != null) { genericType = getEnclosedMetaObject().isParameterized().getBaseType(); } else if (getEnclosedMetaObject().isRawType() != null) { genericType = getEnclosedMetaObject().isRawType().getGenericType(); } else { return new MetaTypeVariable[0]; } return Arrays.stream(genericType.getTypeParameters()) .map(p -> new GWTTypeVariable(oracle, p)).toArray(s -> new MetaTypeVariable[s]); }
private void overrideAllSetters(){ JClassTypeHelper helper = new JClassTypeHelper(type); for(JField field:helper.getAllFields()) { if (ignore(field)==false){ Field f = new Field(Visibility.PRIVATE,JTypeHelper.getClass(field.getType()),field.getName(),field.getType().isParameterized()); f.setJtype(field.getType()); Method setter = f.getSetter(true,false,"_proxy"); setter.getBody().append(String.format("Field field = (Field) getFields().get(\"%s\")",f.getName())); setter.getBody().append(String.format("field.setFieldValue(%s)", f.getName())); composerHelper.addMethod(setter); } } }
private boolean validateMethodDef(JMethod method) throws UnableToCompleteException { if(!method.getEnclosingType().equals(providerType)){ return false; } JParameterizedType returnType = method.getReturnType().isParameterized(); boolean isCorrectReturnType = returnType != null && returnType.isAssignableTo(storageKeyGenericType); JClassType valueType = isCorrectReturnType ? returnType.getTypeArgs()[0] : null; if(!isValideType(valueType)){ logger.branch(TreeLogger.Type.ERROR, "method "+ method.getReadableDeclaration() +"'s returned store type is not extends to IsSerializable nor Serializable"); throw new UnableToCompleteException(); } int length = method.getParameters().length; if(length > 1){ logger.branch(TreeLogger.Type.WARN, "method "+ method.getReadableDeclaration() +" should only have one or zero parameter"); throw new UnableToCompleteException(); } return true; }
public JClassType getAssociationType(PropertyDescriptor p, boolean useField) { JType type = this.getElementType(p, useField); JArrayType jArray = type.isArray(); if (jArray != null) { return jArray.getComponentType().isClassOrInterface(); } JParameterizedType pType = type.isParameterized(); JClassType[] typeArgs; if (pType == null) { JRawType rType = type.isRawType(); typeArgs = rType.getGenericType().getTypeParameters(); } else { typeArgs = pType.getTypeArgs(); } // it is either a Iterable or a Map use the last type arg. return typeArgs[typeArgs.length - 1].isClassOrInterface(); }
public JClassType getAssociationType(PropertyDescriptor p, boolean useField) { JType type = this.getElementType(p, useField); JArrayType jArray = type.isArray(); if (jArray != null) { return jArray.getComponentType().isClassOrInterface(); } JParameterizedType pType = type.isParameterized(); JClassType[] typeArgs; if (pType == null) { JRawType rType = type.isRawType(); typeArgs = rType.getGenericType().getTypeParameters(); } else { typeArgs = pType.getTypeArgs(); } // it is either a Iterable or a Map use the last type arg. return typeArgs[typeArgs.length - 1].isClassOrInterface(); }
public void setMethod(JMethod method) { setName(method.getName()); JType returnType = method.getReturnType(); setReturnType(returnType.isClassOrInterface()); setKeyClazz(returnType.isParameterized().getTypeArgs()[0]); int paramCount = method.getParameters().length; switch (paramCount){ case 0: setDynamic(false); setStaticKeyValue(method.getName() + paramCount); break; case 1: setDynamic(true); setKeyValueType(method.getParameters()[0].getType().isClassOrInterface()); break; } }