Diff for /FM2SQL/Attic/Convert.java between versions 1.1 and 1.8

version 1.1, 2003/12/05 11:46:39 version 1.8, 2004/01/15 08:01:58
Line 63  class Convert Line 63  class Convert
   }    }
   public static void  convertBatch(DBBean source,DBBean destination,Vector names,Vector layouts,Vector selects,Vector creates) throws Exception    public static void  convertBatch(DBBean source,DBBean destination,Vector names,Vector layouts,Vector selects,Vector creates) throws Exception
   {    {
    // @TODO Convert change to convert row wise  
    /*FM2SQL.ProgressDialog dialog = new  FM2SQL.ProgressDialog(FM2SQL.fmInstance);     /*FM2SQL.ProgressDialog dialog = new  FM2SQL.ProgressDialog(FM2SQL.fmInstance);
    dialog.setTitle("Conversion running ...");     dialog.setTitle("Conversion running ...");
    dialog.title.setText("Getting table data ...");     dialog.title.setText("Getting table data ...");
Line 214  class Convert Line 213  class Convert
     //dialog.title.setText("Writing table data ...");      //dialog.title.setText("Writing table data ...");
     Vector row = null;      Vector row = null;
     //for (int j = 0; j < result[0].size(); ++j)      //for (int j = 0; j < result[0].size(); ++j)
       command = new StringBuffer();
   
       command.append("INSERT  INTO ");
       command.append(beanDest.getQC());
       command.append(convertText((String) names.get(tbIndex)));
       command.append(beanDest.getQC());
       command.append(" values ( ");
   
       for (int i = 0; i < bean.getColumnNames().size() - 1; ++i)
         command.append("?,");
       command.append("?)");
       PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString());
       System.out.println(command);
     while((row=bean.getNextRow())!=null)      while((row=bean.getNextRow())!=null)
     {      {
       //Vector row = (Vector) result[0].get(j);  /*      //Vector row = (Vector) result[0].get(j);
       command = new StringBuffer();        command = new StringBuffer();
   
         command.append("INSERT  INTO ");          command.append("INSERT  INTO ");
Line 224  class Convert Line 236  class Convert
         command.append(convertText((String) names.get(tbIndex)));          command.append(convertText((String) names.get(tbIndex)));
         command.append(beanDest.getQC());          command.append(beanDest.getQC());
         command.append(" values ( ");          command.append(" values ( ");
      */
         //print rows          //print rows
      Object obj = null;       Object obj = null;
        /*
      for(int k=0;k<row.size()-1;++k)       for(int k=0;k<row.size()-1;++k)
      {       {
         obj = row.get(k);          obj = row.get(k);
Line 254  class Convert Line 268  class Convert
   // dialog.progress.setValue((int)(((double)(j+1)/(double)result[0].size())*100.0));    // dialog.progress.setValue((int)(((double)(j+1)/(double)result[0].size())*100.0));
   // System.out.println( (int)(((double)(j+1)/(double)result[0].size())*100.0)+" "+result[0].size()+" "+j);    // System.out.println( (int)(((double)(j+1)/(double)result[0].size())*100.0)+" "+result[0].size()+" "+j);
    command = null;     command = null;
   */
       for (int k = 0; k < row.size(); ++k)
       {
         obj = row.get(k);
         if (obj instanceof ArrayList)
           obj = ((List) obj).get(0);
         String str = (obj == null) ? "NULL" : obj.toString();
         if (!str.equals("NULL"))
           pstm.setString(k + 1, str);
         else
           pstm.setNull(k + 1, Types.NULL);
       }
       pstm.execute();
   
 }// to for loop      }// to for loop    
         
     }      }
Line 279  class Convert Line 307  class Convert
   
   
   
   public static void  convert(String source,String destination,Vector names,Vector layouts,Vector selects,Vector creates) throws Exception    public static void  convert(String source,String destination,Vector names,Vector layouts,Vector selects,Vector creates,int mode) throws Exception
   {    {
    FM2SQL.ProgressDialog dialog = new  FM2SQL.ProgressDialog(FM2SQL.fmInstance);     FM2SQL.ProgressDialog dialog = new  FM2SQL.ProgressDialog(FM2SQL.fmInstance);
    dialog.setTitle("Conversion running ...");     dialog.setTitle("Conversion running ...");
Line 349  class Convert Line 377  class Convert
         // System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString()));          // System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString()));
         stm = beanDest.getConnection().createStatement();          stm = beanDest.getConnection().createStatement();
         // System.exit(0);          // System.exit(0);
       if(true)         if(mode==Convert.DataBase.CONVERT_MODE) 
       {        {
         if(tables.indexOf(names.get(tbIndex))>=0)           if(tables.indexOf(names.get(tbIndex))>=0) 
         {          {
Line 424  class Convert Line 452  class Convert
     //for (int j = 0; j < result[0].size(); ++j)      //for (int j = 0; j < result[0].size(); ++j)
     int j=-1;      int j=-1;
     Vector row = null;      Vector row = null;
       command = new StringBuffer();
   
       command.append("INSERT  INTO ");
       command.append(beanDest.getQC());
       command.append(convertText((String) names.get(tbIndex)));
       command.append(beanDest.getQC());
       command.append(" values ( ");
       
       for(int i=0;i<bean.getColumnNames().size()-1;++i) command.append("?,");
       command.append("?)");
       PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString());
       System.out.println(command);
     int rowCount= bean.getRowCount(query);      int rowCount= bean.getRowCount(query);
     while((row=bean.getNextRow())!=null)      while((row=bean.getNextRow())!=null)
     {      {
       j++;        j++;
       // row = (Vector) result[0].get(j);        // row = (Vector) result[0].get(j);
       command = new StringBuffer();     /*   command = new StringBuffer();
   
         command.append("INSERT  INTO ");          command.append("INSERT  INTO ");
         command.append(beanDest.getQC());          command.append(beanDest.getQC());
         command.append(convertText((String) names.get(tbIndex)));          command.append(convertText((String) names.get(tbIndex)));
         command.append(beanDest.getQC());          command.append(beanDest.getQC());
         command.append(" values ( ");          command.append(" values ( ");
        */
         //print rows          //print rows
      Object obj = null;       Object obj = null;
      for(int k=0;k<row.size()-1;++k)      /* for(int k=0;k<row.size()-1;++k)
      {       {
         obj = row.get(k);          obj = row.get(k);
         //System.out.println("row "+obj+" "+k);          //System.out.println("row "+obj+" "+k);
        if(obj!=null&&!(obj instanceof ArrayList))         if(obj!=null&&!(obj instanceof ArrayList))
        command.append("'"+convertUml(new String(obj.toString().getBytes("UTF-8"),"UTF-8"))+"',");          command.append("'"+convertUml(obj.toString())+"',"); 
        else if(obj!=null&&   obj instanceof ArrayList)         else if(obj!=null&&   obj instanceof ArrayList)
        command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"',");          command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"',"); 
        else command.append("NULL,");         else command.append("NULL,");
      }       }
      obj = row.get(row.size() - 1);       obj = row.get(row.size() - 1);
      if (obj != null && !(obj instanceof ArrayList))       if (obj != null && !(obj instanceof ArrayList))
      command.append("'"+convertUml(new String(obj.toString().getBytes("UTF-8"),"UTF-8"))+"')");        command.append("'"+convertUml(obj.toString())+"')"); 
       else        else
       if(obj!=null&&   obj instanceof ArrayList)        if(obj!=null&&   obj instanceof ArrayList)
        command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"')");         //command.append(obj.toString()+")");         command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"')");         //command.append(obj.toString()+")");
        else command.append("NULL)");         else command.append("NULL)");
         */
       //command.append("'"+row.get(row.size()-1)+"')");         //command.append("'"+row.get(row.size()-1)+"')"); 
       //command.append(" )");        //command.append(" )");
       //  for(int k=0;k<row.size();++k)        //  for(int k=0;k<row.size();++k)
Line 462  class Convert Line 504  class Convert
       // System.out.println();        // System.out.println();
       //   System.out.println(command+" "+j+" "+row.size()+" "+  ((Vector)result2[0].get(j)).size());        //   System.out.println(command+" "+j+" "+row.size()+" "+  ((Vector)result2[0].get(j)).size());
       // System.out.println(command);        // System.out.println(command);
       stm.executeUpdate(command.toString());        for(int k=0;k<row.size();++k) 
         {
           obj = row.get(k);
           if(obj instanceof ArrayList) obj=((List)obj).get(0);
           String str =(obj==null) ? "NULL":obj.toString();
           if(!str.equals("NULL"))
           pstm.setString(k+1,str); 
           else pstm.setNull(k+1,Types.NULL);
         }
         pstm.execute();
         //stm.executeUpdate(command.toString());
       dialog.progress.setValue((int) (((double) (j + 1) / (double) rowCount) * 100.0));        dialog.progress.setValue((int) (((double) (j + 1) / (double) rowCount) * 100.0));
     // System.out.println( (int)(((double)(j+1)/(double)result[0].size())*100.0)+" "+result[0].size()+" "+j);      // System.out.println( (int)(((double)(j+1)/(double)result[0].size())*100.0)+" "+result[0].size()+" "+j);
    command = null;     command = null;
Line 493  class Convert Line 545  class Convert
     StringBuffer alterMe = new StringBuffer(newName.trim().toLowerCase());      StringBuffer alterMe = new StringBuffer(newName.trim().toLowerCase());
     int length = alterMe.length();      int length = alterMe.length();
     int j = 0;      int j = 0;
       int index=alterMe.indexOf(".fp5");
       if ( index >= 0 )
        {
          alterMe.delete(index, index + 4);
          length = length - 4;
        }
    
     while (j < length)      while (j < length)
     {       { 
       if (alterMe.charAt(j) == ' ')        if (alterMe.charAt(j) == ' ')
Line 561  class Convert Line 620  class Convert
       alterMe.setCharAt(j, '_');        alterMe.setCharAt(j, '_');
   
     }      }
       else if (alterMe.charAt(j) == '.')
       {
         if(j==length-1)
         {
           alterMe.delete(j, j); 
           length--;
         }
               else
               alterMe.setCharAt(j,'_');
       }
   
       ++j;
     }
       return alterMe.toString();
     }
     public static String convertToEntities(String newName)
     {
       StringBuffer alterMe = new StringBuffer(newName.trim());
       int length = alterMe.length();
       int j = 0;
   
       while (j < length)
       {
   
         if (alterMe.charAt(j) == '>')
         {
           alterMe.setCharAt(j, '&');
           alterMe.insert(j + 1, "gt;");
           length = length + 2;
           if (j < length - 1)
             j = j + 1;
   
         } else if (alterMe.charAt(j) == '<')
         {
           alterMe.setCharAt(j, '&');
           alterMe.insert(j + 1, "lt;");
           length = length + 2;
           if (j < length - 1)
             j = j + 1;
   
         }
     ++j;      ++j;
   }    }
     return alterMe.toString();      return alterMe.toString();
Line 680  class Convert Line 779  class Convert
     {      {
       boolean finished = false;        boolean finished = false;
       // parse string and build document tree        // parse string and build document tree
       Node  root = new Xparse().parse(sb.toString());        Xparse parser =new Xparse();
         parser.changeEntities = true;
         Node  root = parser.parse(sb.toString());
        // printContents(root);         // printContents(root);
       Vector databases= new Vector();        Vector databases= new Vector();
       Vector tables = new Vector();        Vector tables = new Vector();
       Vector layouts = new Vector();        Vector layouts = new Vector();
       Vector selects = new Vector();        Vector selects = new Vector();
       Vector creates = new Vector();        Vector creates = new Vector();
               int mode = -1;
             
       try        try
       {        {
Line 708  class Convert Line 810  class Convert
           Node node1 = root.find("convert/source/database/user", new int[] { 1, 1, i, 1, 1 });            Node node1 = root.find("convert/source/database/user", new int[] { 1, 1, i, 1, 1 });
           Node node2 = root.find("convert/source/database/password", new int[] { 1, 1, i, 1, 1 });            Node node2 = root.find("convert/source/database/password", new int[] { 1, 1, i, 1, 1 });
           Node node3 = root.find("convert/source/database", new int[] { 1, 1, i});            Node node3 = root.find("convert/source/database", new int[] { 1, 1, i});
                   Node nodeMode = root.find("convert/source/database/mode/", new int[] {1, 1, i, 1,1});
   
           if(node3== null) throw new Error("parse error database tag missing");            if(node3== null) throw new Error("parse error database tag missing");
           if(node==null) throw new Error("parse error url tag missing");            if(node==null) throw new Error("parse error url tag missing");
           if(node1==null) throw new Error("parse error user tag missing");            if(node1==null) throw new Error("parse error user tag missing");
Line 720  class Convert Line 824  class Convert
           System.out.println(node.name + " " + node.getCharacters());            System.out.println(node.name + " " + node.getCharacters());
           System.out.println(node1.name + " " + node1.getCharacters());            System.out.println(node1.name + " " + node1.getCharacters());
           System.out.println(node2.name + " " + node2.getCharacters());            System.out.println(node2.name + " " + node2.getCharacters());
                    String modeString = "";
             if (nodeMode == null)
               modeString = "convert";
             else
               modeString = nodeMode.getCharacters();
             if (modeString.equals("convert"))
               mode = DataBase.CONVERT_MODE;
             else
               if (modeString.equals("append"))
                 mode = DataBase.APPEND_MODE;
               else
                 if (modeString.equals("update"))
                   mode = DataBase.UPDATE_MODE;
        //   if(node3!=null)         //   if(node3!=null)
          // System.out.println(node3.name);           // System.out.println(node3.name);
                       
Line 758  class Convert Line 874  class Convert
               creates.add("");                creates.add("");
                           
           }            }
           databases.add(new DataBase(database, tables, layouts, selects,creates));            databases.add(new DataBase(database, tables, layouts, selects,creates,mode));
         }          }
         DBBean database = new DBBean();          DBBean database = new DBBean();
         // parse dataBase          // parse dataBase
Line 895  class Convert Line 1011  class Convert
       
        boolean finished = false;         boolean finished = false;
        // parse string and build document tree         // parse string and build document tree
        Node  root = new Xparse().parse(sb.toString());         Xparse parser =new Xparse();
          parser.changeEntities = true;
          Node  root = parser.parse(sb.toString());
         // printContents(root);          // printContents(root);
        Vector databases= new Vector();         Vector databases= new Vector();
        Vector tables = new Vector();         Vector tables = new Vector();
        Vector layouts = new Vector();         Vector layouts = new Vector();
        Vector selects = new Vector();         Vector selects = new Vector();
        Vector creates = new Vector();         Vector creates = new Vector();
               int mode = -1;
        try         try
        {         {
          Node tempNode = root.find("convert/source", new int[] { 1, 1 });           Node tempNode = root.find("convert/source", new int[] { 1, 1 });
Line 923  class Convert Line 1041  class Convert
            Node node1 = root.find("convert/source/database/user", new int[] { 1, 1, i, 1, 1 });             Node node1 = root.find("convert/source/database/user", new int[] { 1, 1, i, 1, 1 });
            Node node2 = root.find("convert/source/database/password", new int[] { 1, 1, i, 1, 1 });             Node node2 = root.find("convert/source/database/password", new int[] { 1, 1, i, 1, 1 });
            Node node3 = root.find("convert/source/database", new int[] { 1, 1, i});             Node node3 = root.find("convert/source/database", new int[] { 1, 1, i});
              Node nodeMode = root.find("convert/source/database/mode", new int[] { 1, 1, i, 1, 1 });
              
            if(node3== null) throw new Error("parse error database tag missing");             if(node3== null) throw new Error("parse error database tag missing");
            if(node==null) throw new Error("parse error url tag missing");             if(node==null) throw new Error("parse error url tag missing");
            if(node1==null) throw new Error("parse error user tag missing");             if(node1==null) throw new Error("parse error user tag missing");
Line 935  class Convert Line 1055  class Convert
            System.out.println(node.name + " " + node.getCharacters());             System.out.println(node.name + " " + node.getCharacters());
            System.out.println(node1.name + " " + node1.getCharacters());             System.out.println(node1.name + " " + node1.getCharacters());
            System.out.println(node2.name + " " + node2.getCharacters());             System.out.println(node2.name + " " + node2.getCharacters());
              String modeString = "";  
             if (nodeMode == null)
               modeString = "convert";
             else
               modeString = nodeMode.getCharacters();
             if (modeString.equals("convert"))
               mode = DataBase.CONVERT_MODE;
             else
               if (modeString.equals("append"))
                 mode = DataBase.APPEND_MODE;
               else
                 if (modeString.equals("update"))
                   mode = DataBase.UPDATE_MODE;
                
                 
         //   if(node3!=null)          //   if(node3!=null)
           // System.out.println(node3.name);            // System.out.println(node3.name);
Line 973  class Convert Line 1107  class Convert
                creates.add("");                 creates.add("");
                           
            }             }
            databases.add(new DataBase(database, tables, layouts, selects,creates));             databases.add(new DataBase(database, tables, layouts, selects,creates,mode));
          }           }
          DBBean database = new DBBean();           DBBean database = new DBBean();
          // parse dataBase           // parse dataBase
Line 986  class Convert Line 1120  class Convert
          System.out.println(url);           System.out.println(url);
          database.setURL(url.trim());           database.setURL(url.trim());
          database.setUserAndPasswd(user.trim(), password.trim());           database.setUserAndPasswd(user.trim(), password.trim());
          databases.add(new DataBase(database,null,null,null,null));           databases.add(new DataBase(database,null,null,null,null,0));
          //databases.add(database);           //databases.add(database);
     /*    for (Iterator iter = databases.iterator(); iter.hasNext();)      /*    for (Iterator iter = databases.iterator(); iter.hasNext();)
        {         {
Line 1066  public static class DataBase Line 1200  public static class DataBase
   Vector selects;    Vector selects;
   Vector layouts;    Vector layouts;
   Vector tables;    Vector tables;
   public DataBase(DBBean bean,Vector tables,Vector layouts,Vector selects,Vector creates)    final static int CONVERT_MODE = 1;
       final static int APPEND_MODE  = 2;
       final static int UPDATE_MODE  = 3;
     int mode = -1;
     
     public DataBase(DBBean bean,Vector tables,Vector layouts,Vector selects,Vector creates,int mode)
   {    {
     this.bean = bean;      this.bean = bean;
     this.tables = tables;      this.tables = tables;
     this.layouts = layouts;      this.layouts = layouts;
     this.selects = selects;      this.selects = selects;
     this.creates = creates;      this.creates = creates;
       this.mode = mode;
   }    }
   public void exportToXML(BufferedWriter buffr) throws Exception    public void exportToXML(BufferedWriter buffr) throws Exception
    {     {
Line 1080  public static class DataBase Line 1220  public static class DataBase
      buffr.write("      <url>"+bean.url+"</url>\n");       buffr.write("      <url>"+bean.url+"</url>\n");
      buffr.write("      <user>"+bean.user+"</user>\n");       buffr.write("      <user>"+bean.user+"</user>\n");
      buffr.write("      <password>"+bean.passwd+"</password>\n");       buffr.write("      <password>"+bean.passwd+"</password>\n");
        String modeString ="";
       if (mode == CONVERT_MODE)
         modeString = "convert";
       else
         if (mode == APPEND_MODE)
           modeString = "append";
         else
           if (mode == UPDATE_MODE)
             modeString = "update";
   
        buffr.write("      <mode>"+ modeString+"</mode>\n");
      int index = 0;       int index = 0;
      while(index<tables.size())       while(index<tables.size())
      {       {
Line 1090  public static class DataBase Line 1240  public static class DataBase
        String create=(String)creates.get(index);         String create=(String)creates.get(index);
         
        buffr.write("      <table name = \""+table+"\" layout = \""+layout+"\">\n");         buffr.write("      <table name = \""+table+"\" layout = \""+layout+"\">\n");
        buffr.write("         <select>"+select+"</select>\n");         buffr.write("         <select>"+ convertToEntities(select)+"</select>\n");
        if(!create.equals(""))         if(!create.equals(""))
        buffr.write("         <create>"+create+"         </create>\n");          buffr.write("         <create>"+create+"         </create>\n"); 
        buffr.write("      </table>\n");         buffr.write("      </table>\n");

Removed from v.1.1  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>