1 18 package org.apache.beehive.netui.compiler.grammar; 19 20 import org.apache.beehive.netui.compiler.AnnotationGrammar; 21 import org.apache.beehive.netui.compiler.AnnotationMemberType; 22 import org.apache.beehive.netui.compiler.CompilerUtils; 23 import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationInstance; 24 import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationTypeElementDeclaration; 25 import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationValue; 26 import org.apache.beehive.netui.compiler.typesystem.declaration.MemberDeclaration; 27 28 public class AbsolutePathType extends AnnotationMemberType { 29 30 public AbsolutePathType( String requiredRuntimeVersion, AnnotationGrammar parentGrammar ) 31 { 32 super( requiredRuntimeVersion, parentGrammar); 33 } 34 35 36 public Object onCheck( AnnotationTypeElementDeclaration valueDecl, AnnotationValue member, 37 AnnotationInstance[] parentAnnotations, MemberDeclaration classMember, 38 int annotationArrayIndex ) 39 { 40 AnnotationInstance parentAnnotation = parentAnnotations[ parentAnnotations.length - 1 ]; 41 String path = CompilerUtils.getString( parentAnnotation, PATH_ATTR, false ); 42 if ( ! path.startsWith("/") ) addError( member, "error.absolute-path-required-for-external-redirect", null ); 43 return null; 44 } 45 } 46 | Popular Tags |