/*
* Copyright 2013. Guidewire Software, Inc.
*/
package gw.internal.gosu.parser.java.classinfo;
import gw.lang.GosuShop;
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.Modifier;
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.java.ITypeInfoResolver;
import gw.lang.reflect.java.JavaTypes;
import gw.lang.reflect.module.IModule;
import java.lang.annotation.Annotation;
public class JavaSourceUnresolvedClass extends AbstractJavaClassInfo implements IJavaClassType, ITypeInfoResolver {
private String _simpleName;
private String _namespace;
private IModule _gosuModule;
private ISourceFileHandle _fileHandle;
public JavaSourceUnresolvedClass( ISourceFileHandle fileHandle, IModule gosuModule ) {
_fileHandle = fileHandle;
_simpleName = fileHandle.getRelativeName();
_namespace = fileHandle.getNamespace();
_gosuModule = gosuModule;
}
@Override
public String getName() {
return _namespace + "." + _simpleName;
}
@Override
public String getSimpleName() {
return _simpleName;
}
@Override
public String getNameSignature() {
return GosuShop.toSignature(getName());
}
@Override
public String getRelativeName() {
return _simpleName;
}
@Override
public String getDisplayName() {
return _simpleName;
}
@Override
public boolean isArray() {
return false;
}
@Override
public boolean isEnum() {
return false;
}
@Override
public boolean isPrimitive() {
return false;
}
@Override
public boolean isAnnotation() {
return false;
}
@Override
public boolean isInterface() {
return false;
}
@Override
public boolean isPublic() {
return true;
}
@Override
public boolean isProtected() {
return false;
}
@Override
public boolean isInternal() {
return false;
}
@Override
public boolean isPrivate() {
return false;
}
@Override
public Object newInstance() throws InstantiationException, IllegalAccessException {
return null;
}
@Override
public IJavaClassMethod getMethod(String methodName, IJavaClassInfo... paramTypes) throws NoSuchMethodException {
return null;
}
@Override
public IJavaClassMethod getDeclaredMethod(String methodName, IJavaClassInfo... params) throws NoSuchMethodException {
return null;
}
@Override
public IJavaClassMethod[] getDeclaredMethods() {
return new IJavaClassMethod[0];
}
@Override
public IJavaMethodDescriptor[] getMethodDescriptors() {
return new IJavaMethodDescriptor[0];
}
@Override
public IJavaClassInfo[] getInterfaces() {
return new IJavaClassInfo[0];
}
@Override
public IJavaClassType[] getGenericInterfaces() {
return new IJavaClassType[0];
}
@Override
public IJavaClassInfo getSuperclass() {
return JavaTypes.OBJECT().getBackingClassInfo();
}
@Override
public IJavaClassType getGenericSuperclass() {
return JavaTypes.OBJECT().getBackingClassInfo();
}
@Override
public IJavaClassField[] getDeclaredFields() {
return new IJavaClassField[0];
}
@Override
public IJavaClassField[] getFields() {
return new IJavaClassField[0];
}
@Override
public Object[] getEnumConstants() {
return new Object[0];
}
@Override
public IJavaPropertyDescriptor[] getPropertyDescriptors() {
return new IJavaPropertyDescriptor[0];
}
@Override
public IJavaClassConstructor[] getDeclaredConstructors() {
return new IJavaClassConstructor[0];
}
@Override
public IJavaClassConstructor getConstructor( IJavaClassInfo... params ) throws NoSuchMethodException {
return null;
}
@Override
public IType getJavaType() {
return JavaTypes.OBJECT();
}
@Override
public IJavaClassTypeVariable[] getTypeParameters() {
return new IJavaClassTypeVariable[0];
}
@Override
public IClassDocNode createClassDocNode() {
return null;
}
@Override
public boolean hasCustomBeanInfo() {
return false;
}
@Override
public boolean isVisibleViaFeatureDescriptor(IScriptabilityModifier constraint) {
return false;
}
@Override
public boolean isHiddenViaFeatureDescriptor() {
return false;
}
@Override
public IJavaClassInfo getComponentType() {
return null;
}
@Override
public int getModifiers() {
return Modifier.PUBLIC;
}
@Override
public IType getEnclosingType() {
return null;
}
@Override
public IJavaClassInfo getArrayType() {
return null;
}
@Override
public IJavaClassInfo[] getDeclaredClasses() {
return new IJavaClassInfo[0];
}
@Override
public Class getBackingClass() {
return null;
}
@Override
public ISourceFileHandle getSourceFileHandle() {
return _fileHandle;
}
@Override
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) {
return false;
}
@Override
public IAnnotationInfo getAnnotation(Class<? extends Annotation> annotationClass) {
return null;
}
@Override
public IAnnotationInfo[] getDeclaredAnnotations() {
return new IAnnotationInfo[0];
}
@Override
public IJavaClassInfo getEnclosingClass() {
return null;
}
@Override
public IType getActualType(TypeVarToTypeMap typeMap) {
return getJavaType();
}
@Override
public IType getActualType(TypeVarToTypeMap typeMap, boolean bKeepTypeVars) {
return getJavaType();
}
@Override
public IJavaClassType getConcreteType() {
return this;
}
@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 _gosuModule;
}
@Override
public String getNamespace() {
return _namespace;
}
}