Thu, 12 Oct 2017 19:44:07 +0800
merge
1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
26 package com.sun.xml.internal.xsom.impl;
28 import com.sun.xml.internal.xsom.XSAttGroupDecl;
29 import com.sun.xml.internal.xsom.XSAttributeUse;
30 import com.sun.xml.internal.xsom.XSWildcard;
31 import com.sun.xml.internal.xsom.impl.parser.DelayedRef;
32 import com.sun.xml.internal.xsom.impl.parser.SchemaDocumentImpl;
33 import com.sun.xml.internal.xsom.visitor.XSFunction;
34 import com.sun.xml.internal.xsom.visitor.XSVisitor;
35 import org.xml.sax.Locator;
37 import java.util.Iterator;
39 public class AttGroupDeclImpl extends AttributesHolder implements XSAttGroupDecl
40 {
41 public AttGroupDeclImpl( SchemaDocumentImpl _parent, AnnotationImpl _annon,
42 Locator _loc, ForeignAttributesImpl _fa, String _name, WildcardImpl _wildcard ) {
44 this(_parent,_annon,_loc,_fa,_name);
45 setWildcard(_wildcard);
46 }
48 public AttGroupDeclImpl( SchemaDocumentImpl _parent, AnnotationImpl _annon,
49 Locator _loc, ForeignAttributesImpl _fa, String _name ) {
51 super(_parent,_annon,_loc,_fa,_name,false);
52 }
55 private WildcardImpl wildcard;
56 public void setWildcard( WildcardImpl wc ) { wildcard=wc; }
57 public XSWildcard getAttributeWildcard() { return wildcard; }
59 public XSAttributeUse getAttributeUse( String nsURI, String localName ) {
60 UName name = new UName(nsURI,localName);
61 XSAttributeUse o=null;
63 Iterator itr = iterateAttGroups();
64 while(itr.hasNext() && o==null)
65 o = ((XSAttGroupDecl)itr.next()).getAttributeUse(nsURI,localName);
67 if(o==null) o = attributes.get(name);
69 return o;
70 }
72 public void redefine( AttGroupDeclImpl ag ) {
73 for (Iterator itr = attGroups.iterator(); itr.hasNext();) {
74 DelayedRef.AttGroup r = (DelayedRef.AttGroup) itr.next();
75 r.redefine(ag);
76 }
77 }
79 public void visit( XSVisitor visitor ) {
80 visitor.attGroupDecl(this);
81 }
82 public Object apply( XSFunction function ) {
83 return function.attGroupDecl(this);
84 }
85 }