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 EnumDefinition extends TypeDefinition { 015 016 public EnumDefinition(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 Implements = selectText(Identifier.class, "IMPLEMENTS_CLAUSE/*"); 022 Constants = select(EnumConstantDefinition.class, "ENUM_CONSTANT_DEF"); 023 024 } 025 026 public void toDom(Element holder) { 027 super.toDom(holder); 028 029 // Serialize attributes 030 setElement(holder, "Implements", Implements); 031 setElement(holder, "Constants", Constants); 032 } 033 034 // Attributes 035 private List<String> Implements; 036 037 private List<EnumConstantDefinition> Constants; 038 039 // Accessors 040 public List<String> getImplements() { 041 return Implements; 042 } 043 044 public List<EnumConstantDefinition> getConstants() { 045 return Constants; 046 } 047 048 protected void acceptChildren(Visitor visitor) { 049 super.acceptChildren(visitor); 050 // Visiting non-text attributes 051 new CollectionVisitable(Constants, false).accept(visitor); 052 } 053 054 }