XSGroupDecl.java revision 628:2bfaf29cc90b
1/*
2 * reserved comment block
3 * DO NOT REMOVE OR ALTER!
4 */
5/*
6 * Copyright 1999-2004 The Apache Software Foundation.
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 *      http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 */
20
21package com.sun.org.apache.xerces.internal.impl.xs;
22
23
24import com.sun.org.apache.xerces.internal.impl.xs.util.XSObjectListImpl;
25import com.sun.org.apache.xerces.internal.xs.XSAnnotation;
26import com.sun.org.apache.xerces.internal.xs.XSConstants;
27import com.sun.org.apache.xerces.internal.xs.XSModelGroup;
28import com.sun.org.apache.xerces.internal.xs.XSModelGroupDefinition;
29import com.sun.org.apache.xerces.internal.xs.XSNamespaceItem;
30import com.sun.org.apache.xerces.internal.xs.XSObjectList;
31
32/**
33 * The XML representation for a group declaration
34 * schema component is a global <group> element information item
35 *
36 * @xerces.internal
37 *
38 * @author Sandy Gao, IBM
39 */
40public class XSGroupDecl implements XSModelGroupDefinition {
41
42    // name of the group
43    public String fName = null;
44    // target namespace of the group
45    public String fTargetNamespace = null;
46    // model group of the group
47    public XSModelGroupImpl fModelGroup = null;
48    // optional annotations
49    public XSObjectList fAnnotations = null;
50    // The namespace schema information item corresponding to the target namespace
51    // of the model group definition, if it is globally declared; or null otherwise.
52    private XSNamespaceItem fNamespaceItem = null;
53
54    /**
55     * Get the type of the object, i.e ELEMENT_DECLARATION.
56     */
57    public short getType() {
58        return XSConstants.MODEL_GROUP_DEFINITION;
59    }
60
61    /**
62     * The <code>name</code> of this <code>XSObject</code> depending on the
63     * <code>XSObject</code> type.
64     */
65    public String getName() {
66        return fName;
67    }
68
69    /**
70     * The namespace URI of this node, or <code>null</code> if it is
71     * unspecified.  defines how a namespace URI is attached to schema
72     * components.
73     */
74    public String getNamespace() {
75        return fTargetNamespace;
76    }
77
78    /**
79     * {model group} A model group.
80     */
81    public XSModelGroup getModelGroup() {
82        return fModelGroup;
83    }
84
85    /**
86     * Optional. Annotation.
87     */
88    public XSAnnotation getAnnotation() {
89        return (fAnnotations != null) ? (XSAnnotation) fAnnotations.item(0) : null;
90    }
91
92    /**
93     * Optional. Annotations.
94     */
95    public XSObjectList getAnnotations() {
96        return (fAnnotations != null) ? fAnnotations : XSObjectListImpl.EMPTY_LIST;
97    }
98
99    /**
100     * @see org.apache.xerces.xs.XSObject#getNamespaceItem()
101     */
102    public XSNamespaceItem getNamespaceItem() {
103        return fNamespaceItem;
104    }
105
106    void setNamespaceItem(XSNamespaceItem namespaceItem) {
107        fNamespaceItem = namespaceItem;
108    }
109
110} // class XSGroupDecl
111