1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21 
22 package org.apache.openoffice.ooxml.schema.model.complex;
23 
24 import org.apache.openoffice.ooxml.schema.model.base.INodeVisitor;
25 import org.apache.openoffice.ooxml.schema.model.base.Location;
26 import org.apache.openoffice.ooxml.schema.model.base.Node;
27 import org.apache.openoffice.ooxml.schema.model.base.NodeType;
28 import org.apache.openoffice.ooxml.schema.model.base.QualifiedName;
29 
30 /** Representation of the 'element' XML schema element.
31  */
32 public class Element
33     extends Node
34 {
35     /** Create a new element that represents a transition to aTypeName when a
36      *  start tag of aElementName is processed.
37      */
Element( final Node aParent, final QualifiedName aElementName, final QualifiedName aTypeName, final Location aLocation)38     public Element (
39         final Node aParent,
40         final QualifiedName aElementName,
41         final QualifiedName aTypeName,
42         final Location aLocation)
43     {
44         super(aParent, aElementName, aLocation);
45         maElementName = aElementName;
46         maTypeName = aTypeName;
47     }
48 
49 
50 
51 
GetElementName()52     public QualifiedName GetElementName ()
53     {
54         return maElementName;
55     }
56 
57 
58 
59 
GetTypeName()60     public QualifiedName GetTypeName ()
61     {
62         return maTypeName;
63     }
64 
65 
66 
67 
68     @Override
compareTo(final Node aOther)69     public int compareTo (final Node aOther)
70     {
71         if (aOther.GetNodeType() != NodeType.Element)
72             throw new RuntimeException("can not compare Element object to non-Element object");
73         else
74             return maElementName.compareTo(((Element)aOther).maElementName);
75     }
76 
77 
78 
79 
80     @Override
GetNodeType()81     public NodeType GetNodeType ()
82     {
83         return NodeType.Element;
84     }
85 
86 
87 
88 
89     @Override
AcceptVisitor(final INodeVisitor aVisitor)90     public void AcceptVisitor (final INodeVisitor aVisitor)
91     {
92         aVisitor.Visit(this);
93     }
94 
95 
96 
97 
98     @Override
toString()99     public String toString ()
100     {
101         return "element " + maElementName.GetDisplayName() +" -> " + maTypeName.GetDisplayName();
102     }
103 
104 
105 
106 
107     private final QualifiedName maElementName;
108     private final QualifiedName maTypeName;
109 }
110