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]

Reply via email to