001    package org.mesopotamia.lang.java;
002    
003    import org.mesopotamia.MesopotamiaException;
004    import org.mesopotamia.NodeData;
005    import org.mesopotamia.RepositoryLanguage;
006    import org.mesopotamia.Scan;
007    import org.w3c.dom.Element;
008    
009    import biz.hammurapi.util.Visitable;
010    import biz.hammurapi.util.Visitor;
011    
012    public class TypeBound extends JavaLanguageElement {
013    
014            public TypeBound(
015                            NodeData xData, 
016                            Class<?> context, 
017                            Scan scan,
018                            RepositoryLanguage language, 
019                            Object environment) throws MesopotamiaException {
020                    
021                    super(xData, context, scan, language, environment);
022    
023                    // Select attributes
024                    Type = (Identifier) selectSingleElement(Identifier.class, "#org.mesopotamia.lang.java.ClassOrInterfaceType");
025    
026            }
027    
028            public void toDom(Element holder) {
029                    super.toDom(holder);
030    
031                    // Serialize attributes
032                    setElement(holder, "Type", Type);
033            }
034    
035            // Attributes
036            private Identifier Type;
037    
038            // Accessors
039            public Identifier getBoundType() {
040                    return Type;
041            }
042    
043            protected void acceptChildren(Visitor visitor) {
044                    super.acceptChildren(visitor);
045                    // Visiting non-text attributes
046                    if (Type instanceof Visitable) {
047                            ((Visitable) Type).accept(visitor);
048                    }
049            }
050    
051    }