001 package org.mesopotamia.lang.java; 002 003 import java.util.List; 004 005 import org.mesopotamia.MesopotamiaException; 006 import org.mesopotamia.NodeData; 007 import org.mesopotamia.RepositoryLanguage; 008 import org.mesopotamia.Scan; 009 import org.w3c.dom.Element; 010 011 import biz.hammurapi.util.CollectionVisitable; 012 import biz.hammurapi.util.Visitor; 013 014 public class Annotation extends JavaLanguageElement implements AnnotationMemberValueInitializer { 015 016 public Annotation(NodeData xData, Class<?> context, Scan scan, 017 RepositoryLanguage language, Object environment) throws MesopotamiaException { 018 super(xData, context, scan, language, environment); 019 020 // Select attributes 021 Name = selectSingleElementText(Identifier.class, "IDENT|DOT"); 022 Arguments = select(AnnotationArgument.class, "#org.mesopotamia.lang.java.AnnotationArgument"); 023 024 } 025 026 public void toDom(Element holder) { 027 super.toDom(holder); 028 029 // Serialize attributes 030 setAttribute(holder, "Name", Name); 031 setElement(holder, "Arguments", Arguments); 032 } 033 034 // Attributes 035 private String Name; 036 037 private List<AnnotationArgument> Arguments; 038 039 // Accessors 040 public String getName() { 041 return Name; 042 } 043 044 public List<AnnotationArgument> getArguments() { 045 return Arguments; 046 } 047 048 protected void acceptChildren(Visitor visitor) { 049 super.acceptChildren(visitor); 050 // Visiting non-text attributes 051 new CollectionVisitable(Arguments, false).accept(visitor); 052 } 053 054 }