@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]); }
@SuppressWarnings("unchecked") public static <T extends JType> T ensureBaseType(T maybeParameterized) { if (maybeParameterized.isArray() != null) { JArrayType array = maybeParameterized.isArray(); return (T) array.getOracle().getArrayType( ensureBaseType(array.getComponentType())); } if (maybeParameterized.isTypeParameter() != null) { return (T) maybeParameterized.isTypeParameter().getBaseType(); } if (maybeParameterized.isParameterized() != null) { return (T) maybeParameterized.isParameterized().getBaseType(); } if (maybeParameterized.isRawType() != null) { return (T) maybeParameterized.isRawType().getBaseType(); } if (maybeParameterized.isWildcard() != null) { return (T) maybeParameterized.isWildcard().getBaseType(); } return maybeParameterized; }
@SuppressWarnings("unchecked") public static <T extends JType> T ensureBaseType(T maybeParameterized) { if (maybeParameterized.isArray() != null) { JArrayType array = maybeParameterized.isArray(); return (T) array.getOracle().getArrayType( ensureBaseType(array.getComponentType())); } if (maybeParameterized.isTypeParameter() != null) { return (T) maybeParameterized.isTypeParameter().getBaseType(); } if (maybeParameterized.isParameterized() != null) { return (T) maybeParameterized.isParameterized().getBaseType(); } if (maybeParameterized.isRawType() != null) { return (T) maybeParameterized.isRawType().getBaseType(); } if (maybeParameterized.isWildcard() != null) { return (T) maybeParameterized.isWildcard().getBaseType(); } return maybeParameterized; }
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(); }
/** * get association type. * * @param ppropertyDescriptor property description * @param puseField use field * @return JClassType */ public JClassType getAssociationType(final PropertyDescriptor ppropertyDescriptor, final boolean puseField) { final JType type = getElementType(ppropertyDescriptor, puseField); if (type == null) { return null; } final JArrayType jarray = type.isArray(); if (jarray != null) { return jarray.getComponentType().isClassOrInterface(); } final JParameterizedType jptype = type.isParameterized(); JClassType[] typeArgs; if (jptype == null) { final JRawType jrtype = type.isRawType(); typeArgs = jrtype.getGenericType().getTypeParameters(); } else { typeArgs = jptype.getTypeArgs(); } // it is either a Iterable or a Map use the last type arg. return typeArgs[typeArgs.length - 1].isClassOrInterface(); }
public static MetaType fromType(final TypeOracle oracle, final JType t) { if (t.isTypeParameter() != null) { return new GWTTypeVariable(oracle, t.isTypeParameter()); } else if (t.isArray() != null && (t.isArray().getComponentType().isTypeParameter() != null || t.isArray().getComponentType().isWildcard() != null)) { return new GWTGenericArrayType(oracle, t.isArray()); } else if (t.isParameterized() != null) { return new GWTParameterizedType(oracle, t.isParameterized()); } else if (t.isWildcard() != null) { return new GWTWildcardType(oracle, t.isWildcard()); } else if (t.isClassOrInterface() != null || t.isEnum() != null || t.isPrimitive() != null || t.isRawType() != null || t.isArray() != null) { return GWTClass.newInstance(oracle, t); } else { throw new RuntimeException("Don't know how to make a MetaType from given JType " + t + " (which is a " + (t.getClass()) + ")"); } }
public static MetaType fromType(final TypeOracle oracle, final JType t) { if (t.isTypeParameter() != null) { return new GWTTypeVariable(oracle, t.isTypeParameter()); } else if (t.isArray() != null && (t.isArray().getComponentType().isTypeParameter() != null || t.isArray().getComponentType().isWildcard() != null)) { return new GWTGenericArrayType(oracle, t.isArray()); } else if (t.isParameterized() != null) { return new GWTParameterizedType(oracle, t.isParameterized()); } else if (t.isWildcard() != null) { return new GWTWildcardType(oracle, t.isWildcard()); } else if (t.isClassOrInterface() != null || t.isEnum() != null || t.isPrimitive() != null || t.isRawType() != null || t.isArray() != null) { return GWTClass.newInstance(oracle, t); } else { throw new RuntimeException("Don't know how to make a MetaType from given JType " + t + " (which is a " + (t.getClass()) + ")"); } }
/** * Call {@link #accept(JType)} on all children types of <code>type</code>. The * children type of a type are its structural components. For example, an * array type has one child, which is the component type of the array. */ protected void acceptChildren(JType type) { JArrayType typeArray = type.isArray(); if (typeArray != null) { accept(typeArray.getComponentType()); endVisit(typeArray); } JParameterizedType typeParameterized = type.isParameterized(); if (typeParameterized != null) { accept(typeParameterized.getBaseType()); for (JClassType typeArg : typeParameterized.getTypeArgs()) { accept(typeArg); } endVisit(typeParameterized); } JRawType typeRaw = type.isRawType(); if (typeRaw != null) { accept(typeRaw.getBaseType()); endVisit(typeRaw); } JWildcardType typeWild = type.isWildcard(); if (typeWild != null) { accept(typeWild.getFirstBound()); endVisit(typeWild); } }
/** * Call {@link #accept(JType)} on all children types of <code>type</code>. The * children type of a type are its structural components. For example, an * array type has one child, which is the component type of the array. */ protected void acceptChildren(JType type) { JArrayType typeArray = type.isArray(); if (typeArray != null) { accept(typeArray.getComponentType()); endVisit(typeArray); } JParameterizedType typeParameterized = type.isParameterized(); if (typeParameterized != null) { accept(typeParameterized.getBaseType()); for (JClassType typeArg : typeParameterized.getTypeArgs()) { accept(typeArg); } endVisit(typeParameterized); } JRawType typeRaw = type.isRawType(); if (typeRaw != null) { accept(typeRaw.getBaseType()); endVisit(typeRaw); } JWildcardType typeWild = type.isWildcard(); if (typeWild != null) { accept(typeWild.getFirstBound()); endVisit(typeWild); } }
JRawType typeRaw = type.isRawType(); if (typeRaw != null) { endVisit(typeRaw);
JRawType typeRaw = type.isRawType(); if (typeRaw != null) { endVisit(typeRaw);
JRawType typeRaw = type.isRawType(); if (typeRaw != null) { JGenericType oldBaseType = typeRaw.getBaseType();
JRawType typeRaw = type.isRawType(); if (typeRaw != null) { JGenericType oldBaseType = typeRaw.getBaseType();