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]