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.attribute;
23 
24 import org.apache.openoffice.ooxml.schema.model.base.INode;
25 import org.apache.openoffice.ooxml.schema.model.base.INodeReference;
26 import org.apache.openoffice.ooxml.schema.model.base.INodeVisitor;
27 import org.apache.openoffice.ooxml.schema.model.base.Location;
28 import org.apache.openoffice.ooxml.schema.model.base.Node;
29 import org.apache.openoffice.ooxml.schema.model.base.NodeType;
30 import org.apache.openoffice.ooxml.schema.model.base.QualifiedName;
31 import org.apache.openoffice.ooxml.schema.model.schema.SchemaBase;
32 
33 public class AttributeGroupReference
34     extends Node
35     implements INodeReference
36 {
AttributeGroupReference( final QualifiedName aReferencedElementName, final Location aLocation)37     public AttributeGroupReference (
38         final QualifiedName aReferencedElementName,
39         final Location aLocation)
40     {
41         super(null, null, aLocation);
42         maReferencedElement = aReferencedElementName;
43     }
44 
45 
46 
47 
48     @Override
GetOnlyChild()49     public INode GetOnlyChild ()
50     {
51         throw new RuntimeException("AttributeGroupReference has no children");
52     }
53 
54 
55 
56 
57     @Override
AcceptVisitor(final INodeVisitor aVisitor)58     public void AcceptVisitor (final INodeVisitor aVisitor)
59     {
60         aVisitor.Visit(this);
61     }
62 
63 
64 
65 
GetReferencedName()66     public QualifiedName GetReferencedName ()
67     {
68         return maReferencedElement;
69     }
70 
71 
72 
73 
GetReferencedAttributeGroup(final SchemaBase aSchemaBase)74     public AttributeGroup GetReferencedAttributeGroup (final SchemaBase aSchemaBase)
75     {
76         return aSchemaBase.AttributeGroups.Get(maReferencedElement);
77     }
78 
79 
80 
81 
82     @Override
GetReferencedNode(final SchemaBase aSchemaBase)83     public INode GetReferencedNode (final SchemaBase aSchemaBase)
84     {
85         return GetReferencedAttributeGroup(aSchemaBase);
86     }
87 
88 
89 
90 
91     @Override
GetNodeType()92     public NodeType GetNodeType ()
93     {
94         return NodeType.AttributeGroupReference;
95     }
96 
97 
98 
99 
100     @Override
toString()101     public String toString ()
102     {
103         return "reference to attribute group "+maReferencedElement.GetDisplayName();
104     }
105 
106 
107 
108 
109     private final QualifiedName maReferencedElement;
110 }
111