You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlbeans-cvs@xml.apache.org by pc...@apache.org on 2004/03/08 22:38:06 UTC

cvs commit: xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/visitor CommentInitializer.java CompositeElementVisitor.java ElementVisitor.java PropertyInitializer.java package.html

pcal        2004/03/08 13:38:06

  Modified:    v2/jam2  build.xml
               v2/jam2/src/org/apache/xmlbeans/impl/jam JElement.java
                        JamServiceParams.java
               v2/jam2/src/org/apache/xmlbeans/impl/jam/annotation
                        AnnotationProxy.java
               v2/jam2/src/org/apache/xmlbeans/impl/jam/editable
                        EElement.java
               v2/jam2/src/org/apache/xmlbeans/impl/jam/internal
                        JamClassLoaderImpl.java JamServiceContextImpl.java
                        package.html
               v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements
                        AnnotatedElementImpl.java AnnotationImpl.java
                        BuiltinClassImpl.java ClassImpl.java
                        CommentImpl.java ConstructorImpl.java
                        ElementImpl.java FieldImpl.java InvokableImpl.java
                        MethodImpl.java PackageImpl.java ParameterImpl.java
                        PropertyImpl.java
               v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/javadoc
                        package.html
               v2/jam2/src/org/apache/xmlbeans/impl/jam/provider
                        JamServiceContext.java
  Added:       v2/jam2/src/org/apache/xmlbeans/impl/jam/annotation
                        package.html
               v2/jam2/src/org/apache/xmlbeans/impl/jam/editable
                        EPackage.java package.html
               v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/classrefs
                        package.html
               v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements
                        package.html
               v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/parser
                        package.html
               v2/jam2/src/org/apache/xmlbeans/impl/jam/provider
                        package.html
               v2/jam2/src/org/apache/xmlbeans/impl/jam/visitor
                        CommentInitializer.java
                        CompositeElementVisitor.java ElementVisitor.java
                        PropertyInitializer.java package.html
  Removed:     v2/jam2/src/org/apache/xmlbeans/impl/jam
                        JElementVisitor.java JamClassInitializer.java
               v2/jam2/src/org/apache/xmlbeans/impl/jam/provider
                        CompositeJamClassInitializer.java
                        DefaultCommentProcessor.java
  Log:
  jam: more api changes
  
  Revision  Changes    Path
  1.2       +8 -7      xml-xmlbeans/v2/jam2/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/build.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- build.xml	8 Mar 2004 11:15:16 -0000	1.1
  +++ build.xml	8 Mar 2004 21:38:04 -0000	1.2
  @@ -6,7 +6,7 @@
     <property name='src_dir'     value='src'/>
     <property name='docs_dir'    value='docs'/>
     <property name='build_dir'   value='build'/>
  -  <property name='docbuild_dir'    value='build/docs'/>
  +  <property name='docbuild_dir'    value='build/jamdocs'/>
     <property name='javadocbuild_dir'    value='${docbuild_dir}/javadocs'/>
     <property name='gen_dir'     value='${build_dir}/generatedsrc'/>
     <property name='classes_dir' value='${build_dir}/classes'/>
  @@ -18,7 +18,9 @@
       <delete dir='${build_dir}'/>
     </target>
   
  -  <target name='all' depends='compile'/>
  +  <target name='cleanall' depends='clean,all'/>
  +
  +  <target name='all' depends='compile,docs'/>
   
     <target name='parser'>
       <delete dir='${gen_dir}'/>
  @@ -55,16 +57,15 @@
       <ant dir='${tests_dir}' target='all' inheritAll='false' />
     </target>
   
  -  <target name='docs' depends='all'>
  +  <target name='docs' depends='compile'>
       <delete dir='${docbuild_dir}' />
       <mkdir dir='${docbuild_dir}' />
  -    <javadoc packagenames='*' 
  -             classpath='${javadoc.path}' 
  -             destdir='${javadocbuild_dir}' 
  +    <javadoc packagenames='*'
  +             destdir='${javadocbuild_dir}'
                windowtitle='JAM Documentation' 
                source='1.4' 
                stylesheetfile='${docs_dir}/stylesheet.css'>
  -      <fileset dir='${src_dir}' includes='**/jam/*.java,**/jam/editable/*.java,' />
  +      <fileset dir='${src_dir}' includes='**/jam/**/*.java' excludes='**/internal/**/*.java' />
         <link href='http://e-docs.bea.com/wls/docs81/javadocs/' />
         <link href='http://java.sun.com/j2se/1.4.2/docs/api/' />
         <link href='http://java.sun.com/j2ee/1.4/docs/api/' />
  
  
  
  1.2       +4 -2      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/JElement.java
  
  Index: JElement.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/JElement.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JElement.java	8 Mar 2004 11:15:17 -0000	1.1
  +++ JElement.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -15,6 +15,8 @@
   
   package org.apache.xmlbeans.impl.jam;
   
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
  +
   /**
    * <p>Interface implemented by JAM abstractions which can have
    * associated annotations (i.e. metadata).  This abstraction is
  @@ -77,7 +79,7 @@
     /**
      * <p>Accepts the given visitor.</p>
      */
  -  public void accept(JElementVisitor visitor);
  +  public void accept(ElementVisitor visitor);
   
     /**
      * <p>Calls accept() with the given visitor, and then recursively calls
  @@ -104,7 +106,7 @@
      *
      * </p>
      */
  -  public void acceptAndWalk(JElementVisitor visitor);
  +  public void acceptAndWalk(ElementVisitor visitor);
   
     /**
      * <p>This is not something you want to mess with.  It's here only for the
  
  
  
  1.2       +8 -2      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/JamServiceParams.java
  
  Index: JamServiceParams.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/JamServiceParams.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JamServiceParams.java	8 Mar 2004 11:15:17 -0000	1.1
  +++ JamServiceParams.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -15,6 +15,8 @@
   
   package org.apache.xmlbeans.impl.jam;
   
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
  +
   import java.io.File;
   import java.io.PrintWriter;
   
  @@ -291,10 +293,14 @@
   
   
     //DOCME
  -  public void setCommentInitializer(JamClassInitializer init);
  +  public void setCommentInitializer(ElementVisitor initializer);
  +
  +  //DOCME
  +  public void setPropertyInitializer(ElementVisitor initializer);
   
     //DOCME
  -  public void addCustomInitializer(JamClassInitializer init);
  +  public void addInitializer(ElementVisitor initializer);
  +
   
     /**
      * <p>Sets the subclass of CustomAnnotationProxyBase to be instantiated when no
  
  
  
  1.2       +1 -3      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/annotation/AnnotationProxy.java
  
  Index: AnnotationProxy.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/annotation/AnnotationProxy.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AnnotationProxy.java	8 Mar 2004 11:15:18 -0000	1.1
  +++ AnnotationProxy.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -17,10 +17,8 @@
   /**
    * <p>Provides a proxied view of some annotation artifact.  JAM calls the
    * public methods on this class to initialize the proxy with annotation
  - * values; those methods should not be called by user-code.</p>
  + * values; those methods should not be called by user code.</p>
    *
  - *
  -
    * @author Patrick Calahan <pc...@bea.com>
    */
   public abstract class AnnotationProxy {
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/annotation/package.html
  
  Index: package.html
  ===================================================================
  <body>
    <p>
      Provides a modifiable view of the type element tree.  This package
      contains interfaces which parallel and extend the JElement tree,
      adding and editing functionality to that the view of the java type system
      can be modified.
    </p>
  </body>
  
  
  1.2       +5 -28     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/editable/EElement.java
  
  Index: EElement.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/editable/EElement.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EElement.java	8 Mar 2004 11:15:18 -0000	1.1
  +++ EElement.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -23,41 +23,18 @@
    */
   public interface EElement extends JElement {
   
  +  //DOCME
     public void setSimpleName(String name);
   
  +  //DOCME
     public ESourcePosition createSourcePosition();
   
  +  //DOCME
     public void removeSourcePosition();
   
  +  //DOCME
     public ESourcePosition getEditableSourcePosition();
   
  -  /**
  -   * <p>Accepts the given visitor.</p>
  -   */
  -  public void accept(EElementVisitor visitor);
  -
  -  /**
  -   * <p>Calls accept() with the given visitor, and then recursively calls
  -   * acceptAndWalk for all of our component elements2.  Calling this on
  -   * an EClass will cause the EClass to accept the visitor, and then
  -   * all of it's declared fields constructors, and methods.  The parameter
  -   * for each constructor and method will also in turn be accepted.
  -   * Any annotations for each of these elements types will also be visited
  -   * after their other children have been visited.  Note that inherited
  -   * members are never visited, nor are referenced classes (e.g. referenced
  -   * via inheritance or member types).  </p>
  -   *
  -   * Class
  -   *   Field
  -   *   Method
  -   *     Parameter
  -   *   Constructor
  -   *     Parameter
  -   *
  -   * </p>
  -   */
  -  public void acceptAndWalk(EElementVisitor visitor);
  -
  -
  +  //DOCME
     public void setArtifact(Object o);
   }
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/editable/EPackage.java
  
  Index: EPackage.java
  ===================================================================
  /*   Copyright 2004 The Apache Software Foundation
   *
   *   Licensed 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.xmlbeans.impl.jam.editable;
  
  import org.apache.xmlbeans.impl.jam.JPackage;
  
  /**
   * @author Patrick Calahan <pc...@bea.com>
   */
  public interface EPackage extends  JPackage, EAnnotatedElement {
  }
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/editable/package.html
  
  Index: package.html
  ===================================================================
  <body>
    <p>
      Provides a modifiable view of the JElement tree.  This package contains
      interfaces which parallel and extend the JElement tree, adding and
      editing functionality to that the view of the java type system can
      be modified.
    </p>
  
    <p>
      Typically, this is only used in conjunction with an 'initializer'
      ElementVisitor which is run on a JClass when it is first loaded.  The
      initializer might use these editable 'E*' abstractions to, for example,
      do some pre-processing on the comments or annotations, or to determine
      which methods on a class should be exposed as JProperties.  The E*
      classes are also used by JAM providers in implementing the JamClassBuilder
      interface, which populates an EClass with methods, fields, and so on.
    </p>
  
    <p>
      It is also possible to use this package to synthesize a view
      of a java class which does not actually exist in any class or source
      file.  This could be useful, for example, to drive a code-generation
      mechanism (Note that JAM does not provide a model for the contents of
      method bodies, so this may not be a useful approach).
  </body>
  
  
  1.2       +10 -13    xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/JamClassLoaderImpl.java
  
  Index: JamClassLoaderImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/JamClassLoaderImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JamClassLoaderImpl.java	8 Mar 2004 11:15:18 -0000	1.1
  +++ JamClassLoaderImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -16,10 +16,10 @@
   
   import org.apache.xmlbeans.impl.jam.JClass;
   import org.apache.xmlbeans.impl.jam.JPackage;
  -import org.apache.xmlbeans.impl.jam.JamClassInitializer;
   import org.apache.xmlbeans.impl.jam.JamClassLoader;
  +import org.apache.xmlbeans.impl.jam.editable.EClass;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.internal.elements.*;
  -import org.apache.xmlbeans.impl.jam.internal.javadoc.JDFactory;
   import org.apache.xmlbeans.impl.jam.provider.JamClassBuilder;
   
   import java.util.Collection;
  @@ -40,7 +40,7 @@
     private Map mName2Package = new HashMap();
     private Map mFd2ClassCache = null;
     private JamClassBuilder mBuilder;
  -  private JamClassInitializer mInitializer = null;
  +  private ElementVisitor mInitializer = null;
     private ElementContext mContext;
   
     // ========================================================================
  @@ -48,13 +48,13 @@
   
     public JamClassLoaderImpl(ElementContext context,
                               JamClassBuilder builder,
  -                            JamClassInitializer initializer) {
  +                            ElementVisitor initializerOrNull) {
       if (builder == null) throw new IllegalArgumentException("null builder");
       if (context == null) throw new IllegalArgumentException("null builder");
       mBuilder = builder;
  -    mInitializer = initializer; //ok to be null
  +    mInitializer = initializerOrNull; //ok to be null
       mContext = context;
  -    primeCache();
  +    initCache();
     }
   
     // ========================================================================
  @@ -63,7 +63,7 @@
     public final JClass loadClass(String fd)
     {
       fd = fd.trim();//REVIEW is this paranoid?
  -    JClass out = (JClass)mFd2ClassCache.get(fd);
  +    EClass out = (EClass)mFd2ClassCache.get(fd);
       if (out != null) return out;
       if (fd.startsWith("[")) {
         return ArrayClassImpl.createClassForFD(fd,this);
  @@ -86,18 +86,15 @@
         mContext.debug("[JamClassLoaderImpl] unresolved class '"+
           pkg+" "+name+"'!!");
       }
  -    if (mInitializer != null && out instanceof ClassImpl) {
  -      mInitializer.initialize((ClassImpl)out);
  -    }
  +    if (mInitializer != null) out.acceptAndWalk(mInitializer);
       mFd2ClassCache.put(fd,out);
       return out;
     }
   
  -  //FIXME
     public JPackage getPackage(String named) {
       JPackage out = (JPackage)mName2Package.get(named);
       if (out == null) {
  -      out = JDFactory.getInstance().createPackage(named);
  +      out = new PackageImpl(mContext,named);
         mName2Package.put(named,out);
       }
       return out;
  @@ -109,7 +106,7 @@
     /**
      * <p>Stuff the primitives and void into the cache.</p>
      */
  -  private void primeCache() {
  +  private void initCache() {
       mFd2ClassCache = new HashMap();
       PrimitiveClassImpl.mapNameToPrimitive(mContext,mFd2ClassCache);
       mFd2ClassCache.put("void",new VoidClassImpl(mContext));
  
  
  
  1.2       +31 -22    xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/JamServiceContextImpl.java
  
  Index: JamServiceContextImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/JamServiceContextImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JamServiceContextImpl.java	8 Mar 2004 11:15:18 -0000	1.1
  +++ JamServiceContextImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -15,15 +15,14 @@
   
   package org.apache.xmlbeans.impl.jam.internal;
   
  -import org.apache.xmlbeans.impl.jam.JamClassInitializer;
   import org.apache.xmlbeans.impl.jam.JamClassLoader;
   import org.apache.xmlbeans.impl.jam.JamServiceParams;
   import org.apache.xmlbeans.impl.jam.annotation.AnnotationProxy;
   import org.apache.xmlbeans.impl.jam.annotation.DefaultAnnotationProxy;
   import org.apache.xmlbeans.impl.jam.internal.elements.ClassImpl;
   import org.apache.xmlbeans.impl.jam.internal.elements.ElementContext;
  -import org.apache.xmlbeans.impl.jam.provider.CompositeJamClassInitializer;
  -import org.apache.xmlbeans.impl.jam.provider.DefaultCommentProcessor;
  +import org.apache.xmlbeans.impl.jam.visitor.CommentInitializer;
  +import org.apache.xmlbeans.impl.jam.visitor.*;
   import org.apache.xmlbeans.impl.jam.provider.JamServiceContext;
   import org.apache.xmlbeans.impl.jam.provider.ResourcePath;
   
  @@ -64,7 +63,8 @@
     private PrintWriter mOut = null;
     private boolean mUseSystemClasspath = true;
     private boolean mVerbose = false;
  -  private JamClassInitializer mCommentInitializer = null;
  +  private ElementVisitor mCommentInitializer = null;
  +  private ElementVisitor mPropertyInitializer = null;
     private List mOtherInitializers = null;
   
     private JamClassLoader mLoader = null;
  @@ -204,23 +204,42 @@
       mTagname2proxyclass.put(tagname,proxy);
     }
   
  -  public JamClassInitializer getInitializer() {
  +
  +  public ElementVisitor getInitializer() {
       List initers = new ArrayList();
  -    if (mCommentInitializer != null) {
  -      initers.add(mCommentInitializer);
  -    } else {
  -      initers.add(DefaultCommentProcessor.getInstance());
  -    }
  +    initers.add((mCommentInitializer != null) ? mCommentInitializer :
  +                new CommentInitializer());
  +    initers.add((mPropertyInitializer != null) ? mPropertyInitializer :
  +                new PropertyInitializer());
       if (mOtherInitializers != null) initers.addAll(mOtherInitializers);
       // now go
  -    JamClassInitializer[] inits = new JamClassInitializer[initers.size()];
  +    ElementVisitor[] inits = new ElementVisitor[initers.size()];
       initers.toArray(inits);
  -    return new CompositeJamClassInitializer(inits);
  +    return new CompositeElementVisitor(inits);
     }
   
     // ========================================================================
     // JamServiceParams implementation
   
  +
  +
  +  //DOCME
  +  public void setCommentInitializer(ElementVisitor initializer) {
  +    mCommentInitializer = initializer;
  +  }
  +
  +  //DOCME
  +  public void setPropertyInitializer(ElementVisitor initializer) {
  +    mPropertyInitializer = initializer;
  +  }
  +
  +  //DOCME
  +  public void addInitializer(ElementVisitor initializer) {
  +    if (mOtherInitializers == null) mOtherInitializers = new ArrayList();
  +    mOtherInitializers.add(initializer);
  +  }
  +
  +
     public void includeSourceFiles(File srcRoot, String pattern) {
       addSourcepath(srcRoot);
       getSourceScanner(srcRoot).include(pattern);
  @@ -301,15 +320,6 @@
       mUseSystemClasspath = use;
     }
   
  -  public void setCommentInitializer(JamClassInitializer init) {
  -    mCommentInitializer = init;
  -  }
  -
  -  public void addCustomInitializer(JamClassInitializer init) {
  -    if (mOtherInitializers == null) mOtherInitializers = new ArrayList();
  -    mOtherInitializers.add(init);
  -  }
  -
     public void setDefaultAnnotationProxyClass(Class proxy) {
       validateProxyClass(proxy);
       mDefaultAnnotationProxyClass = proxy;
  @@ -380,7 +390,6 @@
           " does not have a default constructor");
       }
     }
  -
   
   
     // ========================================================================
  
  
  
  1.2       +8 -2      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/package.html
  
  Index: package.html
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/package.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- package.html	8 Mar 2004 11:15:18 -0000	1.1
  +++ package.html	8 Mar 2004 21:38:05 -0000	1.2
  @@ -1,4 +1,10 @@
   <body>
  -  Internal use only.  This package contains shared JAM implementation
  -  classes.
  +  <p>
  +    Internal use only.  These classes may change or be removed at any time
  +    without warning.
  +  </p>
  +
  +  <p>
  +    This package contains various classes used in the JAM imlementation.
  +  </p>
   </body>
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/classrefs/package.html
  
  Index: package.html
  ===================================================================
  <body>
    <p>
      Internal use only.  These classes may change or be removed at any time
      without warning.
    </p>
  
    <p>
      Contains classes for maintaining and resolving references between JClasses.
    </p>
  </body>
  
  
  1.2       +2 -9      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/AnnotatedElementImpl.java
  
  Index: AnnotatedElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/AnnotatedElementImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AnnotatedElementImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ AnnotatedElementImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -2,13 +2,12 @@
   
   import org.apache.xmlbeans.impl.jam.JAnnotation;
   import org.apache.xmlbeans.impl.jam.JComment;
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.annotation.AnnotationProxy;
   import org.apache.xmlbeans.impl.jam.annotation.ValueMap;
   import org.apache.xmlbeans.impl.jam.editable.EAnnotatedElement;
   import org.apache.xmlbeans.impl.jam.editable.EAnnotation;
   import org.apache.xmlbeans.impl.jam.editable.EComment;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
   
   import java.util.Map;
   
  @@ -173,13 +172,7 @@
     // ========================================================================
     // Protect methods
   
  -  protected void visitAnnotations(JElementVisitor visitor) {
  -    JAnnotation[] anns = getAnnotations();
  -    for(int i=0; i<anns.length; i++) visitor.visit(anns[i]);
  -    if (mComment != null) visitor.visit(mComment);
  -  }
  -
  -  protected void visitAnnotations(EElementVisitor visitor) {
  +  protected void visitAnnotations(ElementVisitor visitor) {
       EAnnotation[] anns = getEditableAnnotations();
       for(int i=0; i<anns.length; i++) visitor.visit(anns[i]);
       if (mComment != null) visitor.visit(mComment);
  
  
  
  1.2       +3 -12     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/AnnotationImpl.java
  
  Index: AnnotationImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/AnnotationImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AnnotationImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ AnnotationImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -14,11 +14,10 @@
    */
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.annotation.AnnotationProxy;
   import org.apache.xmlbeans.impl.jam.annotation.ValueMap;
   import org.apache.xmlbeans.impl.jam.editable.EAnnotation;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
   
   /**
    * <p>Standard implementation of AnnotationImpl.</p>
  @@ -61,24 +60,16 @@
       return mProxy.getClass().getName(); //FIXME
     }
   
  -  public void accept(JElementVisitor visitor) {
  +  public void accept(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
  -  public void acceptAndWalk(JElementVisitor visitor) {
  +  public void acceptAndWalk(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
     // ========================================================================
     // EElement implementation
  -
  -  public void accept(EElementVisitor visitor) {
  -    visitor.visit(this);
  -  }
  -
  -  public void acceptAndWalk(EElementVisitor visitor) {
  -    accept(visitor);
  -  }
   
     public AnnotationProxy getEditableProxy() {
       return mProxy;
  
  
  
  1.2       +3 -14     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/BuiltinClassImpl.java
  
  Index: BuiltinClassImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/BuiltinClassImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BuiltinClassImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ BuiltinClassImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -17,6 +17,7 @@
   
   
   import org.apache.xmlbeans.impl.jam.*;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.*;
   
   /**
  @@ -45,11 +46,11 @@
     // ========================================================================
     // JElement implementation
   
  -  public void accept(JElementVisitor visitor) {
  +  public void accept(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
  -  public void acceptAndWalk(JElementVisitor visitor) {
  +  public void acceptAndWalk(ElementVisitor visitor) {
       accept(visitor);
       visitAnnotations(visitor);
     }
  @@ -132,18 +133,6 @@
     public EMethod addNewMethod() { nocando(); return null; }
     public void removeMethod(EMethod method) { nocando(); }
     public void setModifiers(int modifiers) { nocando(); }
  -
  -  // ========================================================================
  -  // EElement implementation
  -
  -  public void accept(EElementVisitor visitor) {
  -    visitor.visit(this);
  -  }
  -
  -  public void acceptAndWalk(EElementVisitor visitor) {
  -    accept(visitor);
  -    visitAnnotations(visitor);
  -  }
   
     // ========================================================================
     // Object implementation
  
  
  
  1.2       +3 -14     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/ClassImpl.java
  
  Index: ClassImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/ClassImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ClassImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ ClassImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -16,6 +16,7 @@
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
   import org.apache.xmlbeans.impl.jam.*;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.*;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.JClassRef;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.JClassRefContext;
  @@ -161,11 +162,11 @@
       return new JClass[0];//FIXME
     }
   
  -  public void accept(JElementVisitor visitor) {
  +  public void accept(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
  -  public void acceptAndWalk(JElementVisitor visitor) {
  +  public void acceptAndWalk(ElementVisitor visitor) {
       accept(visitor);
       acceptAndWalkAll(visitor,getEditableFields());
       acceptAndWalkAll(visitor,getEditableConstructors());
  @@ -313,18 +314,6 @@
   
     public String getQualifiedName() {
       return mPackageName+ '.' +getSimpleName();
  -  }
  -
  -  public void accept(EElementVisitor visitor) {
  -    visitor.visit(this);
  -  }
  -
  -  public void acceptAndWalk(EElementVisitor visitor) {
  -    accept(visitor);
  -    acceptAndWalkAll(visitor,getEditableFields());
  -    acceptAndWalkAll(visitor,getEditableConstructors());
  -    acceptAndWalkAll(visitor,getEditableMethods());
  -    visitAnnotations(visitor);
     }
   
     // ========================================================================
  
  
  
  1.2       +3 -11     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/CommentImpl.java
  
  Index: CommentImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/CommentImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CommentImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ CommentImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -14,9 +14,8 @@
    */
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.EComment;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
   
   /**
    * <p>Implementation
  @@ -43,18 +42,11 @@
     public String getText() { return (mText == null) ? "" : mText; }
   
     // ========================================================================
  -  // EElement implementation
  -
  -  public void accept(EElementVisitor visitor) { visitor.visit(this); }
  -
  -  public void acceptAndWalk(EElementVisitor visitor) { accept(visitor); }
  -
  -  // ========================================================================
     // JElement implementation
   
  -  public void accept(JElementVisitor visitor) { visitor.visit(this); }
  +  public void accept(ElementVisitor visitor) { visitor.visit(this); }
   
  -  public void acceptAndWalk(JElementVisitor visitor) { accept(visitor); }
  +  public void acceptAndWalk(ElementVisitor visitor) { accept(visitor); }
   
     public String getQualifiedName() {
       return getParent().getQualifiedName()+".{comment}"; //REVIEW
  
  
  
  1.2       +2 -9      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/ConstructorImpl.java
  
  Index: ConstructorImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/ConstructorImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ConstructorImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ ConstructorImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -15,7 +15,7 @@
   
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.EConstructor;
   import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
   
  @@ -34,16 +34,9 @@
     }
   
     // ========================================================================
  -  // EElement implementation
  -
  -  public void accept(EElementVisitor visitor) {
  -    visitor.visit(this);
  -  }
  -
  -  // ========================================================================
     // JElement implementation
   
  -  public void accept(JElementVisitor visitor) {
  +  public void accept(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
  
  
  
  1.2       +2 -10     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/ElementImpl.java
  
  Index: ElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/ElementImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ElementImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ ElementImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -16,8 +16,8 @@
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
   import org.apache.xmlbeans.impl.jam.*;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.EElement;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.ESourcePosition;
   
   /**
  @@ -140,15 +140,7 @@
      * <p>Simple utility method used by subclasses to implement
      * acceptAndWalk.</p>
      */
  -  protected static void acceptAndWalkAll(EElementVisitor v, EElement[] sub) {
  -    for(int i=0; i<sub.length; i++) sub[i].acceptAndWalk(v);
  -  }
  -
  -  /**
  -   * <p>Simple utility method used by subclasses to implement
  -   * acceptAndWalk.</p>
  -   */
  -  protected static void acceptAndWalkAll(JElementVisitor v, JElement[] sub) {
  +  protected static void acceptAndWalkAll(ElementVisitor v, JElement[] sub) {
       for(int i=0; i<sub.length; i++) sub[i].acceptAndWalk(v);
     }
   }
  
  
  
  1.2       +3 -16     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/FieldImpl.java
  
  Index: FieldImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/FieldImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FieldImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ FieldImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -16,8 +16,7 @@
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
   import org.apache.xmlbeans.impl.jam.JClass;
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.EField;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.DirectJClassRef;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.JClassRef;
  @@ -104,25 +103,13 @@
     }
   
     // ========================================================================
  -  // EElement implementation
  -
  -  public void accept(EElementVisitor visitor) {
  -    visitor.visit(this);
  -  }
  -
  -  public void acceptAndWalk(EElementVisitor visitor) {
  -    accept(visitor);
  -    visitAnnotations(visitor);
  -  }
  -
  -  // ========================================================================
     // JElement implementation
   
  -  public void accept(JElementVisitor visitor) {
  +  public void accept(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
  -  public void acceptAndWalk(JElementVisitor visitor) {
  +  public void acceptAndWalk(ElementVisitor visitor) {
       accept(visitor);
       visitAnnotations(visitor);
     }
  
  
  
  1.2       +2 -13     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/InvokableImpl.java
  
  Index: InvokableImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/InvokableImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InvokableImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ InvokableImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -16,9 +16,8 @@
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
   import org.apache.xmlbeans.impl.jam.JClass;
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.JParameter;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.EInvokable;
   import org.apache.xmlbeans.impl.jam.editable.EParameter;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.DirectJClassRef;
  @@ -110,16 +109,6 @@
     }
   
     // ========================================================================
  -  // EElement implementation
  -
  -  public void acceptAndWalk(EElementVisitor visitor) {
  -    accept(visitor);
  -    acceptAndWalkAll(visitor,getEditableParameters());
  -    visitAnnotations(visitor);
  -  }
  -
  -
  -  // ========================================================================
     // JInvokable implementation
   
     public JParameter[] getParameters() {
  @@ -156,7 +145,7 @@
     // ========================================================================
     // JElement implementation
   
  -  public void acceptAndWalk(JElementVisitor visitor) {
  +  public void acceptAndWalk(ElementVisitor visitor) {
       accept(visitor);
       acceptAndWalkAll(visitor,getEditableParameters());
       visitAnnotations(visitor);
  
  
  
  1.2       +2 -10     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/MethodImpl.java
  
  Index: MethodImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/MethodImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MethodImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ MethodImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -16,8 +16,7 @@
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
   import org.apache.xmlbeans.impl.jam.JClass;
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.EMethod;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.DirectJClassRef;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.JClassRef;
  @@ -98,16 +97,9 @@
     }
   
     // ========================================================================
  -  // EElement implementation
  -
  -  public void accept(EElementVisitor visitor) {
  -    visitor.visit(this);
  -  }
  -
  -  // ========================================================================
     // JElement implementation
   
  -  public void accept(JElementVisitor visitor) {
  +  public void accept(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
  
  
  
  1.2       +5 -12     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/PackageImpl.java
  
  Index: PackageImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/PackageImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PackageImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ PackageImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -16,9 +16,8 @@
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
   import org.apache.xmlbeans.impl.jam.JClass;
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  -import org.apache.xmlbeans.impl.jam.JPackage;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
  +import org.apache.xmlbeans.impl.jam.editable.EPackage;
   
   import java.util.ArrayList;
   import java.util.List;
  @@ -31,7 +30,7 @@
    *
    * @author Patrick Calahan <pc...@bea.com>
    */
  -public class PackageImpl extends AnnotatedElementImpl implements JPackage {
  +public class PackageImpl extends AnnotatedElementImpl implements EPackage {
   
     // ========================================================================
     // Variables
  @@ -54,11 +53,11 @@
   
     public String getQualifiedName() { return mName; }
   
  -  public void accept(JElementVisitor visitor) {
  +  public void accept(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
  -  public void acceptAndWalk(JElementVisitor visitor) {
  +  public void acceptAndWalk(ElementVisitor visitor) {
       accept(visitor);
       acceptAndWalkAll(visitor,getClasses());
     }
  @@ -70,12 +69,6 @@
       JClass[] out = new JClass[mRootClasses.size()];
       mRootClasses.toArray(out);
       return out;
  -  }
  -
  -  public void accept(EElementVisitor visitor) {
  -  }
  -
  -  public void acceptAndWalk(EElementVisitor visitor) {
     }
   
   }
  
  
  
  1.2       +3 -16     xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/ParameterImpl.java
  
  Index: ParameterImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/ParameterImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ParameterImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ ParameterImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -16,8 +16,7 @@
   package org.apache.xmlbeans.impl.jam.internal.elements;
   
   import org.apache.xmlbeans.impl.jam.JClass;
  -import org.apache.xmlbeans.impl.jam.JElementVisitor;
  -import org.apache.xmlbeans.impl.jam.editable.EElementVisitor;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   import org.apache.xmlbeans.impl.jam.editable.EParameter;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.DirectJClassRef;
   import org.apache.xmlbeans.impl.jam.internal.classrefs.JClassRef;
  @@ -83,25 +82,13 @@
     }
   
     // ========================================================================
  -  // EElement implementation
  -
  -  public void accept(EElementVisitor visitor) {
  -    visitor.visit(this);
  -  }
  -
  -  public void acceptAndWalk(EElementVisitor visitor) {
  -    accept(visitor);
  -    visitAnnotations(visitor);
  -  }
  -
  -  // ========================================================================
     // JElement implementation
   
  -  public void accept(JElementVisitor visitor) {
  +  public void accept(ElementVisitor visitor) {
       visitor.visit(this);
     }
   
  -  public void acceptAndWalk(JElementVisitor visitor) {
  +  public void acceptAndWalk(ElementVisitor visitor) {
       accept(visitor);
       visitAnnotations(visitor);
     }
  
  
  
  1.2       +0 -1      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/PropertyImpl.java
  
  Index: PropertyImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/PropertyImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PropertyImpl.java	8 Mar 2004 11:15:19 -0000	1.1
  +++ PropertyImpl.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -18,7 +18,6 @@
   
   import org.apache.xmlbeans.impl.jam.*;
   
  -
   import java.util.HashMap;
   import java.util.Map;
   
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/elements/package.html
  
  Index: package.html
  ===================================================================
  <body>
    <p>
      Internal use only.  These classes may change or be removed at any time
      without warning.
    </p>
  
    <p>
      Contains the implementations of the JElement/EElement trees.
    </p>
  </body>
  
  
  1.2       +8 -2      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/javadoc/package.html
  
  Index: package.html
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/javadoc/package.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- package.html	8 Mar 2004 11:15:20 -0000	1.1
  +++ package.html	8 Mar 2004 21:38:05 -0000	1.2
  @@ -1,4 +1,10 @@
   <body>
  -  Internal use only.  This package contains javadoc-based
  -  JAM implementation classes.
  +  <p>
  +    Internal use only.  These classes may change or be removed at any time
  +    without warning.
  +  </p>
  +
  +  <p>
  +    This package contains javadoc-based JAM provider.
  +  </p>
   </body>
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/internal/parser/package.html
  
  Index: package.html
  ===================================================================
  <body>
    <p>
      Internal use only.  These classes may change or be removed at any time
      without warning.
    </p>
  
    <p>
      Contains classes for the java source parser that is currently being
      written to allow us to remove javadoc from the equation.
    </p>
  </body>
  
  
  
  1.2       +2 -3      xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/provider/JamServiceContext.java
  
  Index: JamServiceContext.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/provider/JamServiceContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JamServiceContext.java	8 Mar 2004 11:15:20 -0000	1.1
  +++ JamServiceContext.java	8 Mar 2004 21:38:05 -0000	1.2
  @@ -55,8 +55,8 @@
   */
   package org.apache.xmlbeans.impl.jam.provider;
   
  -import org.apache.xmlbeans.impl.jam.JamClassInitializer;
   import org.apache.xmlbeans.impl.jam.JamClassLoader;
  +import org.apache.xmlbeans.impl.jam.visitor.ElementVisitor;
   
   import java.io.File;
   import java.io.IOException;
  @@ -107,10 +107,9 @@
   
     public JamClassLoader getParentClassLoader();
   
  -  public JamClassInitializer getInitializer();
  +  public ElementVisitor getInitializer();
   
     public boolean isUseSystemClasspath();
  -
   
     public File[] getSourceFiles() throws IOException;
   
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/provider/package.html
  
  Index: package.html
  ===================================================================
  <body>
    <p>
      Classes to be used by custom JAM implementations and extensions.
    </p>
  </body>
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/visitor/CommentInitializer.java
  
  Index: CommentInitializer.java
  ===================================================================
  /*   Copyright 2004 The Apache Software Foundation
   *
   *   Licensed 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.xmlbeans.impl.jam.visitor;
  
  import org.apache.xmlbeans.impl.jam.JComment;
  import org.apache.xmlbeans.impl.jam.editable.*;
  
  import java.io.*;
  import java.util.*;
  
  /**
   *
   * @author Patrick Calahan <pc...@bea.com>
   */
  public class CommentInitializer extends ElementVisitor {
  
    // ========================================================================
    // Constructors - but maybe it should be a singleton?
  
    public CommentInitializer() {}
  
    // ========================================================================
    // Constants
  
    private static final int TAGNAME_COL = 0;
    private static final int CLASSNAME_COL = 1;
  
    // ========================================================================
    // Variables
  
    private Map mTag2Annclass = null; //maps jd tag names to annotation classes
  
    // ========================================================================
    // Public methods
  
    public void setJavadocTagMappings(String[][] mappings) {
      if (mappings == null) throw new IllegalArgumentException("null mappings");
      mTag2Annclass = new HashMap();
      for(int i=0; i<mappings.length; i++) {
        mTag2Annclass.put(mappings[i][TAGNAME_COL],mappings[i][CLASSNAME_COL]);
      }
    }
  
    // ========================================================================
    // EElementVisitor implementation - nothing to see here
  
    public void visit(EClass clazz)       { visit((EAnnotatedElement)clazz); }
    public void visit(EConstructor ctor)  { visit((EAnnotatedElement)ctor); }
    public void visit(EField field)       { visit((EAnnotatedElement)field); }
    public void visit(EMethod method)     { visit((EAnnotatedElement)method); }
    public void visit(EParameter param)   { visit((EAnnotatedElement)param); }
  
    public void visit(EAnnotation ann)          {}
    public void visit(EComment param)           {}
  
    // ========================================================================
    // Protected methods
  
    protected void visit(EAnnotatedElement element) {
      EComment comment = element.getEditableComment();
      if (comment != null) {
        String[] commentsAndTags = getCommentsAndTags(comment);
        if (commentsAndTags == null || commentsAndTags.length == 0) return;
        processComment(element,commentsAndTags[0]);
        for(int i=1; i<commentsAndTags.length; i++) {
          processJavadocTag(element,commentsAndTags[i]);
        }
      }
    }
  
    /**
     * Returns an array of strings containing the javadoc comments and raw
     * javadoc tag contents from the given elements.  Note that comment tokens
     * (leading '/*', '*', and '*[slash]' are stripped from the comments,
     * and they are trimmed up a bit.  The tag sections contain the javadoc
     * tag, including the leading '@'.  Array index 0 contains the comments,
     * and each subsequent index holds the javadoc tag contents, if any.
     *
     */
    protected String[] getCommentsAndTags(JComment comment) {
      String text = comment.getText().trim();
      if (!text.startsWith("/*")) {
        return new String[] {comment.getText()}; //not sure what to do with this
      }
      // looks like we have real work to do.  first set up a reader
      BufferedReader in = new BufferedReader(new StringReader(text));
      // now create a list to store the string we will return
      List commentsAndTags = new ArrayList();
      // get the comment string
      StringWriter commentText = new StringWriter();
      String nextLine = eatDocChunk(in,commentText);
      commentsAndTags.add(commentText.toString());
      // now process the tags, if any
      while(nextLine != null) {
        StringWriter tagText = new StringWriter();
        tagText.write(nextLine);
        tagText.write('\n');
        nextLine = eatDocChunk(in,tagText);
        commentsAndTags.add(tagText.toString());
      }
      String[] out = new String[commentsAndTags.size()];
      commentsAndTags.toArray(out);
      return out;
    }
  
    protected void processComment(EAnnotatedElement commentedElement,
                                  String trimmedComment) {
      commentedElement.getEditableComment().setText(trimmedComment);
    }
  
    private String mNameValueSeparators;
    private static final String DEFAULT_NAME_VALUE_SEPS = "\n\r";
  
    protected void processJavadocTag(EAnnotatedElement element, String tagtext) {
      if (mTag2Annclass != null) {
        StringTokenizer st = new StringTokenizer(tagtext,mNameValueSeparators);
        //get the tagname.  it'd better start with '@'
        String tagName = st.nextToken().trim();
        String tagContents = null;//FIXME
        if (!tagName.startsWith("@")) {
          throw new IllegalArgumentException("invalid tagtext '"+tagtext+"'");
        }
        tagName = tagName.substring(1).trim();
        element.addAnnotationForTag(tagName,tagContents);
      }
    }
  
  /*
        ea.setAnnotationObject(ann);
        // now populate ann from name-value pairs FIXME
        while (st.hasMoreTokens()) {
          String pair = st.nextToken();
          int eq = pair.indexOf('=');
          if (eq <= 0) continue; // if not there or is first character
          String name = pair.substring(0, eq).trim();
          String value = (eq < pair.length() - 1) ? pair.substring(eq + 1) : null;
          setValue(ann,name,value);
        }
      }
  
    }
  
    private void setValue(Object dest, String name, String value) {
     //FIXME Method
    }
  
    */
  
  
    // ========================================================================
    // Private methods
  
    /**
     * <p>Writes the trimmed contents of the comment text provided by the
     * BufferedReader in the given BufferedWriter, until either a javadoc
     * tag is encountered (line starting with '@') or the end of the comment
     * section is encountered.</p>
     *
     * @return The next line read off of the input buffer which starts
     * a new section (starting with '@'), or null if the end of the comment
     * was reached.
     */
    private String eatDocChunk(BufferedReader in, Writer out) {
      String line;
      boolean firstLineYet = false;
      int breaksToAdd = 0;
      try {
        while((line = in.readLine()) != null) {
          line = getTrimmedLine(line);
          if (line.startsWith("@")) {  // are we starting a javadoc tag?
            return line;
          } else {
            if (firstLineYet) breaksToAdd++;
            if (line.length() > 0) {
              firstLineYet = true;
              for(int i=0; i<breaksToAdd; i++) out.write('\n');
              breaksToAdd = 0;
              out.write(line);
            }
          }
        }
      } catch(IOException veryUnexpected) {
        veryUnexpected.printStackTrace();
      }
      return null;
    }
  
    private String getTrimmedLine(String rawLine) {
      rawLine = rawLine.trim();
      int offset = rawLine.indexOf('*');
      if (offset == -1) return rawLine;
      do {
        offset++;
      }  while(offset < rawLine.length() && rawLine.charAt(offset) == '*');
      if (offset >= rawLine.length()) return "";
      return rawLine.substring(offset+1).trim();
    }
  
  
    // salvaged from BaseJAnnotation
    /**
     * Taking the stringValue of this annotation as a
     * line-break-sepearated list of name-value pairs, creates a new
     * JAnnotation for each pair and adds it to the given collection.
  
    protected void getLocalAnnotations(Collection out) {
      StringTokenizer st = new StringTokenizer(mValue, NAME_VALUE_SEPS);
      while (st.hasMoreTokens()) {
        String pair = st.nextToken();
        int eq = pair.indexOf('=');
        if (eq <= 0) continue; // if not there or is first character
        String name = pair.substring(0, eq).trim();
        String value = (eq < pair.length() - 1) ? pair.substring(eq + 1) : null;
        JAnnotation ann = new BaseJAnnotation(this, name, value);
        out.add(ann);
      }
    }
     */
  }
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/visitor/CompositeElementVisitor.java
  
  Index: CompositeElementVisitor.java
  ===================================================================
  /*   Copyright 2004 The Apache Software Foundation
   *
   *   Licensed 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.xmlbeans.impl.jam.visitor;
  
  import org.apache.xmlbeans.impl.jam.editable.*;
  
  /**
   * @author Patrick Calahan <pc...@bea.com>
   */
  public class CompositeElementVisitor extends ElementVisitor {
  
    // ========================================================================
    // Variables
  
    private ElementVisitor[] mVisitors;
  
    // ========================================================================
    // Constructors
  
    public CompositeElementVisitor(ElementVisitor[] visitors) {
      if (visitors == null) throw new IllegalArgumentException("null visitors");
      mVisitors = visitors;
    }
  
    // ========================================================================
    // ElementVisitor implementation
  
    public void visit(EPackage pkg) {
      for(int i=0; i<mVisitors.length; i++) mVisitors[i].visit(pkg);
    }
  
    public void visit(EClass clazz) {
      for(int i=0; i<mVisitors.length; i++) mVisitors[i].visit(clazz);
    }
  
    public void visit(EConstructor ctor) {
      for(int i=0; i<mVisitors.length; i++) mVisitors[i].visit(ctor);
    }
  
    public void visit(EField field) {
      for(int i=0; i<mVisitors.length; i++) mVisitors[i].visit(field);
    }
  
    public void visit(EMethod method) {
      for(int i=0; i<mVisitors.length; i++) mVisitors[i].visit(method);
    }
  
    public void visit(EParameter param) {
      for(int i=0; i<mVisitors.length; i++) mVisitors[i].visit(param);
    }
  
    public void visit(EAnnotation ann) {
      for(int i=0; i<mVisitors.length; i++) mVisitors[i].visit(ann);
    }
  
    public void visit(EComment comment) {
      for(int i=0; i<mVisitors.length; i++) mVisitors[i].visit(comment);
    }
  
  
  
  }
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/visitor/ElementVisitor.java
  
  Index: ElementVisitor.java
  ===================================================================
  /*   Copyright 2004 The Apache Software Foundation
   *
   *   Licensed 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.xmlbeans.impl.jam.visitor;
  
  import org.apache.xmlbeans.impl.jam.editable.*;
  
  /**
   * <p>To be extended by classes which wish to traverse a set of JClasses.</p>
   *
   * @author Patrick Calahan <pc...@bea.com>
   */
  public abstract class ElementVisitor {
  
    public void visit(EPackage pkg) {}
  
    public void visit(EClass clazz) {}
  
    public void visit(EConstructor ctor) {}
  
    public void visit(EField field) {}
  
    public void visit(EMethod method) {}
  
    public void visit(EParameter param) {}
  
    public void visit(EAnnotation ann) {}
  
    public void visit(EComment comment) {}
  
  }
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/visitor/PropertyInitializer.java
  
  Index: PropertyInitializer.java
  ===================================================================
  /*   Copyright 2004 The Apache Software Foundation
   *
   *   Licensed 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.xmlbeans.impl.jam.visitor;
  
  /**
   * @author Patrick Calahan <pc...@bea.com>
   */
  public class PropertyInitializer extends ElementVisitor {
  
    
  }
  
  
  
  1.1                  xml-xmlbeans/v2/jam2/src/org/apache/xmlbeans/impl/jam/visitor/package.html
  
  Index: package.html
  ===================================================================
  <body>
    <p>
      Provides a framework for traversing a JElement tree and possibly
      modifying its contents.  Also includes ElementVisitor implementations
      which encapsulate standard JClass initialization behaviors, such as
      comment parsing and JProperty identification.
    </p>
  
    <p>
      Customized ElementVistors can be written to modify or extend such
      behaviors.  See JamServiceParams for details on how to plug in
      such extensions.
    </p>
  </body>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xmlbeans-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xmlbeans-cvs-help@xml.apache.org