/** * Returns <jk>true</jk> if <code>parent</code> is a parent class or the same as <code>child</code>. * * @param parent The parent class. * @param child The child class. * @return <jk>true</jk> if <code>parent</code> is a parent class or the same as <code>child</code>. */ public static boolean isParentClass(Class<?> parent, Type child) { if (child instanceof Class) return isParentClass(parent, (Class<?>)child); return false; }
/** * Returns <jk>true</jk> if this class is a {@link Calendar}. * * @return <jk>true</jk> if this class is a {@link Calendar}. */ public boolean isCalendar() { return cc == DATE && ClassUtils.isParentClass(Calendar.class, innerClass); }
/** * Returns <jk>true</jk> if this class is a superclass of or the same as the specified class. * * @param c The comparison class. * @return <jk>true</jk> if this class is a superclass of or the same as the specified class. */ public boolean isAssignableFrom(Class<?> c) { return isParentClass(innerClass, c); }
/** * Returns <jk>true</jk> if this class extends from {@link List}. * * @return <jk>true</jk> if this class extends from {@link List}. */ public boolean isList() { return cc == COLLECTION && isParentClass(List.class, innerClass); }
/** * Returns <jk>true</jk> if this class is a {@link Date}. * * @return <jk>true</jk> if this class is a {@link Date}. */ public boolean isDate() { return cc == DATE && ClassUtils.isParentClass(Date.class, innerClass); }
/** * Returns <jk>true</jk> if this class is a {@link Calendar}. * * @return <jk>true</jk> if this class is a {@link Calendar}. */ public boolean isCalendar() { return cc == DATE && ClassUtils.isParentClass(Calendar.class, innerClass); }
/** * Returns <jk>true</jk> if <code>parent</code> is a parent class or the same as <code>child</code>. * * @param parent The parent class. * @param child The child class. * @return <jk>true</jk> if <code>parent</code> is a parent class or the same as <code>child</code>. */ public static boolean isParentClass(Class<?> parent, Class<?> child) { return isParentClass(parent, child, false); }
/** * Returns <jk>true</jk> if this class is a subclass of or the same as the specified class. * * @param c The comparison class. * @return <jk>true</jk> if this class is a subclass of or the same as the specified class. */ public boolean isInstanceOf(Class<?> c) { return isParentClass(c, innerClass); }
/** * Returns <jk>true</jk> if this metadata represents the specified type. * * @param c The class to test against. * @return <jk>true</jk> if this metadata represents the specified type. */ public boolean isType(Class<?> c) { return isParentClass(c, innerClass); }
/** * Returns <jk>true</jk> if this class extends from {@link List}. * * @return <jk>true</jk> if this class extends from {@link List}. */ public boolean isList() { return cc == COLLECTION && isParentClass(List.class, innerClass); }
/** * Returns <jk>true</jk> if this class is a {@link Date}. * * @return <jk>true</jk> if this class is a {@link Date}. */ public boolean isDate() { return cc == DATE && ClassUtils.isParentClass(Date.class, innerClass); }
/** * Returns <jk>true</jk> if <code>parent</code> is a parent class or the same as <code>child</code>. * * @param parent The parent class. * @param child The child class. * @return <jk>true</jk> if <code>parent</code> is a parent class or the same as <code>child</code>. */ public static boolean isParentClass(Class<?> parent, Class<?> child) { return isParentClass(parent, child, false); }
/** * Returns <jk>true</jk> if this class extends from {@link Set}. * * @return <jk>true</jk> if this class extends from {@link Set}. */ public boolean isSet() { return cc == COLLECTION && isParentClass(Set.class, innerClass); }
/** * Returns <jk>true</jk> if this metadata represents the specified type. * * @param c The class to test against. * @return <jk>true</jk> if this metadata represents the specified type. */ public boolean isType(Class<?> c) { return isParentClass(c, innerClass); }
/** * Returns <jk>true</jk> if this class is a {@link Date}. * * @return <jk>true</jk> if this class is a {@link Date}. */ public boolean isDate() { return cc == DATE && ClassUtils.isParentClass(Date.class, innerClass); }
/** * Returns <jk>true</jk> if this class is a {@link Calendar}. * * @return <jk>true</jk> if this class is a {@link Calendar}. */ public boolean isCalendar() { return cc == DATE && ClassUtils.isParentClass(Calendar.class, innerClass); }
/** * Returns <jk>true</jk> if this class is a superclass of or the same as the specified class. * * @param c The comparison class. * @return <jk>true</jk> if this class is a superclass of or the same as the specified class. */ public boolean isAssignableFrom(Class<?> c) { return isParentClass(innerClass, c); }
static <T> T instantiate(ResourceResolver resolver, Object outer, Class<T> c, Object value, Object...args) { if (ClassUtils.isParentClass(c, value.getClass())) return (T)value; if (ClassUtils.isParentClass(Class.class, value.getClass())) return resolver.resolve(outer, (Class<T>)value, args); return null; }
private static ClassMeta<?> getNarrowedClassMeta(ClassMeta<?> c1, ClassMeta<?> c2) { if (c2 == null || isParentClass(c2.getInnerClass(), c1.getInnerClass())) return c1; return c2; }
private static ClassMeta<?> getNarrowedClassMeta(ClassMeta<?> c1, ClassMeta<?> c2) { if (c2 == null || isParentClass(c2.getInnerClass(), c1.getInnerClass())) return c1; return c2; }