/** * Return all parameterized classes for the given type. */ private static Class<?>[] collectParameterizedTypes(Type type, Class<?> cls) throws Exception { if (type instanceof ParameterizedType) { Type[] args = ((ParameterizedType)type).getActualTypeArguments(); Class<?>[] clss = new Class[args.length]; for (int i = 0; i < args.length; i++) { Class<?> c = extractClass(args[i]); if (c == null) { return EMPTY_CLASSES; } clss[i] = c; } return clss; } else if (cls.getSuperclass() != Object.class) { return collectParameterizedTypes(cls.getGenericSuperclass(), cls.getSuperclass()); } else { return EMPTY_CLASSES; } }
/** * Returns a version-specific instance of the specified class * * @param base the base class to check * @return the JDK-version-specific version of the class * @see #getVersionSpecificClass(String) */ public static Class getVersionSpecificClass(Class base) { try { return getVersionSpecificClass(base.getName()); } catch (ClassNotFoundException e) { return base; } }
/** * Thrown proper exception for given errors. */ private static void reportErrors(StringBuffer errs, String resource, Throwable nested) { if (errs == null) return; throw (MissingResourceException) JavaVersions.initCause (new MissingResourceException(errs.toString(), ProductDerivations.class.getName(), resource), nested); }
Field f = (Field) member; type = f.getType(); types = JavaVersions.getParameterizedTypes(f); } else { Method meth = (Method) member; type = meth.getReturnType(); types = JavaVersions.getParameterizedTypes(meth);
/** * Collects the parameterized type declarations for a given field. */ public static Class<?>[] getParameterizedTypes(Field f) { try { return collectParameterizedTypes(f.getGenericType(), f.getType()); } catch (Exception e) { return EMPTY_CLASSES; } }
/** * Extracts the class from the given argument, if possible. Null otherwise. */ static Class<?> extractClass(Type type) throws Exception { if (type instanceof Class) { return (Class<?>)type; } else if (type instanceof ParameterizedType) { return extractClass(((ParameterizedType)type).getRawType()); } return null; } }
/** * Add a target-entity attribute to collection and map fields that do * not use generics. */ private void addTargetEntityAttribute(FieldMetaData fmd) throws SAXException { Member member = fmd.getBackingMember(); Class[] types; if (member instanceof Field) types = JavaVersions.getParameterizedTypes((Field) member); else if (member instanceof Method) types = JavaVersions.getParameterizedTypes((Method) member); else types = new Class[0]; switch (fmd.getDeclaredTypeCode()) { case JavaTypes.COLLECTION: if (types.length != 1) addAttribute("target-entity", fmd.getElement(). getDeclaredType().getName()); break; case JavaTypes.MAP: if (types.length != 2) addAttribute("target-entity", fmd.getElement(). getDeclaredType().getName()); break; } }
/** * Collects the parameterized return type declarations for a given method. */ public static Class<?>[] getParameterizedTypes(Method meth) { try { return collectParameterizedTypes(meth.getGenericReturnType(), meth.getReturnType()); } catch (Exception e) { return EMPTY_CLASSES; } }
/** * Extracts the class from the given argument, if possible. Null otherwise. */ static Class<?> extractClass(Type type) throws Exception { if (type instanceof Class) { return (Class<?>)type; } else if (type instanceof ParameterizedType) { return extractClass(((ParameterizedType)type).getRawType()); } return null; } }
/** * Add a target-entity attribute to collection and map fields that do * not use generics. */ private void addTargetEntityAttribute(FieldMetaData fmd) throws SAXException { Member member = fmd.getBackingMember(); Class[] types; if (member instanceof Field) types = JavaVersions.getParameterizedTypes((Field) member); else if (member instanceof Method) types = JavaVersions.getParameterizedTypes((Method) member); else types = new Class[0]; switch (fmd.getDeclaredTypeCode()) { case JavaTypes.COLLECTION: if (types.length != 1) addAttribute("target-entity", fmd.getElement(). getDeclaredType().getName()); break; case JavaTypes.MAP: if (types.length != 2) addAttribute("target-entity", fmd.getElement(). getDeclaredType().getName()); break; } }
/** * Return all parameterized classes for the given type. */ private static Class<?>[] collectParameterizedTypes(Type type, Class<?> cls) throws Exception { if (type instanceof ParameterizedType) { Type[] args = ((ParameterizedType)type).getActualTypeArguments(); Class<?>[] clss = new Class[args.length]; for (int i = 0; i < args.length; i++) { Class<?> c = extractClass(args[i]); if (c == null) { return EMPTY_CLASSES; } clss[i] = c; } return clss; } else if (cls.getSuperclass() != Object.class) { return collectParameterizedTypes(cls.getGenericSuperclass(), cls.getSuperclass()); } else { return EMPTY_CLASSES; } }
/** * Collects the parameterized type declarations for a given field. */ public static Class<?>[] getParameterizedTypes(Field f) { try { return collectParameterizedTypes(f.getGenericType(), f.getType()); } catch (Exception e) { return EMPTY_CLASSES; } }
/** * Extracts the class from the given argument, if possible. Null otherwise. */ static Class<?> extractClass(Type type) throws Exception { if (type instanceof Class) { return (Class<?>)type; } else if (type instanceof ParameterizedType) { return extractClass(((ParameterizedType)type).getRawType()); } return null; } }
throw (MissingResourceException) JavaVersions.initCause (new MissingResourceException(rsrc, ProductDerivations.class.getName(), rsrc), err);
Field f = (Field) member; type = f.getType(); types = JavaVersions.getParameterizedTypes(f); setAccessType(AccessCode.FIELD); } else { Method meth = (Method) member; type = meth.getReturnType(); types = JavaVersions.getParameterizedTypes(meth); setAccessType(AccessCode.PROPERTY);
/** * Return all parameterized classes for the given type. */ private static Class<?>[] collectParameterizedTypes(Type type, Class<?> cls) throws Exception { if (type instanceof ParameterizedType) { Type[] args = ((ParameterizedType)type).getActualTypeArguments(); Class<?>[] clss = new Class[args.length]; for (int i = 0; i < args.length; i++) { Class<?> c = extractClass(args[i]); if (c == null) { return EMPTY_CLASSES; } clss[i] = c; } return clss; } else if (cls.getSuperclass() != Object.class) { return collectParameterizedTypes(cls.getGenericSuperclass(), cls.getSuperclass()); } else { return EMPTY_CLASSES; } }
/** * Collects the parameterized return type declarations for a given method. */ public static Class<?>[] getParameterizedTypes(Method meth) { try { return collectParameterizedTypes(meth.getGenericReturnType(), meth.getReturnType()); } catch (Exception e) { return EMPTY_CLASSES; } }
reportErrors(errs, aPath, err); String rsrc = aPath + "#" + anchor; throw (MissingResourceException) JavaVersions.initCause (new MissingResourceException(rsrc, ProductDerivations.class.getName(), rsrc), err);
/** * Add a target-entity attribute to collection and map fields that do * not use generics. */ private void addTargetEntityAttribute(FieldMetaData fmd) throws SAXException { Member member = fmd.getBackingMember(); Class[] types; if (member instanceof Field) types = JavaVersions.getParameterizedTypes((Field) member); else if (member instanceof Method) types = JavaVersions.getParameterizedTypes((Method) member); else types = new Class[0]; switch (fmd.getDeclaredTypeCode()) { case JavaTypes.COLLECTION: if (types.length != 1) addAttribute("target-entity", fmd.getElement(). getDeclaredType().getName()); break; case JavaTypes.MAP: if (types.length != 2) addAttribute("target-entity", fmd.getElement(). getDeclaredType().getName()); break; } }
/** * Collects the parameterized type declarations for a given field. */ public static Class<?>[] getParameterizedTypes(Field f) { try { return collectParameterizedTypes(f.getGenericType(), f.getType()); } catch (Exception e) { return EMPTY_CLASSES; } }