Author: bimargulies
Date: Wed Oct 13 01:00:35 2010
New Revision: 1021968

URL: http://svn.apache.org/viewvc?rev=1021968&view=rev
Log:
Add an interface to give more commonality to the global items with names and 
ref=

Added:
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRef.java
      - copied, changed from r1021948, 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRefBase.java
      - copied, changed from r1021948, 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java
Modified:
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaElement.java
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java?rev=1021968&r1=1021967&r2=1021968&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java
 Wed Oct 13 01:00:35 2010
@@ -24,6 +24,7 @@ import javax.xml.namespace.QName;
 import org.apache.ws.commons.schema.utils.XmlSchemaNamedWithForm;
 import org.apache.ws.commons.schema.utils.XmlSchemaNamedWithFormImpl;
 import org.apache.ws.commons.schema.utils.XmlSchemaRef;
+import org.apache.ws.commons.schema.utils.XmlSchemaRefBase;
 
 /**
  * Class for attribute types. Represents the World Wide Web Consortium (W3C) 
attribute element.
@@ -31,7 +32,7 @@ import org.apache.ws.commons.schema.util
  * ref= attributes are in the parent items collection, not in the map of named 
items.
  */
 public class XmlSchemaAttribute extends XmlSchemaAttributeOrGroupRef 
implements XmlSchemaNamedWithForm,
-    XmlSchemaAttributeGroupMember {
+    XmlSchemaAttributeGroupMember, XmlSchemaItemWithRef<XmlSchemaAttribute> {
 
     private String defaultValue;
     private String fixedValue;
@@ -160,4 +161,16 @@ public class XmlSchemaAttribute extends 
     public QName getWireName() {
         return namedDelegate.getWireName();
     }
+
+    public boolean isRef() {
+        return ref.getTargetQName() != null;
+    }
+
+    public QName getTargetQName() {
+        return ref.getTargetQName();
+    }
+
+    public XmlSchemaRefBase getRefBase() {
+        return ref;
+    }
 }

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java?rev=1021968&r1=1021967&r2=1021968&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java
 Wed Oct 13 01:00:35 2010
@@ -19,17 +19,21 @@
 
 package org.apache.ws.commons.schema;
 
+import javax.xml.namespace.QName;
+
 import org.apache.ws.commons.schema.utils.XmlSchemaRef;
+import org.apache.ws.commons.schema.utils.XmlSchemaRefBase;
 
 /**
- * Class for the attribute group reference. 
+ * Class for the attribute group reference.
  * Represents the World Wide Web Consortium (W3C) attributeGroup
  * element with the ref attribute.
  */
 public class XmlSchemaAttributeGroupRef extends XmlSchemaAttributeOrGroupRef
-    implements XmlSchemaAttributeGroupMember {
+    implements XmlSchemaAttributeGroupMember,
+    XmlSchemaItemWithRef<XmlSchemaAttributeGroup> {
     private XmlSchemaRef<XmlSchemaAttributeGroup> ref;
-    
+
     /**
      * Create an attribute group reference.
      * @param parent containing schema.
@@ -45,4 +49,16 @@ public class XmlSchemaAttributeGroupRef 
     public XmlSchemaRef<XmlSchemaAttributeGroup> getRef() {
         return ref;
     }
+
+    public boolean isRef() {
+        return ref.getTargetQName() != null;
+    }
+
+    public QName getTargetQName() {
+        return ref.getTargetQName();
+    }
+
+    public XmlSchemaRefBase getRefBase() {
+        return ref;
+    }
 }

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaElement.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaElement.java?rev=1021968&r1=1021967&r2=1021968&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaElement.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaElement.java
 Wed Oct 13 01:00:35 2010
@@ -28,16 +28,18 @@ import javax.xml.namespace.QName;
 import org.apache.ws.commons.schema.utils.XmlSchemaNamedWithForm;
 import org.apache.ws.commons.schema.utils.XmlSchemaNamedWithFormImpl;
 import org.apache.ws.commons.schema.utils.XmlSchemaRef;
+import org.apache.ws.commons.schema.utils.XmlSchemaRefBase;
 
 /**
  * Class for elements. Represents the World Wide Web Consortium (W3C) element 
element.
- * 
+ *
  * Note that ref= elements are in the parent schema 'items' collection,
  * not in the 'element' Map.
  */
 
 public class XmlSchemaElement extends XmlSchemaParticle implements 
TypeReceiver, XmlSchemaNamedWithForm,
-    XmlSchemaChoiceMember, XmlSchemaSequenceMember {
+    XmlSchemaChoiceMember, XmlSchemaSequenceMember,
+    XmlSchemaItemWithRef<XmlSchemaElement> {
 
     /**
      * Attribute used to block a type derivation.
@@ -75,7 +77,7 @@ public class XmlSchemaElement extends Xm
      * QName of an element that can be a substitute for this element.
      */
     private QName substitutionGroup;
-    
+
     private XmlSchemaNamedWithFormImpl namedDelegate;
 
     /**
@@ -152,11 +154,11 @@ public class XmlSchemaElement extends Xm
         this.nillable = isNillable;
     }
 
-  
+
     public XmlSchemaRef<XmlSchemaElement> getRef() {
         return ref;
     }
- 
+
     public XmlSchemaType getSchemaType() {
         return schemaType;
     }
@@ -184,32 +186,32 @@ public class XmlSchemaElement extends Xm
     public void setType(XmlSchemaType type) {
         this.schemaType = type;
     }
-    
+
 
     public String getName() {
         return namedDelegate.getName();
     }
-    
+
 
     public XmlSchema getParent() {
         return namedDelegate.getParent();
     }
-    
+
 
     public QName getQName() {
         return namedDelegate.getQName();
     }
-    
+
 
     public boolean isAnonymous() {
         return namedDelegate.isAnonymous();
     }
-    
+
 
     public boolean isTopLevel() {
         return namedDelegate.isTopLevel();
     }
-    
+
     public void setName(String name) {
         if (namedDelegate.isTopLevel() && namedDelegate.getName() != null) {
             namedDelegate.getParent().getElements().remove(getQName());
@@ -274,4 +276,16 @@ public class XmlSchemaElement extends Xm
     public XmlSchemaDerivationMethod getFinalDerivationResolved() {
         return finalDerivationResolved;
     }
+
+    public boolean isRef() {
+        return ref.getTargetQName() != null;
+    }
+
+    public QName getTargetQName() {
+        return ref.getTargetQName();
+    }
+
+    public XmlSchemaRefBase getRefBase() {
+        return ref;
+    }
 }

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java?rev=1021968&r1=1021967&r2=1021968&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java
 Wed Oct 13 01:00:35 2010
@@ -25,7 +25,6 @@ import javax.xml.namespace.QName;
  * Class used within complex types that defines the reference to groups 
defined at the schema level.
  * Represents the World Wide Web Consortium (W3C) group element with ref 
attribute.
  */
-
 public class XmlSchemaGroupRef extends XmlSchemaParticle implements 
XmlSchemaSequenceMember {
 
     private XmlSchemaGroupParticle particle;
@@ -53,5 +52,4 @@ public class XmlSchemaGroupRef extends X
     void setParticle(XmlSchemaGroupParticle particle) {
         this.particle = particle;
     }
-
 }

Copied: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRef.java
 (from r1021948, 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java)
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRef.java?p2=webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRef.java&p1=webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java&r1=1021948&r2=1021968&rev=1021968&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttributeGroupRef.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRef.java
 Wed Oct 13 01:00:35 2010
@@ -1,48 +1,30 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ws.commons.schema;
-
-import org.apache.ws.commons.schema.utils.XmlSchemaRef;
-
-/**
- * Class for the attribute group reference. 
- * Represents the World Wide Web Consortium (W3C) attributeGroup
- * element with the ref attribute.
- */
-public class XmlSchemaAttributeGroupRef extends XmlSchemaAttributeOrGroupRef
-    implements XmlSchemaAttributeGroupMember {
-    private XmlSchemaRef<XmlSchemaAttributeGroup> ref;
-    
-    /**
-     * Create an attribute group reference.
-     * @param parent containing schema.
-     */
-    public XmlSchemaAttributeGroupRef(XmlSchema parent) {
-        ref = new XmlSchemaRef<XmlSchemaAttributeGroup>(parent, 
XmlSchemaAttributeGroup.class);
-    }
-
-    /**
-     * Return the reference object.
-     * @return
-     */
-    public XmlSchemaRef<XmlSchemaAttributeGroup> getRef() {
-        return ref;
-    }
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ws.commons.schema;
+
+import org.apache.ws.commons.schema.utils.XmlSchemaNamed;
+import org.apache.ws.commons.schema.utils.XmlSchemaRef;
+
+/**
+ * Interface implemented by the objects that support ref=.
+ */
+public interface XmlSchemaItemWithRef<T extends XmlSchemaNamed> extends 
XmlSchemaItemWithRefBase {
+    XmlSchemaRef<T> getRef();
+}

Copied: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRefBase.java
 (from r1021948, 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java)
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRefBase.java?p2=webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRefBase.java&p1=webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java&r1=1021948&r2=1021968&rev=1021968&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupRef.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaItemWithRefBase.java
 Wed Oct 13 01:00:35 2010
@@ -1,57 +1,48 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.ws.commons.schema;
-
-import javax.xml.namespace.QName;
-
-/**
- * Class used within complex types that defines the reference to groups 
defined at the schema level.
- * Represents the World Wide Web Consortium (W3C) group element with ref 
attribute.
- */
-
-public class XmlSchemaGroupRef extends XmlSchemaParticle implements 
XmlSchemaSequenceMember {
-
-    private XmlSchemaGroupParticle particle;
-
-    private QName refName;
-
-    /**
-     * Creates new XmlSchemaGroupRef
-     */
-    public XmlSchemaGroupRef() {
-    }
-
-    public XmlSchemaGroupParticle getParticle() {
-        return this.particle;
-    }
-
-    public QName getRefName() {
-        return this.refName;
-    }
-
-    public void setRefName(QName refName) {
-        this.refName = refName;
-    }
-
-    void setParticle(XmlSchemaGroupParticle particle) {
-        this.particle = particle;
-    }
-
-}
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ws.commons.schema;
+
+import javax.xml.namespace.QName;
+
+import org.apache.ws.commons.schema.utils.XmlSchemaRefBase;
+
+/**
+ * Common interface for all objects that can 'ref=' to a global item of the 
same type.
+ * Note that this interface does not return the XmlSchemaRef, since that type 
is generic.
+ * It is convenient to have a non-generic interface in common for the ref= 
items since
+ * there are cases where code wants to treat them independent of the type.
+ */
+public interface XmlSchemaItemWithRefBase {
+    /**
+     * @return true if this object has a non-null ref.
+     */
+    boolean isRef();
+
+    /**
+     * @return the Qualified Name of the target of the ref.
+     */
+    QName getTargetQName();
+
+    /**
+     * @return the non-generic reference object.
+     */
+    XmlSchemaRefBase getRefBase();
+
+}


Reply via email to