You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by fl...@apache.org on 2003/06/21 12:28:44 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/tools/mapping/reversedb DBFKRelation.java

florianbruckner    2003/06/21 03:28:44

  Modified:    src/java/org/apache/ojb/tools/mapping/reversedb
                        DBFKRelation.java
  Log:
  implement XML generation with PrintWriter; getXML() still works and uses writeXML(java.io.PrintWriter)
  Ids are not used for XML generation.
  
  Revision  Changes    Path
  1.4       +38 -36    db-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBFKRelation.java
  
  Index: DBFKRelation.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBFKRelation.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DBFKRelation.java	28 Jan 2003 21:42:53 -0000	1.3
  +++ DBFKRelation.java	21 Jun 2003 10:28:44 -0000	1.4
  @@ -127,8 +127,6 @@
     
     private String strFieldName = null;
     
  -  private int id;
  -  
     /* The field type is only relevant, if the parent table is the pk table
      * and this is a collection, then it is set to Vector as default. If
      * this is a refenece it is of the type of the target class.
  @@ -149,14 +147,10 @@
       {
         this.strFieldName = "coll" + fkTable.getClassName ();
         this.strFieldType = "java.util.Vector";
  -      id = IdGeneratorSingleton.getId(getClass().getName(), 
  -          pkTable.getFQTableName());
       }
       else 
       {
         this.strFieldName = "a" + pkTable.getClassName ();
  -      id = IdGeneratorSingleton.getId(getClass().getName(), 
  -        fkTable.getFQTableName());
       }
     }
     
  @@ -308,56 +302,60 @@
       return org.apache.ojb.tools.mapping.reversedb.gui.DBFKRelationPropertySheet.class;
     }
     
  -  private String getXMLReference()
  +  private void writeXMLReference(java.io.PrintWriter pw)
     {
  -    String strReturn = "";
  -    strReturn += "  <reference-descriptor" + System.getProperty("line.separator");    
  -    strReturn += "    name=\"" + this.getFieldName() + "\"" + System.getProperty("line.separator");
  -    strReturn += "    class-ref=\"" + this.getPKTable().getFQClassName() + "\"" + System.getProperty("line.separator");
  -    strReturn += "    auto-retrieve=\"" + this.getAutoRetrieve() + "\"" + System.getProperty("line.separator");    
  -    strReturn += "    auto-update=\"" + this.getAutoUpdate() + "\"" + System.getProperty("line.separator");    
  -    strReturn += "    auto-delete=\"" + this.getAutoDelete() + "\">" + System.getProperty("line.separator");
  +    pw.println("  <reference-descriptor");
  +    pw.println("    name=\"" + this.getFieldName()+ "\"" );
  +    pw.println("    class-ref=\"" + this.getPKTable().getFQClassName() + "\"" );
  +    pw.println("    auto-retrieve=\"" + this.getAutoRetrieve()+ "\"" );
  +    pw.println("    auto-update=\"" + this.getAutoUpdate() + "\"");
  +    pw.println("    auto-delete=\"" + this.getAutoDelete() + "\">");
   
  -    strReturn += "<foreignkey field-id-ref=\"";
  +    pw.print("    <foreignkey field-ref=\"");
       java.util.Iterator it = this.getColumnPairIterator();
       // TODO: dtd dictate one refid
       // while (it.hasNext()) strReturn += ((DBColumn)((Object[])it.next())[1]).getId() + " ";
  -    if (it.hasNext()) strReturn += ((DBColumn)((Object[])it.next())[1]).getId() ;
  -    strReturn += "\" />" + System.getProperty("line.separator");
  +    if (it.hasNext()) pw.print(((DBColumn)((Object[])it.next())[1]).getJavaFieldName()) ;
  +    pw.println("\" />");
   
  -    strReturn += "  </reference-descriptor>" + System.getProperty("line.separator");
  -    return strReturn;
  +    pw.println("  </reference-descriptor>");
     }
     
  -  private String getXMLCollection()
  +  private void writeXMLCollection(java.io.PrintWriter pw)
     {
  -    String strReturn = "";
  -    strReturn += "  <collection-descriptor" + System.getProperty("line.separator");    
  -    strReturn += "    name=\"" + this.getFieldName() + "\"" + System.getProperty("line.separator");    
  -    strReturn += "    element-class-ref=\"" + this.getFKTable().getFQClassName() + "\"" + System.getProperty("line.separator");
  -    strReturn += "    auto-retrieve=\"" + this.getAutoRetrieve() + "\"" + System.getProperty("line.separator");    
  -    strReturn += "    auto-update=\"" + this.getAutoUpdate() + "\"" + System.getProperty("line.separator");    
  -    strReturn += "    auto-delete=\"" + this.getAutoDelete() + "\">" + System.getProperty("line.separator");    
  -    strReturn += "    <inverse-foreignkey field-id-ref=\"";
  +    pw.println("  <collection-descriptor");
  +    pw.println("    name=\"" + this.getFieldName() + "\"");
  +    pw.println("    element-class-ref=\"" + this.getFKTable().getFQClassName() + "\"" );
  +    pw.println("    auto-retrieve=\"" + this.getAutoRetrieve() + "\"" );
  +    pw.println("    auto-update=\"" + this.getAutoUpdate() + "\"" );
  +    pw.println("    auto-delete=\"" + this.getAutoDelete() + "\">");
  +    pw.print("    <inverse-foreignkey field-ref=\"");
       java.util.Iterator it = this.getColumnPairIterator();
  -    while (it.hasNext()) strReturn += ((DBColumn)((Object[])it.next())[1]).getId() + " ";
  -    strReturn += "\"    />" + System.getProperty("line.separator");
  -    strReturn += "  </collection-descriptor>" + System.getProperty("line.separator");
  -    return strReturn;
  +    while (it.hasNext()) pw.print(((DBColumn)((Object[])it.next())[1]).getJavaFieldName() + " ");
  +    pw.println("\"    />");
  +    pw.println("  </collection-descriptor>");
     }
     
     public String getXML()
     {
  +        java.io.StringWriter sw = new java.io.StringWriter();
  +        writeXML(new java.io.PrintWriter(sw));
  +        return sw.getBuffer().toString();      
  +  }
  +  
  +  public void writeXML(java.io.PrintWriter pw) 
  +  {
       if (this.isPkTableParent())
       {
  -      return getXMLCollection();
  +      writeXMLCollection(pw);
       }
       else
       {
  -      return getXMLReference();
  -    }    
  +      writeXMLReference(pw);
  +    }          
     }
     
  +  
     public void generateJava (java.io.File aFile, String strHeader, String strFooter) throws java.io.IOException, java.io.FileNotFoundException
     {
       throw new UnsupportedOperationException("Generate Java on DBFKReference is not allowed");
  @@ -408,10 +406,15 @@
       else return "";
     }
     
  +  
   }
   
   /***************************** Changelog *****************************
   // $Log$
  +// Revision 1.4  2003/06/21 10:28:44  florianbruckner
  +// implement XML generation with PrintWriter; getXML() still works and uses writeXML(java.io.PrintWriter)
  +// Ids are not used for XML generation.
  +//
   // Revision 1.3  2003/01/28 21:42:53  florianbruckner
   // update XML generation
   //