/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.gosu.parser.java.classinfo; import gw.internal.gosu.parser.java.IJavaASTNode; import gw.internal.gosu.parser.java.JavaASTConstants; import gw.internal.gosu.parser.java.JavaParser; import gw.lang.reflect.gs.ISourceFileHandle; import gw.lang.reflect.java.IJavaClassInfo; import gw.lang.reflect.java.IJavaClassType; import gw.lang.reflect.java.JavaTypes; import gw.lang.reflect.module.IModule; public class JavaSourceAnnotation extends JavaSourceType { /** * For top level. */ public JavaSourceAnnotation(ISourceFileHandle fileHandle, IJavaASTNode node, IModule gosuModule) { super(fileHandle, node, JavaASTConstants.annotationTypeDeclaration, JavaParser.INTERFACE, JavaASTConstants.annotationTypeBody, gosuModule); } /** * For inner. */ public JavaSourceAnnotation(IJavaASTNode node, JavaSourceType parent) { super(node, parent, JavaParser.INTERFACE, JavaASTConstants.annotationTypeBody); } @Override public IJavaClassInfo[] getInterfaces() { if (_interfaces == null) { _interfaces = new IJavaClassInfo[] {JavaTypes.ANNOTATION().getBackingClassInfo()}; } return _interfaces; } @Override public IJavaClassType[] getGenericInterfaces() { if (_genericInterfaces == null) { _genericInterfaces = new IJavaClassInfo[] {JavaTypes.ANNOTATION().getBackingClassInfo()}; } return _genericInterfaces; } }