@Override public synchronized Annotation[] getAnnotations() { if (_annotationsCache == null) { _annotationsCache = getEnclosedMetaObject().getAnnotations(); } return _annotationsCache; }
@Override public synchronized Annotation[] getAnnotations() { if (_annotationsCache == null) { _annotationsCache = getEnclosedMetaObject().getAnnotations(); } return _annotationsCache; }
@Override public boolean isInterface() { return getEnclosedMetaObject().isInterface(); }
@Override public String getPackageName() { if (_packageName != null) { return _packageName; } final Package pack = getEnclosedMetaObject().getPackage(); if (pack != null) { _packageName = pack.getName(); } return _packageName; }
@Override public MetaField[] getDeclaredFields() { return _declaredFieldCache != null ? _declaredFieldCache : (_declaredFieldCache = fromFieldArray(getEnclosedMetaObject().getDeclaredFields())); }
@Override public MetaClass getErased() { if (parameterizedType == null) { return this; } return new JavaReflectionClass(getEnclosedMetaObject(), true); }
@Override public MetaClass getErased() { if (parameterizedType == null) { return this; } return new JavaReflectionClass(getEnclosedMetaObject(), true); }
@Override public MetaConstructor getConstructor(final Class... parameters) { try { return new JavaReflectionConstructor(getEnclosedMetaObject().getConstructor(parameters)); } catch (final Exception e) { return null; } }
@Override public MetaClass asArrayOf(final int dimensions) { MetaClass arrayType = _arrayTypeCache.get(dimensions); if (arrayType == null) { _arrayTypeCache.put(dimensions, arrayType = MetaClassFactory.getArrayOf(getEnclosedMetaObject(), dimensions)); } return arrayType; } }
@Override public MetaConstructor getDeclaredConstructor(final Class... parameters) { try { return new JavaReflectionConstructor(getEnclosedMetaObject().getDeclaredConstructor(parameters)); } catch (final Exception e) { return null; } }
@Override public MetaMethod[] getDeclaredMethods() { return _declaredMethodCache != null ? _declaredMethodCache : (_declaredMethodCache = fromMethodArray(getEnclosedMetaObject().getDeclaredMethods())); }
@Override public MetaConstructor[] getConstructors() { if (constructorCache != null) { return constructorCache; } return constructorCache = Arrays.stream(getEnclosedMetaObject().getConstructors()) .map(c -> new JavaReflectionConstructor(c)).toArray(s -> new MetaConstructor[s]); }
@Override public MetaClass[] getDeclaredClasses() { final Class[] declaredClasses = getEnclosedMetaObject().getDeclaredClasses(); final MetaClass[] declaredClassesMC = new MetaClass[declaredClasses.length]; int i = 0; for (final Class c : declaredClasses) { declaredClassesMC[i++] = MetaClassFactory.get(c); } return declaredClassesMC; }
@Override public MetaMethod[] getDeclaredMethods() { return _declaredMethodCache != null ? _declaredMethodCache : (_declaredMethodCache = fromMethodArray(getEnclosedMetaObject().getDeclaredMethods())); }
@Override public MetaField[] getDeclaredFields() { return _declaredFieldCache != null ? _declaredFieldCache : (_declaredFieldCache = fromFieldArray(getEnclosedMetaObject().getDeclaredFields())); }
@Override public MetaConstructor getConstructor(final Class... parameters) { try { return new JavaReflectionConstructor(getEnclosedMetaObject().getConstructor(parameters)); } catch (final Exception e) { return null; } }
@Override public MetaClass asArrayOf(final int dimensions) { MetaClass arrayType = _arrayTypeCache.get(dimensions); if (arrayType == null) { _arrayTypeCache.put(dimensions, arrayType = MetaClassFactory.getArrayOf(getEnclosedMetaObject(), dimensions)); } return arrayType; } }
@Override public boolean isSynthetic() { return getEnclosedMetaObject().isSynthetic(); }
@Override public MetaClass[] getDeclaredClasses() { final Class[] declaredClasses = getEnclosedMetaObject().getDeclaredClasses(); final MetaClass[] declaredClassesMC = new MetaClass[declaredClasses.length]; int i = 0; for (final Class c : declaredClasses) { declaredClassesMC[i++] = MetaClassFactory.get(c); } return declaredClassesMC; }
@Override public MetaClass getSuperClass() { if (_superClass != null) return _superClass; if (getGenericSuperClass() != null) { _superClass = parameterizedAs(getEnclosedMetaObject().getSuperclass(), typeParametersOf(getGenericSuperClass() .getTypeParameters())); } else { _superClass = newInstance(getEnclosedMetaObject().getSuperclass()); } return _superClass; }