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