|
|
@@ -23,6 +23,10 @@ import net.ranides.assira.reflection.util.ClassUtils;
|
|
|
@SuppressWarnings("PMD.TooManyDifferentMethods")
|
|
|
public interface IClass<T> extends IElement, Comparable<IClass<?>> {
|
|
|
|
|
|
+ // @todo (assira #1) better exception handling
|
|
|
+ // @todo (assira #1) optional results for *really* exceptional cases (security exceptions etc)
|
|
|
+ // @todo (assira #2) more fluent helper methods
|
|
|
+
|
|
|
@SuppressWarnings({"raw", "unchecked"})
|
|
|
IClass NULL = new AClass(IContext.DEFAULT) { };
|
|
|
|
|
|
@@ -141,4 +145,56 @@ public interface IClass<T> extends IElement, Comparable<IClass<?>> {
|
|
|
|
|
|
T cast(Object value);
|
|
|
|
|
|
+ default boolean isInterface() {
|
|
|
+ return attribute(IAttribute.INTERFACE);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isAbstract() {
|
|
|
+ return attribute(IAttribute.ABSTRACT);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isAnnotation() {
|
|
|
+ return attribute(IAttribute.ANNOTATION);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isEnum() {
|
|
|
+ return attribute(IAttribute.ENUM);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isParameterized() {
|
|
|
+ return attribute(IAttribute.PARAMETERIZED);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isArray() {
|
|
|
+ return attribute(IAttribute.ARRAY);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isPrimitiveArray() {
|
|
|
+ return isArray() && component().isPrimitive();
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isPrimitive() {
|
|
|
+ return attribute(IAttribute.PRIMITIVE);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isNumber() {
|
|
|
+ return attribute(IAttribute.NUMBER);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isInteger() {
|
|
|
+ return attribute(IAttribute.INTEGER);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isBoxed() {
|
|
|
+ return attribute(IAttribute.BOXED);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isVoid() {
|
|
|
+ return attribute(IAttribute.VOID);
|
|
|
+ }
|
|
|
+
|
|
|
+ default boolean isBoolean() {
|
|
|
+ return attribute(IAttribute.BOOLEAN);
|
|
|
+ }
|
|
|
+
|
|
|
}
|