You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by pc...@apache.org on 2004/03/02 23:03:04 UTC

cvs commit: xml-xmlbeans/v2/test/src/jamtest/tests/org/apache/xmlbeans/test/jam GoldenInvokable.java JamTestBase.java GoldenMethod.java

pcal        2004/03/02 14:03:04

  Modified:    v2       build.xml
               v2/src/jam java.g
               v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl
                        EClassImpl.java EElementImpl.java
                        EInvokableImpl.java EMemberImpl.java
                        EParameterImpl.java
               v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/ref
                        UnqualifiedJClassRef.java
               v2/test/src/jamtest build.xml
               v2/test/src/jamtest/tests/org/apache/xmlbeans/test/jam
                        JamTestBase.java
  Added:       v2/test/src/jamtest/tests/org/apache/xmlbeans/test/jam
                        GoldenInvokable.java
  Removed:     v2/test/src/jamtest/tests/org/apache/xmlbeans/test/jam
                        GoldenMethod.java
  Log:
  jam: fix equals on eclass
  
  Revision  Changes    Path
  1.44      +1 -0      xml-xmlbeans/v2/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/build.xml,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- build.xml	2 Mar 2004 16:50:54 -0000	1.43
  +++ build.xml	2 Mar 2004 22:03:04 -0000	1.44
  @@ -790,6 +790,7 @@
   
     <target name='jam.clean'>
       <delete dir='build/classes/jam'/>
  +    <delete dir='build/generatedsrc'/>
     </target>
   
     <target name="jam.parser.check">
  
  
  
  1.6       +15 -5     xml-xmlbeans/v2/src/jam/java.g
  
  Index: java.g
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/jam/java.g,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- java.g	2 Mar 2004 04:26:17 -0000	1.5
  +++ java.g	2 Mar 2004 22:03:04 -0000	1.6
  @@ -164,7 +164,7 @@
     // ========================================================================
     // Constants
   
  -  private static final boolean VERBOSE = true;
  +  private static final boolean VERBOSE = false;
   
     // ========================================================================
     // Variables
  @@ -346,7 +346,10 @@
   
   
   constructor[EClass clazz, int modifiers, String name]
  -  : (LPAREN (parameterList[mParamList])? RPAREN (throwsClause[mExceptionList])? statement_block)
  +{
  +  List params = new ArrayList(); //FIXME try reuse this please
  +}
  +  : (LPAREN (parameterList[params])? RPAREN (throwsClause[mExceptionList])? statement_block)
   {
     if (!name.equals(clazz.getSimpleName())) {
       throw new IllegalArgumentException("FIXME not a constructor '"+
  @@ -354,7 +357,8 @@
     }
     EConstructorImpl constr = (EConstructorImpl)clazz.addNewConstructor();
     constr.setModifiers(modifiers);
  -  constr.setParameters(mParamList);
  +  System.out.println("============== Setting params "+params.size());
  +  constr.setParameters(params);
     constr.setUnqualifiedThrows(mExceptionList);
     applyJavadocs(constr);
   
  @@ -379,12 +383,15 @@
   	  )
   	  |
   	  (
  -      (LPAREN (parameterList[mParamList])? RPAREN tweener (throwsClause[mExceptionList])? (statement_block | SEMI)) {
  +	  { List params = new ArrayList();  //FIXME can we reuse this please?
  +	  }
  +      (LPAREN (parameterList[params])? RPAREN tweener (throwsClause[mExceptionList])? (statement_block | SEMI)) {
           if (VERBOSE) System.out.println("creating method "+name);
           EMethodImpl method = (EMethodImpl)clazz.addNewMethod();
           method.setSimpleName(name);
           method.setUnqualifiedReturnType(type);
           method.setModifiers(modifiers);
  +        System.out.println("============== Setting params "+params.size());
           method.setParameters(mParamList);
           method.setUnqualifiedThrows(mExceptionList);
           applyJavadocs(method);
  @@ -418,7 +425,7 @@
   
   
   // A list of formal parameters
  -parameterList[Collection list] { list.clear(); }
  +parameterList[Collection list] {}
   	:	(parameter[list] (COMMA parameter[list])*)
   ;
   
  @@ -429,10 +436,13 @@
     String name;
   }
   : tweener ("final")? t:IDENT tweener n:IDENT tweener {
  +
     EParameterImpl param = new EParameterImpl();
     param.setUnqualifiedType(t.getText());
     param.setSimpleName(n.getText());
     list.add(param);
  +  System.out.println("\n\n\nadded to list!! "+list.size()+"\n\n\n");
  +
   }
   ;
   
  
  
  
  1.6       +2 -2      xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EClassImpl.java
  
  Index: EClassImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EClassImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- EClassImpl.java	2 Mar 2004 04:26:18 -0000	1.5
  +++ EClassImpl.java	2 Mar 2004 22:03:04 -0000	1.6
  @@ -144,7 +144,7 @@
   
     public boolean isAssignableFrom(JClass arg) {
       if (isPrimitive() || arg.isPrimitive()) {
  -      return this.equals(arg);
  +      return getQualifiedName().equals(arg.getQualifiedName());
       }
       return isAssignableFromRecursively(arg);
     }
  @@ -381,7 +381,7 @@
     // Private methods
   
     private boolean isAssignableFromRecursively(JClass arg) {
  -    if (this.equals(arg)) return true;
  +    if (this.getQualifiedName().equals(arg.getQualifiedName())) return true;
       // check all of arg's implemented interfaces, recursively
       JClass[] interfaces = arg.getInterfaces();
       if (interfaces != null) {
  
  
  
  1.6       +16 -0     xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EElementImpl.java
  
  Index: EElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EElementImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- EElementImpl.java	2 Mar 2004 04:26:18 -0000	1.5
  +++ EElementImpl.java	2 Mar 2004 22:03:04 -0000	1.6
  @@ -138,5 +138,21 @@
       return "unnamed_"+count;
     }
   
  +  public boolean equals(Object o) {
  +    if (this == o) return true;
  +    if (!(o instanceof EElementImpl)) return false;
  +    final EElementImpl eElement = (EElementImpl) o;
  +    String qn = getQualifiedName();
  +    if (qn == null) return false;
  +    String oqn = eElement.getQualifiedName();
  +    if (oqn == null) return false;
  +    return qn.equals(oqn);
  +  }
  +
  +  public int hashCode() {
  +    String qn = getQualifiedName();
  +    return (qn == null) ? 0 : qn.hashCode();
  +  }
  +
   
   }
  
  
  
  1.4       +1 -0      xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EInvokableImpl.java
  
  Index: EInvokableImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EInvokableImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EInvokableImpl.java	2 Mar 2004 20:21:53 -0000	1.3
  +++ EInvokableImpl.java	2 Mar 2004 22:03:04 -0000	1.4
  @@ -153,6 +153,7 @@
      * EParameterImpls.
      */
     public void setParameters(List paramList) {
  +    System.out.println("\n\n\n\nSET PARAMETER LIST "+paramList.size());
       if (paramList == null || paramList.size() == 0) {
         mParameters = null;
         return;
  
  
  
  1.4       +1 -0      xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EMemberImpl.java
  
  Index: EMemberImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EMemberImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EMemberImpl.java	25 Feb 2004 18:56:49 -0000	1.3
  +++ EMemberImpl.java	2 Mar 2004 22:03:04 -0000	1.4
  @@ -95,6 +95,7 @@
     // Package methods
   
     /*package*/ void setContainingClass(EClassImpl c) {
  +    if (c == null) throw new IllegalArgumentException("null class");
       mContainingClass = c;
     }
   
  
  
  
  1.4       +2 -0      xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EParameterImpl.java
  
  Index: EParameterImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/EParameterImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EParameterImpl.java	25 Feb 2004 18:56:49 -0000	1.3
  +++ EParameterImpl.java	2 Mar 2004 22:03:04 -0000	1.4
  @@ -37,6 +37,7 @@
     // ========================================================================
     // Constructors
   
  +  // be careful with this one, should really only be used by the parser
     public EParameterImpl() {}
   
     public EParameterImpl(String simpleName,
  @@ -85,6 +86,7 @@
     // Package methods
   
     /*package*/ void setContainingMember(EMemberImpl member) {
  +    System.out.println("\n\n\n\nSSET CONTAINING MEMBER "+member);
       super.setContainingClass((EClassImpl)member.getContainingClass());
     }
   }
  
  
  
  1.3       +5 -3      xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/ref/UnqualifiedJClassRef.java
  
  Index: UnqualifiedJClassRef.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/src/jam/org/apache/xmlbeans/impl/jam/editable/impl/ref/UnqualifiedJClassRef.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- UnqualifiedJClassRef.java	2 Mar 2004 04:26:18 -0000	1.2
  +++ UnqualifiedJClassRef.java	2 Mar 2004 22:03:04 -0000	1.3
  @@ -48,12 +48,14 @@
     // ========================================================================
     // Constructors
   
  -  private UnqualifiedJClassRef(String unqualifiedClassname,
  +  private UnqualifiedJClassRef(String ucname,
                                  JClassRefContext ctx)
     {
  +    if (ctx == null) throw new IllegalArgumentException("null ctx");
  +    if (ucname == null) throw new IllegalArgumentException("null ucname");
       mContext = ctx;
  -    mUnqualifiedClassname = unqualifiedClassname;
  -    if (VERBOSE) System.out.println("[UnqualifiedJClassRef] "+unqualifiedClassname);
  +    mUnqualifiedClassname = ucname;
  +    if (VERBOSE) System.out.println("[UnqualifiedJClassRef] "+ucname);
     }
   
     // ========================================================================
  
  
  
  1.7       +5 -6      xml-xmlbeans/v2/test/src/jamtest/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/test/src/jamtest/build.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- build.xml	2 Mar 2004 06:32:13 -0000	1.6
  +++ build.xml	2 Mar 2004 22:03:04 -0000	1.7
  @@ -10,10 +10,8 @@
   
     <path id='classpath' >
   
  - <!-- prefer build/classes to jar just for develpment convenience -->
  -    <pathelement path='../../../build/classes' />
  -
  -    <pathelement path='../../../build/lib/xbean.jar' />
  + <!-- use build/classes instead of xbean.jar for develpment convenience -->
  +    <pathelement path='../../../build/classes/jam' />
       <pathelement location='${build-dir}' />
       <pathelement location='${junit-jar}'/>
       <pathelement path='${java.class.path}' />
  @@ -58,9 +56,10 @@
           <pathelement path='${classpath-value}'/> <!--ref no workie-->
         </classpath>
         <formatter type='plain' usefile='false'/>
  -<!--
  +
  +      <!--
         <test name='org.apache.xmlbeans.test.jam.ParserJamTest'/>
  --->
  +      -->
         <test name='org.apache.xmlbeans.test.jam.SourcesJamTest'/>
         <test name='org.apache.xmlbeans.test.jam.ClassesJamTest'/>
   
  
  
  
  1.7       +2 -2      xml-xmlbeans/v2/test/src/jamtest/tests/org/apache/xmlbeans/test/jam/JamTestBase.java
  
  Index: JamTestBase.java
  ===================================================================
  RCS file: /home/cvs/xml-xmlbeans/v2/test/src/jamtest/tests/org/apache/xmlbeans/test/jam/JamTestBase.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JamTestBase.java	2 Mar 2004 20:21:53 -0000	1.6
  +++ JamTestBase.java	2 Mar 2004 22:03:04 -0000	1.7
  @@ -212,8 +212,8 @@
      */
     public void testFooImplMethods() {
       JClass fooImpl = resolved(mLoader.loadClass(DUMMY+".FooImpl"));
  -    GoldenMethod[] methods = GoldenMethod.createArray(FOOIMPL_METHODS);
  -    GoldenMethod.doComparison(fooImpl.getDeclaredMethods(),
  +    GoldenInvokable[] methods = GoldenInvokable.createArray(FOOIMPL_METHODS);
  +    GoldenInvokable.doComparison(fooImpl.getDeclaredMethods(),
                                 methods,isParameterNamesKnown(),this);
     }
   
  
  
  
  1.1                  xml-xmlbeans/v2/test/src/jamtest/tests/org/apache/xmlbeans/test/jam/GoldenInvokable.java
  
  Index: GoldenInvokable.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.test.jam;
  
  import org.apache.xmlbeans.impl.jam.*;
  
  import java.util.StringTokenizer;
  
  import junit.framework.Assert;
  
  /**
   * Independent test structure representing a method.  Can be compared
   * to a JMethod.
   *
   * @author Patrick Calahan <pc...@bea.com>
   */
  public class GoldenInvokable {
  
    // ========================================================================
    // Factory methods/static utils
  
    public static GoldenInvokable[] createArray(String[][] params) {
      GoldenInvokable[] out = new GoldenInvokable[params.length];
      for(int i=0; i<out.length; i++) {
        out[i] = new GoldenInvokable(params[i]);
      }
      return out;
    }
  
    public static void doComparison(JMethod[] result,
                                    GoldenInvokable[] expected,
                                    boolean compareParamNames,
                                    Assert a) {
      a.assertTrue("different number of methods ["+
                   result.length+","+expected.length+"]",
                   result.length == expected.length);
      for(int i=0; i<result.length; i++) {
        expected[i].compare(result[i],compareParamNames,a);
      }
    }
  
    public static void doComparison(JConstructor[] result,
                                    GoldenInvokable[] expected,
                                    boolean compareParamNames,
                                    Assert a) {
      a.assertTrue("different number of methods ["+
                   result.length+","+expected.length+"]",
                   result.length == expected.length);
      for(int i=0; i<result.length; i++) {
        expected[i].compare(result[i],compareParamNames,a);
      }
    }
  
    // ========================================================================
    // Variables
  
    private int mModifers;
    private String mReturnType;
    private String mName;
    private String[] mParamTypes;
    private String[] mParamNames;
    private String[] mExceptions;
  
  
    // ========================================================================
    // Constructors
  
    public GoldenInvokable(String[] modsTypeNameParams) {
      this(modsTypeNameParams[0],
           modsTypeNameParams[1],
           modsTypeNameParams[2],
           modsTypeNameParams[3],
           modsTypeNameParams[4]);
    }
  
    /**
     *
     * @param modiferString
     * @param name
     * @param paramString
     */
    public GoldenInvokable(String modiferString,
                        String type,
                        String name,
                        String paramString,
                        String exceptionList) {
      mModifers = ModifierHelper.parseModifiers(modiferString);
      mReturnType = type;
      mName = name;
      //parse parameter string
      if (paramString == null) {
        mParamTypes = new String[0];
        mParamNames = new String[0];
      } else {
        StringTokenizer st = new StringTokenizer(paramString,",");
        mParamTypes = new String[st.countTokens()];
        mParamNames = new String[st.countTokens()];
        int i = 0;
        while(st.hasMoreTokens()) {
          String token = st.nextToken().trim();
          int space = token.indexOf(" ");
          mParamNames[i] = token.substring(space).trim();
          mParamTypes[i] = token.substring(0,space).trim();
          i++;
        }
      }
      // parse the exception list
      if (exceptionList == null) {
        mExceptions = new String[0];
      } else {
        StringTokenizer st = new StringTokenizer(exceptionList,",");
        mExceptions = new String[st.countTokens()];
        int i = 0;
        while(st.hasMoreTokens()) {
          mExceptions[i] = st.nextToken().trim();
          i++;
        }
      }
    }
  
    public void compare(JMethod method, boolean compareParamNames, Assert a) {
      compare((JInvokable)method,compareParamNames,a);
      a.assertTrue("return types are different ["+
                   method.getReturnType().getQualifiedName()+","+
                   mReturnType+"]",
                   method.getReturnType().getQualifiedName().equals(mReturnType));
    }
  
  
    public void compare(JInvokable invk, boolean compareParamNames, Assert a) {
      a.assertTrue("invokable names are different",
                   invk.getSimpleName().equals(mName));
      a.assertTrue("modifiers are different on "+invk.getSimpleName()+
                   "["+invk.getModifiers()+","+mModifers+"]",
                   invk.getModifiers() == mModifers);
      {
        JParameter[] params = invk.getParameters();
        a.assertTrue("parameter lists are of different lengths",
                     params.length == mParamTypes.length);
        for(int i=0; i<params.length; i++) {
          a.assertTrue("parameter type is different on "+invk.getSimpleName()+
                       "["+params[i].getType().getQualifiedName()+","+mParamTypes[i]+"]",
                       params[i].getType().getQualifiedName().equals(mParamTypes[i]));
          if (compareParamNames) {
            a.assertTrue("parameter names are different on "+invk.getSimpleName(),
                         params[i].getSimpleName().equals(mParamNames[i]));
          }
        }
      }
      {
        JClass[] exceptions = invk.getExceptionTypes();
        for(int i=0; i<exceptions.length; i++) {
          a.assertTrue("exceptions type is different on "+invk.getSimpleName()+
                       "["+exceptions[i].getQualifiedName()+","+mExceptions[i]+"]",
                       exceptions[i].getQualifiedName().equals(mExceptions[i]));
        }
      }
    }
  
  }
  
  
  

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