/* * Copyright 2013. Guidewire Software, Inc. */ package gw.internal.gosu.parser.java.classinfo; import gw.lang.javadoc.IClassDocNode; import gw.lang.parser.TypeVarToTypeMap; import gw.lang.reflect.IAnnotationInfo; import gw.lang.reflect.IScriptabilityModifier; import gw.lang.reflect.IType; import gw.lang.reflect.gs.ISourceFileHandle; import gw.lang.reflect.java.AbstractJavaClassInfo; import gw.lang.reflect.java.IJavaClassConstructor; import gw.lang.reflect.java.IJavaClassField; import gw.lang.reflect.java.IJavaClassInfo; import gw.lang.reflect.java.IJavaClassMethod; import gw.lang.reflect.java.IJavaClassType; import gw.lang.reflect.java.IJavaClassTypeVariable; import gw.lang.reflect.java.IJavaMethodDescriptor; import gw.lang.reflect.java.IJavaPropertyDescriptor; import gw.lang.reflect.module.IModule; import java.lang.annotation.Annotation; import java.lang.reflect.Array; public class JavaArrayClassInfo extends AbstractJavaClassInfo { private IJavaClassInfo _component; public JavaArrayClassInfo( IJavaClassInfo component ) { if (component == null) { throw new NullPointerException("Cannot have a null array component."); } _component = component; } @Override public IClassDocNode createClassDocNode() { return null; } @Override public IJavaClassInfo getArrayType() { return new JavaArrayClassInfo(this); } @Override public IJavaClassInfo getComponentType() { return _component; } @Override public IJavaClassConstructor[] getDeclaredConstructors() { return new IJavaClassConstructor[0]; } @Override public IJavaClassConstructor getConstructor( IJavaClassInfo... params ) throws NoSuchMethodException { return null; } @Override public IJavaClassField[] getDeclaredFields() { return new IJavaClassField[0]; } @Override public IJavaClassMethod[] getDeclaredMethods() { return new IJavaClassMethod[0]; } @Override public String getDisplayName() { return _component.getDisplayName() + "[]"; } @Override public String getSimpleName() { return _component.getSimpleName() + "[]"; } @Override public IType getEnclosingType() { return null; } @Override public Object[] getEnumConstants() { return new Object[0]; } @Override public IJavaClassField[] getFields() { return new IJavaClassField[0]; } @Override public IJavaClassType[] getGenericInterfaces() { return new IJavaClassType[0]; } @Override public IJavaClassType getGenericSuperclass() { return null; } @Override public IJavaClassInfo[] getInterfaces() { return new IJavaClassInfo[0]; } @Override public IType getJavaType() { return _component.getJavaType().getArrayType(); } @Override public IJavaClassMethod getMethod(String methodName, IJavaClassInfo... paramTypes) throws NoSuchMethodException { return null; } @Override public IJavaClassMethod getDeclaredMethod(String methodName, IJavaClassInfo... paramTypes) throws NoSuchMethodException { return null; } @Override public IJavaMethodDescriptor[] getMethodDescriptors() { return new IJavaMethodDescriptor[0]; } @Override public int getModifiers() { return _component.getModifiers(); } @Override public String getName() { return _component.getName() + "[]"; } public String getNameSignature() { return "[" + _component.getNameSignature(); } @Override public String getNamespace() { return _component.getNamespace(); } @Override public IJavaPropertyDescriptor[] getPropertyDescriptors() { return new IJavaPropertyDescriptor[0]; } @Override public String getRelativeName() { return _component.getRelativeName() + "[]"; } @Override public IJavaClassInfo getSuperclass() { return null; } @Override public IJavaClassTypeVariable[] getTypeParameters() { return new IJavaClassTypeVariable[0]; } @Override public boolean hasCustomBeanInfo() { return false; } @Override public boolean isAnnotation() { return false; } @Override public boolean isArray() { return true; } @Override public boolean isEnum() { return false; } @Override public boolean isHiddenViaFeatureDescriptor() { return _component.isHiddenViaFeatureDescriptor(); } @Override public boolean isInterface() { return false; } @Override public boolean isPrimitive() { return false; } @Override public boolean isVisibleViaFeatureDescriptor(IScriptabilityModifier constraint) { return _component.isVisibleViaFeatureDescriptor(constraint); } @Override public Object newInstance() throws InstantiationException, IllegalAccessException { return null; } @Override public IAnnotationInfo getAnnotation(Class annotationClass) { return null; } @Override public IAnnotationInfo[] getDeclaredAnnotations() { return new IAnnotationInfo[0]; } @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) { return false; } @Override public IType getActualType(TypeVarToTypeMap typeMap) { return _component.getActualType(typeMap).getArrayType(); } @Override public IType getActualType(TypeVarToTypeMap typeMap, boolean bKeepTypeVars) { return _component.getActualType(typeMap, bKeepTypeVars).getArrayType(); } @Override public IJavaClassType getConcreteType() { return this; } @Override public IJavaClassInfo[] getDeclaredClasses() { return new IJavaClassInfo[0]; } @Override public boolean isPublic() { return true; } @Override public boolean isProtected() { return false; } @Override public boolean isInternal() { return false; } @Override public boolean isPrivate() { return false; } public String toString() { return _component.getName() + "[]"; } @Override public Class getBackingClass() { Class backingClass = _component.getBackingClass(); return backingClass == null ? null : Array.newInstance( backingClass, 0 ).getClass(); } @Override public ISourceFileHandle getSourceFileHandle() { return null; } @Override public IJavaClassType resolveType(String relativeName, int ignoreFlags) { return null; } @Override public IJavaClassType resolveType(String relativeName, IJavaClassInfo whosAskin, int ignoreFlags) { return null; } @Override public IJavaClassType resolveImport(String relativeName) { return null; } @Override public IModule getModule() { return _component.getModule(); } @Override public IJavaClassInfo getEnclosingClass() { return null; } }