sandygao 2003/12/02 07:38:38
Modified: java/src/org/apache/xerces/impl/xs SchemaGrammar.java
Log:
Add a new method in the XSGrammar interface, to convert an array of
schema grammers to an XSModel.
Revision Changes Path
1.33 +28 -7 xml-xerces/java/src/org/apache/xerces/impl/xs/SchemaGrammar.java
Index: SchemaGrammar.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/SchemaGrammar.java,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- SchemaGrammar.java 11 Nov 2003 20:14:58 -0000 1.32
+++ SchemaGrammar.java 2 Dec 2003 15:38:38 -0000 1.33
@@ -932,12 +932,33 @@
return new XSModelImpl(new SchemaGrammar[]{this});
}
- /**
- * @see org.apache.xerces.xs.XSNamespaceItem#getAnnotations()
- */
- public XSObjectList getAnnotations() {
- return new XSObjectListImpl(fAnnotations, fNumAnnotations);
- }
+ public XSModel toXSModel(XSGrammar[] grammars) {
+ if (grammars == null || grammars.length == 0)
+ return toXSModel();
+
+ int len = grammars.length;
+ boolean hasSelf = false;
+ for (int i = 0; i < len; i++) {
+ if (grammars[i] == this) {
+ hasSelf = true;
+ break;
+ }
+ }
+
+ SchemaGrammar[] gs = new SchemaGrammar[hasSelf ? len : len+1];
+ for (int i = 0; i < len; i++)
+ gs[i] = (SchemaGrammar)grammars[i];
+ if (!hasSelf)
+ gs[len] = this;
+ return new XSModelImpl(gs);
+ }
+
+ /**
+ * @see org.apache.xerces.xs.XSNamespaceItem#getAnnotations()
+ */
+ public XSObjectList getAnnotations() {
+ return new XSObjectListImpl(fAnnotations, fNumAnnotations);
+ }
public void addAnnotation(XSAnnotationImpl annotation) {
if(annotation == null)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]