Diff for /FM2SQL/Attic/Convert.java between versions 1.3 and 1.11

version 1.3, 2004/01/08 10:31:18 version 1.11, 2004/01/15 13:32:09
Line 36  class Convert Line 36  class Convert
     //System.out.println(new String(b,"UTF-8"));      //System.out.println(new String(b,"UTF-8"));
     } catch (UnsupportedEncodingException e)      } catch (UnsupportedEncodingException e)
     {      {
       // TODO Auto-generated catch block  
       e.printStackTrace();        e.printStackTrace();
     }*/      }*/
     FileOutputStream file = null;      FileOutputStream file = null;
Line 51  class Convert Line 50  class Convert
       file = new FileOutputStream("./log.txt");        file = new FileOutputStream("./log.txt");
     } catch (FileNotFoundException e1)      } catch (FileNotFoundException e1)
     {      {
       // TODO Auto-generated catch block  
       e1.printStackTrace();        e1.printStackTrace();
     }       } 
    PrintStream stream= new PrintStream(file);     PrintStream stream= new PrintStream(file);
Line 61  class Convert Line 59  class Convert
    System.out.println("Finished!");     System.out.println("Finished!");
     //convert("jdbc:fmpro:http://141.14.237.74:8050","jdbc:postgresql://erebos/test",null,null);      //convert("jdbc:fmpro:http://141.14.237.74:8050","jdbc:postgresql://erebos/test",null,null);
   }    }
   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,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 139  class Convert Line 137  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 307  class Convert Line 305  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 377  class Convert Line 375  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 622  class Convert Line 620  class Convert
     }      }
     else if (alterMe.charAt(j) == '.')      else if (alterMe.charAt(j) == '.')
     {      {
       System.out.println("dube "+alterMe);  
       if(j==length-1)        if(j==length-1)
       {        {
         alterMe.delete(j, j);           alterMe.delete(j, j); 
         length--;          length--;
         continue;  
       }        }
               else
               alterMe.setCharAt(j,'_');
     }      }
   
     ++j;      ++j;
   }    }
     return alterMe.toString();      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;
       }
       return alterMe.toString();
     }
   public static String convertUml(String newName)    public static String convertUml(String newName)
    {     {
      StringBuffer alterMe = new StringBuffer(newName.trim());       StringBuffer alterMe = new StringBuffer(newName.trim());
Line 749  class Convert Line 777  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();
               Vector ids     = new Vector();
         int mode = -1;
             
       try        try
       {        {
Line 771  class Convert Line 803  class Convert
           layouts = new Vector();            layouts = new Vector();
           selects = new Vector();            selects = new Vector();
           creates = new Vector();            creates = new Vector();
             ids     = new Vector();
          // parse dataBase           // parse dataBase
           Node node = root.find("convert/source/database/url", new int[] { 1, 1, i, 1 });            Node node = root.find("convert/source/database/url", new int[] { 1, 1, i, 1 });
           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 789  class Convert Line 823  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 813  class Convert Line 859  class Convert
             // if(node6==null) throw new Error("parse error create tag missing");              // if(node6==null) throw new Error("parse error create tag missing");
             String name = (String)node4.attributes.get("name");              String name = (String)node4.attributes.get("name");
             String layout = (String)node4.attributes.get("layout");              String layout = (String)node4.attributes.get("layout");
               String id = (String)node4.attributes.get("id");
               System.out.println("id was "+id);
             if(name==null) throw new Error("parse error required table tag attribute name missing");              if(name==null) throw new Error("parse error required table tag attribute name missing");
             if(layout==null) layout ="";              if(layout==null) layout ="";
               if(id==null)  id = "";
             if(name.equals("")) throw new Error("parse error table tag attribute must not be empty");              if(name.equals("")) throw new Error("parse error table tag attribute must not be empty");
             tables.add(name);              tables.add(name);
             layouts.add(layout);              layouts.add(layout);
               ids.add(id);
             String query = (node5==null) ? "":node5.getCharacters();               String query = (node5==null) ? "":node5.getCharacters(); 
             if(query.equals("")) System.err.println("Warning empty select tag or  select tag missing !!");              if(query.equals("")) System.err.println("Warning empty select tag or  select tag missing !!");
             query = (query.equals("")) ? "select * from "+database.getQC()+name+database.getQC():query;              query = (query.equals("")) ? "select * from "+database.getQC()+name+database.getQC():query;
Line 827  class Convert Line 877  class Convert
               creates.add("");                creates.add("");
                           
           }            }
           databases.add(new DataBase(database, tables, layouts, selects,creates));            databases.add(new DataBase(database, tables, layouts, selects,creates,ids,mode));
         }          }
         DBBean database = new DBBean();          DBBean database = new DBBean();
         // parse dataBase          // parse dataBase
Line 844  class Convert Line 894  class Convert
        for (Iterator iter = databases.iterator(); iter.hasNext();)         for (Iterator iter = databases.iterator(); iter.hasNext();)
       {        {
         DataBase db = (DataBase) iter.next();          DataBase db = (DataBase) iter.next();
         convertBatch(db.bean,database,db.tables,db.layouts,db.selects,db.creates);          convertBatch(db.bean,database,db.tables,db.layouts,db.selects,db.creates,mode);
                   
       }        }
         // printContents(node3);          // printContents(node3);
Line 964  class Convert Line 1014  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();
          Vector ids     = 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 986  class Convert Line 1040  class Convert
            layouts = new Vector();             layouts = new Vector();
            selects = new Vector();             selects = new Vector();
            creates = new Vector();             creates = new Vector();
              ids     = new Vector();
           // parse dataBase            // parse dataBase
            Node node = root.find("convert/source/database/url", new int[] { 1, 1, i, 1 });             Node node = root.find("convert/source/database/url", new int[] { 1, 1, i, 1 });
            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 1004  class Convert Line 1060  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 1028  class Convert Line 1098  class Convert
              // if(node6==null) throw new Error("parse error create tag missing");               // if(node6==null) throw new Error("parse error create tag missing");
              String name = (String)node4.attributes.get("name");               String name = (String)node4.attributes.get("name");
              String layout = (String)node4.attributes.get("layout");               String layout = (String)node4.attributes.get("layout");
                String id = (String)node4.attributes.get("id");
                System.out.println("id was "+id);
            
              if(name==null) throw new Error("parse error required table tag attribute name missing");               if(name==null) throw new Error("parse error required table tag attribute name missing");
              if(layout==null) layout ="";               if(layout==null) layout ="";
                if(id == null)  id="";
              if(name.equals("")) throw new Error("parse error table tag attribute must not be empty");               if(name.equals("")) throw new Error("parse error table tag attribute must not be empty");
              tables.add(name);               tables.add(name);
              layouts.add(layout);               layouts.add(layout);
                ids.add(id);
              String query = (node5==null) ? "":node5.getCharacters();                String query = (node5==null) ? "":node5.getCharacters(); 
              if(query.equals("")) System.err.println("Warning empty select tag or  select tag missing !!");               if(query.equals("")) System.err.println("Warning empty select tag or  select tag missing !!");
              query = (query.equals("")) ? "select * from "+database.getQC()+name+database.getQC():query;               query = (query.equals("")) ? "select * from "+database.getQC()+name+database.getQC():query;
Line 1042  class Convert Line 1117  class Convert
                creates.add("");                 creates.add("");
                           
            }             }
            databases.add(new DataBase(database, tables, layouts, selects,creates));             databases.add(new DataBase(database, tables, layouts, selects,creates,ids,mode));
          }           }
          DBBean database = new DBBean();           DBBean database = new DBBean();
          // parse dataBase           // parse dataBase
Line 1055  class Convert Line 1130  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,null,0));
          //databases.add(database);           //databases.add(database);
     /*    for (Iterator iter = databases.iterator(); iter.hasNext();)      /*    for (Iterator iter = databases.iterator(); iter.hasNext();)
        {         {
Line 1135  public static class DataBase Line 1210  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)    Vector ids;
     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,Vector ids,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.ids     = ids;
       this.mode = mode;
   }    }
   public void exportToXML(BufferedWriter buffr) throws Exception    public void exportToXML(BufferedWriter buffr) throws Exception
    {     {
Line 1149  public static class DataBase Line 1232  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 1157  public static class DataBase Line 1250  public static class DataBase
        String layout=(String)layouts.get(index);         String layout=(String)layouts.get(index);
        String select=(String)selects.get(index);         String select=(String)selects.get(index);
        String create=(String)creates.get(index);         String create=(String)creates.get(index);
          String id=(String)ids.get(index);
         
        buffr.write("      <table name = \""+table+"\" layout = \""+layout+"\">\n");         buffr.write("      <table name = \""+table+"\" layout = \""+layout+"\" id = \""+id+"\" +>\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.3  
changed lines
  Added in v.1.11


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