Diff for /FM2SQL/Attic/Convert.java between versions 1.64 and 1.65

version 1.64, 2004/07/28 11:21:01 version 1.65, 2004/08/02 11:39:23
Line 32  import java.sql.Types; Line 32  import java.sql.Types;
 import java.util.ArrayList;  import java.util.ArrayList;
 import java.util.Iterator;  import java.util.Iterator;
 import java.util.List;  import java.util.List;
   import java.util.Properties;
 import java.util.StringTokenizer;  import java.util.StringTokenizer;
 import java.util.TreeSet;  import java.util.TreeSet;
 import java.util.Vector;  import java.util.Vector;
Line 1262  class Convert Line 1263  class Convert
         DataBase db = (DataBase) iter.next();          DataBase db = (DataBase) iter.next();
         if (mode == DataBase.CONVERT_MODE || mode == DataBase.APPEND_MODE)          if (mode == DataBase.CONVERT_MODE || mode == DataBase.APPEND_MODE)
           convertBatch(db.bean, database, db.tables, db.layouts, db.selects, db.creates, db.ids, mode, db.delimiter);            convertBatch(db.bean, database, db.tables, db.layouts, db.selects, db.creates, db.ids, mode, db.delimiter);
         else          else if (mode == DataBase.UPDATE_MODE)
         if (mode == DataBase.UPDATE_MODE)  
             update(db.bean.url, database.url, db.tables, db.layouts, db.selects, db.creates, db.ids, mode);              update(db.bean.url, database.url, db.tables, db.layouts, db.selects, db.creates, db.ids, mode);
         else if(mode==DataBase.SYNCHRONIZE_MODE)          else if(mode==DataBase.SYNCHRONIZE_MODE)
         {          {
Line 1281  class Convert Line 1281  class Convert
     {      {
   
       e.printStackTrace();        e.printStackTrace();
   
       } finally
       {
         bean.closeAllConnections();
         beanDest.closeAllConnections();
     }      }
   }    }
   public static Vector getXMLConfig(String xmlFile)    public static Vector getXMLConfig(String xmlFile)
Line 1513  class Convert Line 1518  class Convert
       {        {
         URL url=new URL(xmlFile);          URL url=new URL(xmlFile);
         stream = url.openStream();          stream = url.openStream();
       }        } else
       else   
      // read XML Metadata from a file       // read XML Metadata from a file
        stream = new FileInputStream(xmlFile);         stream = new FileInputStream(xmlFile);
       InputStreamReader isr = new InputStreamReader(stream, "UTF-8");        InputStreamReader isr = new InputStreamReader(stream, "UTF-8");
Line 1877  class Convert Line 1881  class Convert
     }      }
   } // to method    } // to method
       
     
   /**    /**
    * synchronize method based on delete method code     * synchronize method based on delete method code
    *      * 
Line 1951  class Convert Line 1954  class Convert
             System.out.println("added layout  " + query);              System.out.println("added layout  " + query);
   
           }            }
           if(dialog!=null) {            if (dialog != null)
             {
           dialog.title.setText("Getting table data ...");            dialog.title.setText("Getting table data ...");
           dialog.table.setText(names.get(tbIndex).toString());            dialog.table.setText(names.get(tbIndex).toString());
           dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size());            dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size());
Line 2012  class Convert Line 2016  class Convert
             rowCount = vec.size();              rowCount = vec.size();
             // Deletion will work this way              // Deletion will work this way
             Vector deleted = new Vector(vec);              Vector deleted = new Vector(vec);
             Vector linesToDelete = new Vector(vecDest);              TreeSet linesToDelete = new TreeSet(vecDest);
                           
             TreeSet linesToAppend = new TreeSet(vec);              TreeSet linesToAppend = new TreeSet(vec);
             // remove all lines that are already in dest database              // remove all lines that are already in dest database
Line 2028  class Convert Line 2032  class Convert
                   tempQuery = query + " where " + tempID + ">='" + vec.firstElement() + "' and "+tempID + "<='" + vec.lastElement() + "'";// order by "+tempID;                    tempQuery = query + " where " + tempID + ">='" + vec.firstElement() + "' and "+tempID + "<='" + vec.lastElement() + "'";// order by "+tempID;
                   System.out.println("tempQuery is now "+tempQuery+" order by "+tempID);                    System.out.println("tempQuery is now "+tempQuery+" order by "+tempID);
           //  bean.makeQuery(tempQuery,vec.size());            //  bean.makeQuery(tempQuery,vec.size());
   
               ConversionProperties prop = getFieldNamesAndDestTableName(creates.get(tbIndex).toString(), query, names.get(tbIndex).toString());
               StringBuffer insCommand = createInsertCommand(prop.destTableName, prop.fieldNames);
               StringBuffer updCommand  = createUpdateCommand(prop.destTableName, prop.fieldNames, tempID);
               StringBuffer delCommand  = createDeleteCommand(destTableName,tempID);
               PreparedStatement insPst = beanDest.getConnection().prepareStatement(insCommand.toString());
               PreparedStatement updPst = beanDest.getConnection().prepareStatement(updCommand.toString());
               PreparedStatement delPSt = beanDest.getConnection().prepareStatement(delCommand.toString());
            Vector[] vectors=bean.getQueryData(tempQuery,vec.size());             Vector[] vectors=bean.getQueryData(tempQuery,vec.size());
            int idIndex = vectors[1].indexOf(idField);             int idIndex = vectors[1].indexOf(idField);
               // todo arraylist code has to be added
            for (Iterator iter = vectors[0].iterator(); iter.hasNext();)             for (Iterator iter = vectors[0].iterator(); iter.hasNext();)
           {            {
             Vector line = (Vector) iter.next();              Vector line = (Vector) iter.next();
             System.out.println("line "+linesToAppend.contains(line.get(idIndex)));                Object lineIDIndex = line.get(idIndex);
                 System.out.println("line " + linesToDelete.contains(line.get(idIndex))+" "+lineIDIndex);
                 if (linesToAppend.contains(lineIDIndex))
                 {
                   for (int l = 0; l < line.size(); ++l)
                   {
                     Object obj = line.get(l);
                     if (obj != null)
                       insPst.setString(l + 1, obj.toString());
                     else
                       insPst.setNull(l + 1, Types.NULL);
                   }
                   insPst.execute();
                 
                 }   
                 
                 else // update
                   {
                     for (int l = 0; l < line.size(); ++l)
                           {
                             Object obj = line.get(l);
                             if (obj != null)
                               updPst.setString(l + 1, obj.toString());
                             else
                               updPst.setNull(l + 1, Types.NULL);
                           }
                           updPst.setString(line.size()+1,line.get(idIndex).toString());
                           updPst.execute();
         
           }            }
               }
              
             //  delPSt.setString(1,"6");
             //  delPSt.setString(1,"7");
             //  delPSt.setString(1,"8");
             
               //delPSt.execute();
            System.out.println( );             System.out.println( );
             // System.out.println("ID LIST SIZE " + Math.round((double) myIds.size() / (double) numIntervalls) + " " + myIdsDest.size());              // System.out.println("ID LIST SIZE " + Math.round((double) myIds.size() / (double) numIntervalls) + " " + myIdsDest.size());
             /// @TODO complete delete task remove query show lines to be deleted let user choose if he wants that              /// @TODO complete delete task remove query show lines to be deleted let user choose if he wants that
             System.out.println("number of lines to  be deleted " + linesToDelete.size());              System.out.println("number of lines to  be deleted " + linesToDelete.size());
             deltaID = (int) Math.round((double) myIds.size() / (double) numIntervalls);              deltaID = (int) Math.round((double) myIds.size() / (double) numIntervalls);
             System.out.println("deltaID "+deltaID);              System.out.println("deltaID "+deltaID);
             System.exit(0);              //System.out.println();
             
               if (true)
                 return;
         
             beanDest.setConnection(destination);              beanDest.setConnection(destination);
   
Line 2073  class Convert Line 2124  class Convert
             System.out.println(command + " " + tbIndex);              System.out.println(command + " " + tbIndex);
             //int rowCount = bean.getRowCount(query);              //int rowCount = bean.getRowCount(query);
             //        int idIndex = bean.getColumnNames().indexOf(ids.get(tbIndex));              //        int idIndex = bean.getColumnNames().indexOf(ids.get(tbIndex));
             while (true)  /*            while (true)
             {              {
   
               ++j;                ++j;
Line 2092  class Convert Line 2143  class Convert
               tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'";                tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'";
             else              else
               tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'";                tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'";
   */
           } //to outer while            } //to outer while
         } // to idfield if            } // to idfield if  
       } // table loop        } // table loop
Line 2122  class Convert Line 2173  class Convert
     }      }
   } // to method    } // to method
       
   
    
   /**    /**
    * Converts input String in norman encoding to unicode      * Converts input String in norman encoding to unicode 
    * @param inp     * @param inp
    * @return converted String     * @return converted String
    */     */
   static public String normanToUnicode(String inp) {    static public String normanToUnicode(String inp)
     {
     StringBuffer buf = new StringBuffer();      StringBuffer buf = new StringBuffer();
     for (int i = 0; i < inp.length(); i++) {      for (int i = 0; i < inp.length(); i++)
       {
       char c = inp.charAt(i);        char c = inp.charAt(i);
      // System.out.println("char "+c+" "+(int)c);       // System.out.println("char "+c+" "+(int)c);
       switch (c) {        switch (c)
       case 1: buf.append("\u00d0"); break; // Eth        {
       case 2: buf.append("\u00f0"); break; // eth          case 1 :
       case 3: buf.append("\u0141"); break; // Lslash            buf.append("\u00d0");
       case 4: buf.append("\u0142"); break; // lslash            break; // Eth
       case 5: buf.append("\u0160"); break; // S caron          case 2 :
       case 6: buf.append("\u0161"); break; // s caron            buf.append("\u00f0");
       case 7: buf.append("\u00dd"); break; // Y acute            break; // eth
       case 8: buf.append("\u00fd"); break; // y acute          case 3 :
       case 11: buf.append("\u00de"); break; // Thorn            buf.append("\u0141");
       case 12: buf.append("\u00fe"); break; // thorn            break; // Lslash
       case 14: buf.append("\u017d"); break; // Z caron          case 4 :
       case 15: buf.append("\u017e"); break; // z caron            buf.append("\u0142");
       case 17: buf.append("\u0073"); break; // asciitilde            break; // lslash
       case 18: buf.append("j\u0305"); break; // j macron [does a single char exist?]          case 5 :
       case 19: buf.append("^"); break; // circumflex            buf.append("\u0160");
       case 20: buf.append("\u0303"); break; // tilde            break; // S caron
       case 21: buf.append("\u00bd"); break; // onehalf          case 6 :
       case 22: buf.append("\u00bc"); break; // onequarter            buf.append("\u0161");
       case 23: buf.append("\u00b9"); break; // onesuperior            break; // s caron
       case 24: buf.append("\u00be"); break; // threequarters          case 7 :
       case 25: buf.append("\u00b3"); break; // threesuperior            buf.append("\u00dd");
       case 26: buf.append("\u00b2"); break; // twosuperior            break; // Y acute
       case 27: buf.append("\u00a6"); break; // brokenbar          case 8 :
       case 28: buf.append("-"); break; // minus            buf.append("\u00fd");
       case 29: buf.append("\u00d7"); break; // multiply            break; // y acute
       case 39: buf.append("'"); break; // quotesingle          case 11 :
       case 94: buf.append("\u0302"); break; // circumflex            buf.append("\u00de");
       case 96: buf.append("\u0300"); break; // grave            break; // Thorn
       case 196: buf.append("\u00c4"); break; // A dieresis          case 12 :
       case 197: buf.append("\u00c5"); break; // A ring            buf.append("\u00fe");
       case 201: buf.append("\u00c9"); break; // E acute            break; // thorn
       case 209: buf.append("\u00d1"); break; // N tilde          case 14 :
       case 214: buf.append("\u00d6"); break; // O dieresis            buf.append("\u017d");
       case 220: buf.append("\u00dc"); break; // U dieresis            break; // Z caron
       case 225: buf.append("\u00e1"); break; // a acute          case 15 :
       case 224: buf.append("\u00e0"); break; // a grave            buf.append("\u017e");
       case 226: buf.append("\u00e2"); break; // a circumflex            break; // z caron
       case 228: buf.append("\u00e4"); break; // a dieresis          case 17 :
       case 227: buf.append("\u00e3"); break; // a tilde            buf.append("\u0073");
       case 229: buf.append("\u0101"); break; // a macron            break; // asciitilde
       case 231: buf.append("\u00e7"); break; // c cedilla          case 18 :
       case 233: buf.append("\u00e9"); break; // e acute            buf.append("j\u0305");
       case 232: buf.append("\u00e8"); break; // e grave            break; // j macron [does a single char exist?]
       case 234: buf.append("\u00ea"); break; // e circumflex          case 19 :
       case 235: buf.append("\u00eb"); break; // e dieresis            buf.append("^");
       case 237: buf.append("\u00ed"); break; // i acute            break; // circumflex
       case 236: buf.append("\u00ec"); break; // i grave          case 20 :
       case 238: buf.append("\u00ee"); break; // i circumflex            buf.append("\u0303");
       case 239: buf.append("\u00ef"); break; // i dieresis            break; // tilde
       case 241: buf.append("\u00f1"); break; // n tilde          case 21 :
       case 243: buf.append("\u00f3"); break; // o acute            buf.append("\u00bd");
       case 242: buf.append("\u00f2"); break; // o grave            break; // onehalf
       case 244: buf.append("\u00f4"); break; // o circumflex          case 22 :
       case 246: buf.append("\u00f6"); break; // o dieresis            buf.append("\u00bc");
       case 245: buf.append("\u00f5"); break; // o tilde            break; // onequarter
       case 250: buf.append("\u00fa"); break; // u acute          case 23 :
       case 249: buf.append("\u00f9"); break; // u grave            buf.append("\u00b9");
       case 251: buf.append("\u00fb"); break; // u circumflex            break; // onesuperior
       case 252: buf.append("\u00fc"); break; // u dieresis          case 24 :
       case 8224: buf.append("\u1e6d"); break; // t underdot            buf.append("\u00be");
       case 176: buf.append("\u00b0"); break; // degree            break; // threequarters
       case 162: buf.append("\u1ebd"); break; // e tilde          case 25 :
       case 163: buf.append("\u00a3"); break; // sterling            buf.append("\u00b3");
       case 167: buf.append("\u00a7"); break; // section            break; // threesuperior
       case 182: buf.append("\u00b6"); break; // paragraph          case 26 :
       case 223: buf.append("\u015b"); break; // s acute            buf.append("\u00b2");
       case 174: buf.append("\u1e5b"); break; // r underdot            break; // twosuperior
       case 169: buf.append("\u1e45"); break; // n overdot          case 27 :
       case 353: buf.append("\u1e45"); break; // n overdot            buf.append("\u00a6");
       case 180: buf.append("\u0301"); break; // acute            break; // brokenbar
       case 168: buf.append("\u0308"); break; // dieresis          case 28 :
       case 8800: buf.append("\u1e6d"); break; // t underdot            buf.append("-");
       case 198: buf.append("\u00c6"); break; // AE            break; // minus
       case 216: buf.append("\u014d"); break; // o macron          case 29 :
       case 8734: buf.append("\u0129"); break; // i tilde            buf.append("\u00d7");
       case 177: buf.append("\u00b1"); break; // plusminus            break; // multiply
       case 165: buf.append("\u012b"); break; // i macron          case 39 :
       case 181: buf.append("\u1e43"); break; // m underdot            buf.append("'");
       case 8706: buf.append("\u1e0d"); break; // d underdot            break; // quotesingle
       case 240: buf.append("\u1e0d"); break; // d underdot          case 94 :
             buf.append("\u0302");
       case 8721: buf.append("\u1e63"); break; // s underdot            break; // circumflex
       case 960: buf.append("\u017a"); break; // z acute          case 96 :
       case 8747: buf.append("\u1e45"); break; // n overdot            buf.append("\u0300");
       case 937: buf.append("\u0169"); break; // u tilde            break; // grave
       case 230: buf.append("\u00e6"); break; // ae          case 196 :
       case 248: buf.append("\u00f8"); break; // oslash            buf.append("\u00c4");
       case 191: buf.append("\u0304\u0306"); break; // macron breve            break; // A dieresis
       case 172: buf.append("\u1e37"); break; //           case 197 :
       case 8730: buf.append("j\u0305"); break; // j macron [does a single char exist?]            buf.append("\u00c5");
       case 402: buf.append("\u0103"); break; // a breve            break; // A ring
       case 8776: buf.append("\u016d"); break; // u breve          case 201 :
       case 187: buf.append("\u1e42"); break; // M underdot            buf.append("\u00c9");
       case 8230: buf.append("\u2026"); break; // ellipsis            break; // E acute
       case 192: buf.append("\u00c0"); break; // A grave          case 209 :
       case 195: buf.append("\u00c3"); break; // A tilde            buf.append("\u00d1");
       case 213: buf.append("\u00d5"); break; // O tilde            break; // N tilde
       case 338: buf.append("m\u0306"); break; // m breve          case 214 :
       case 339: buf.append("\u0153"); break; // oe            buf.append("\u00d6");
       case 8211: buf.append("\u2013"); break; // endash            break; // O dieresis
       case 8212: buf.append("\u2014"); break; // emdash          case 220 :
       case 8220: buf.append("\u201c"); break; // quotedblleft            buf.append("\u00dc");
       case 8221: buf.append("\u201d"); break; // quotedblright            break; // U dieresis
       case 8216: buf.append("\u2018"); break; // quoteleft          case 225 :
       case 8217: buf.append("\u2019"); break; // quoteright            buf.append("\u00e1");
       case 247: buf.append("\u1e37"); break; // l underring [actually underdot]            break; // a acute
       case 9674: buf.append("\u1e41"); break; // m overdot          case 224 :
       case 255: buf.append("n\u0306"); break; // n breve            buf.append("\u00e0");
       case 376: buf.append("\u00d7"); break; // multiply            break; // a grave
       case 8364: buf.append("\u1e5b"); break; // r underring [actually underdot]          case 226 :
       case 8249: buf.append("\u1e44"); break; // N overdot            buf.append("\u00e2");
       case 8250: buf.append("\u1e62"); break; // S underdot            break; // a circumflex
       case 64257: buf.append("\u1e24"); break; // H underdot          case 228 :
       case 64258: buf.append("\u1e0c"); break; // D underdot            buf.append("\u00e4");
       case 8225: buf.append("\u2021"); break; // daggerdbl            break; // a dieresis
       case 8218: buf.append("\u1e36"); break; // L underdot          case 227 :
       case 8222: buf.append("\u0113"); break; // e macron            buf.append("\u00e3");
       case 194: buf.append("\u1e5f"); break; // r underbar            break; // a tilde
       case 202: buf.append("r\u0324"); break; // r underdieresis          case 229 :
       case 193: buf.append("\u012a"); break; // I macron            buf.append("\u0101");
             break; // a macron
           case 231 :
             buf.append("\u00e7");
             break; // c cedilla
           case 233 :
             buf.append("\u00e9");
             break; // e acute
           case 232 :
             buf.append("\u00e8");
             break; // e grave
           case 234 :
             buf.append("\u00ea");
             break; // e circumflex
           case 235 :
             buf.append("\u00eb");
             break; // e dieresis
           case 237 :
             buf.append("\u00ed");
             break; // i acute
           case 236 :
             buf.append("\u00ec");
             break; // i grave
           case 238 :
             buf.append("\u00ee");
             break; // i circumflex
           case 239 :
             buf.append("\u00ef");
             break; // i dieresis
           case 241 :
             buf.append("\u00f1");
             break; // n tilde
           case 243 :
             buf.append("\u00f3");
             break; // o acute
           case 242 :
             buf.append("\u00f2");
             break; // o grave
           case 244 :
             buf.append("\u00f4");
             break; // o circumflex
           case 246 :
             buf.append("\u00f6");
             break; // o dieresis
           case 245 :
             buf.append("\u00f5");
             break; // o tilde
           case 250 :
             buf.append("\u00fa");
             break; // u acute
           case 249 :
             buf.append("\u00f9");
             break; // u grave
           case 251 :
             buf.append("\u00fb");
             break; // u circumflex
           case 252 :
             buf.append("\u00fc");
             break; // u dieresis
           case 8224 :
             buf.append("\u1e6d");
             break; // t underdot
           case 176 :
             buf.append("\u00b0");
             break; // degree
           case 162 :
             buf.append("\u1ebd");
             break; // e tilde
           case 163 :
             buf.append("\u00a3");
             break; // sterling
           case 167 :
             buf.append("\u00a7");
             break; // section
           case 182 :
             buf.append("\u00b6");
             break; // paragraph
           case 223 :
             buf.append("\u015b");
             break; // s acute
           case 174 :
             buf.append("\u1e5b");
             break; // r underdot
           case 169 :
             buf.append("\u1e45");
             break; // n overdot
           case 353 :
             buf.append("\u1e45");
             break; // n overdot
           case 180 :
             buf.append("\u0301");
             break; // acute
           case 168 :
             buf.append("\u0308");
             break; // dieresis
           case 8800 :
             buf.append("\u1e6d");
             break; // t underdot
           case 198 :
             buf.append("\u00c6");
             break; // AE
           case 216 :
             buf.append("\u014d");
             break; // o macron
           case 8734 :
             buf.append("\u0129");
             break; // i tilde
           case 177 :
             buf.append("\u00b1");
             break; // plusminus
           case 165 :
             buf.append("\u012b");
             break; // i macron
           case 181 :
             buf.append("\u1e43");
             break; // m underdot
           case 8706 :
             buf.append("\u1e0d");
             break; // d underdot
           case 240 :
             buf.append("\u1e0d");
             break; // d underdot
   
           case 8721 :
             buf.append("\u1e63");
             break; // s underdot
           case 960 :
             buf.append("\u017a");
             break; // z acute
           case 8747 :
             buf.append("\u1e45");
             break; // n overdot
           case 937 :
             buf.append("\u0169");
             break; // u tilde
           case 230 :
             buf.append("\u00e6");
             break; // ae
           case 248 :
             buf.append("\u00f8");
             break; // oslash
           case 191 :
             buf.append("\u0304\u0306");
             break; // macron breve
           case 172 :
             buf.append("\u1e37");
             break; // 
           case 8730 :
             buf.append("j\u0305");
             break; // j macron [does a single char exist?]
           case 402 :
             buf.append("\u0103");
             break; // a breve
           case 8776 :
             buf.append("\u016d");
             break; // u breve
           case 187 :
             buf.append("\u1e42");
             break; // M underdot
           case 8230 :
             buf.append("\u2026");
             break; // ellipsis
           case 192 :
             buf.append("\u00c0");
             break; // A grave
           case 195 :
             buf.append("\u00c3");
             break; // A tilde
           case 213 :
             buf.append("\u00d5");
             break; // O tilde
           case 338 :
             buf.append("m\u0306");
             break; // m breve
           case 339 :
             buf.append("\u0153");
             break; // oe
           case 8211 :
             buf.append("\u2013");
             break; // endash
           case 8212 :
             buf.append("\u2014");
             break; // emdash
           case 8220 :
             buf.append("\u201c");
             break; // quotedblleft
           case 8221 :
             buf.append("\u201d");
             break; // quotedblright
           case 8216 :
             buf.append("\u2018");
             break; // quoteleft
           case 8217 :
             buf.append("\u2019");
             break; // quoteright
           case 247 :
             buf.append("\u1e37");
             break; // l underring [actually underdot]
           case 9674 :
             buf.append("\u1e41");
             break; // m overdot
           case 255 :
             buf.append("n\u0306");
             break; // n breve
           case 376 :
             buf.append("\u00d7");
             break; // multiply
           case 8364 :
             buf.append("\u1e5b");
             break; // r underring [actually underdot]
           case 8249 :
             buf.append("\u1e44");
             break; // N overdot
           case 8250 :
             buf.append("\u1e62");
             break; // S underdot
           case 64257 :
             buf.append("\u1e24");
             break; // H underdot
           case 64258 :
             buf.append("\u1e0c");
             break; // D underdot
           case 8225 :
             buf.append("\u2021");
             break; // daggerdbl
           case 8218 :
             buf.append("\u1e36");
             break; // L underdot
           case 8222 :
             buf.append("\u0113");
             break; // e macron
           case 194 :
             buf.append("\u1e5f");
             break; // r underbar
           case 202 :
             buf.append("r\u0324");
             break; // r underdieresis
           case 193 :
             buf.append("\u012a");
             break; // I macron
       case 8486:        case 8486:
       case 203: buf.append("\u016b"); break; // u macron          case 203 :
       case 200: buf.append("\u1e6c"); break; // T underdot            buf.append("\u016b");
       case 205: buf.append("\u1e64"); break; // S acute            break; // u macron
       case 206: buf.append("\u2020"); break; // dagger          case 200 :
       case 207: buf.append("\u0115"); break; // e breve            buf.append("\u1e6c");
       case 204: buf.append("\u014f"); break; // o breve            break; // T underdot
       case 211: buf.append("\u0100"); break; // A macron          case 205 :
       case 212: buf.append("\u1e46"); break; // N underdot            buf.append("\u1e64");
       case 210: buf.append("\u1e3b"); break; // l underbar            break; // S acute
       case 218: buf.append("\u016a"); break; // U macron          case 206 :
       case 219: buf.append("\u0179"); break; // Z acute            buf.append("\u2020");
       case 217: buf.append("\u1e5a"); break; // R underdot            break; // dagger
       case 305: buf.append("\u0131"); break; // dotlessi          case 207 :
       case 710: buf.append("\u1e47"); break; // n underdot            buf.append("\u0115");
       case 732: buf.append("\u1e49"); break; // n underbar            break; // e breve
       case 175: buf.append("\u0304"); break; // macron          case 204 :
       case 728: buf.append("\u0306"); break; // breve            buf.append("\u014f");
       case 729:case 215: buf.append("\u1e25"); break; // h underdot            break; // o breve
       case 730: buf.append("\u012d"); break; // i breve          case 211 :
       case 184: buf.append("\u0327"); break; // cedilla            buf.append("\u0100");
       case 733: buf.append("\u030b"); break; // hungarumlaut            break; // A macron
       case 731: buf.append("\u0328"); break; // ogonek          case 212 :
       case 711: buf.append("\u030c"); break; // caron            buf.append("\u1e46");
       case 199: buf.append("\u012b\u0303"); break; // imacron tilde            break; // N underdot
       case 8226: buf.append("\u1e5d"); break; // runderdot macron          case 210 :
       case 8482: buf.append("\u016b\0306"); break; // umacron breve            buf.append("\u1e3b");
       case 8804: buf.append("\u0101\u0301"); break; // amacron acute            break; // l underbar
       case 8805: buf.append("\u016b\u0301"); break; // umacron acute          case 218 :
       case 8719: buf.append("\u0113\u0301"); break; // emacron acute            buf.append("\u016a");
       case 170: buf.append("\u0113\u0300"); break; // emacron breve            break; // U macron
       case 186: buf.append("\u014d\u0300"); break; // omacron breve          case 219 :
       case 161: buf.append("\u0101\u0306"); break; // amacron breve            buf.append("\u0179");
       case 8710: buf.append("\u0101\u0303"); break; // amacron tilde            break; // Z acute
       case 171: buf.append("\u012b\u0301"); break; // imacron acute          case 217 :
       case 8260: buf.append("\u1e00"); break; // runderdotmacron acute            buf.append("\u1e5a");
       case 183: buf.append("\u1e5b\u0301"); break; // runderdot acute            break; // R underdot
       case 8240: buf.append("\u012b\u0306"); break; // imacron breve          case 305 :
       case 63743: buf.append("\u016b\u0303"); break; // umacron tilde            buf.append("\u0131");
       default: buf.append(c);                break; // dotlessi
           case 710 :
             buf.append("\u1e47");
             break; // n underdot
           case 732 :
             buf.append("\u1e49");
             break; // n underbar
           case 175 :
             buf.append("\u0304");
             break; // macron
           case 728 :
             buf.append("\u0306");
             break; // breve
           case 729 :
           case 215 :
             buf.append("\u1e25");
             break; // h underdot
           case 730 :
             buf.append("\u012d");
             break; // i breve
           case 184 :
             buf.append("\u0327");
             break; // cedilla
           case 733 :
             buf.append("\u030b");
             break; // hungarumlaut
           case 731 :
             buf.append("\u0328");
             break; // ogonek
           case 711 :
             buf.append("\u030c");
             break; // caron
           case 199 :
             buf.append("\u012b\u0303");
             break; // imacron tilde
           case 8226 :
             buf.append("\u1e5d");
             break; // runderdot macron
           case 8482 :
             buf.append("\u016b\0306");
             break; // umacron breve
           case 8804 :
             buf.append("\u0101\u0301");
             break; // amacron acute
           case 8805 :
             buf.append("\u016b\u0301");
             break; // umacron acute
           case 8719 :
             buf.append("\u0113\u0301");
             break; // emacron acute
           case 170 :
             buf.append("\u0113\u0300");
             break; // emacron breve
           case 186 :
             buf.append("\u014d\u0300");
             break; // omacron breve
           case 161 :
             buf.append("\u0101\u0306");
             break; // amacron breve
           case 8710 :
             buf.append("\u0101\u0303");
             break; // amacron tilde
           case 171 :
             buf.append("\u012b\u0301");
             break; // imacron acute
           case 8260 :
             buf.append("\u1e00");
             break; // runderdotmacron acute
           case 183 :
             buf.append("\u1e5b\u0301");
             break; // runderdot acute
           case 8240 :
             buf.append("\u012b\u0306");
             break; // imacron breve
           case 63743 :
             buf.append("\u016b\u0303");
             break; // umacron tilde
           default :
             buf.append(c);
        if((int)c>127)         if((int)c>127)
        System.out.println("char "+c+" "+(int)c);         System.out.println("char "+c+" "+(int)c);
        break;         break;
Line 2303  class Convert Line 2671  class Convert
     return buf.toString();      return buf.toString();
   }    }
   
   static public String normanToUnicodeOld(String inp) {    static public String normanToUnicodeOld(String inp)
     {
     StringBuffer buf = new StringBuffer();      StringBuffer buf = new StringBuffer();
     for (int i = 0; i < inp.length(); i++) {      for (int i = 0; i < inp.length(); i++)
       {
       char c = inp.charAt(i);        char c = inp.charAt(i);
       switch (c) {        switch (c)
       case 1: buf.append("\u00d0"); break; // Eth        {
       case 2: buf.append("\u00f0"); break; // eth          case 1 :
       case 3: buf.append("\u0141"); break; // Lslash            buf.append("\u00d0");
       case 4: buf.append("\u0142"); break; // lslash            break; // Eth
       case 5: buf.append("\u0160"); break; // S caron          case 2 :
       case 6: buf.append("\u0161"); break; // s caron            buf.append("\u00f0");
       case 7: buf.append("\u00dd"); break; // Y acute            break; // eth
       case 8: buf.append("\u00fd"); break; // y acute          case 3 :
       case 11: buf.append("\u00de"); break; // Thorn            buf.append("\u0141");
       case 12: buf.append("\u00fe"); break; // thorn            break; // Lslash
       case 14: buf.append("\u017d"); break; // Z caron          case 4 :
       case 15: buf.append("\u017e"); break; // z caron            buf.append("\u0142");
       case 17: buf.append("\u0073"); break; // asciitilde            break; // lslash
       case 18: buf.append("j\u0305"); break; // j macron [does a single char exist?]          case 5 :
       case 19: buf.append("^"); break; // circumflex            buf.append("\u0160");
       case 20: buf.append("\u0303"); break; // tilde            break; // S caron
       case 21: buf.append("\u00bd"); break; // onehalf          case 6 :
       case 22: buf.append("\u00bc"); break; // onequarter            buf.append("\u0161");
       case 23: buf.append("\u00b9"); break; // onesuperior            break; // s caron
       case 24: buf.append("\u00be"); break; // threequarters          case 7 :
       case 25: buf.append("\u00b3"); break; // threesuperior            buf.append("\u00dd");
       case 26: buf.append("\u00b2"); break; // twosuperior            break; // Y acute
       case 27: buf.append("\u00a6"); break; // brokenbar          case 8 :
       case 28: buf.append("-"); break; // minus            buf.append("\u00fd");
       case 29: buf.append("\u00d7"); break; // multiply            break; // y acute
       case 39: buf.append("'"); break; // quotesingle          case 11 :
       case 94: buf.append("\u0302"); break; // circumflex            buf.append("\u00de");
       case 96: buf.append("\u0300"); break; // grave            break; // Thorn
       case 128: buf.append("\u00c4"); break; // A dieresis          case 12 :
       case 129: buf.append("\u00c5"); break; // A ring            buf.append("\u00fe");
       case 131: buf.append("\u00c9"); break; // E acute            break; // thorn
       case 132: buf.append("\u00d1"); break; // N tilde          case 14 :
       case 133: buf.append("\u00d6"); break; // O dieresis            buf.append("\u017d");
       case 134: buf.append("\u00dc"); break; // U dieresis            break; // Z caron
       case 135: buf.append("\u00e1"); break; // a acute          case 15 :
       case 136: buf.append("\u00e0"); break; // a grave            buf.append("\u017e");
       case 137: buf.append("\u00e2"); break; // a circumflex            break; // z caron
       case 138: buf.append("\u00e4"); break; // a dieresis          case 17 :
       case 139: buf.append("\u00e3"); break; // a tilde            buf.append("\u0073");
       case 140: buf.append("\u0101"); break; // a macron            break; // asciitilde
       case 141: buf.append("\u00e7"); break; // c cedilla          case 18 :
       case 142: buf.append("\u00e9"); break; // e acute            buf.append("j\u0305");
       case 143: buf.append("\u00e8"); break; // e grave            break; // j macron [does a single char exist?]
       case 144: buf.append("\u00ea"); break; // e circumflex          case 19 :
       case 145: buf.append("\u00eb"); break; // e dieresis            buf.append("^");
       case 146: buf.append("\u00ed"); break; // i acute            break; // circumflex
       case 147: buf.append("\u00ec"); break; // i grave          case 20 :
       case 148: buf.append("\u00ee"); break; // i circumflex            buf.append("\u0303");
       case 149: buf.append("\u00ef"); break; // i dieresis            break; // tilde
       case 150: buf.append("\u00f1"); break; // n tilde          case 21 :
       case 151: buf.append("\u00f3"); break; // o acute            buf.append("\u00bd");
       case 152: buf.append("\u00f2"); break; // o grave            break; // onehalf
       case 153: buf.append("\u00f4"); break; // o circumflex          case 22 :
       case 154: buf.append("\u00f6"); break; // o dieresis            buf.append("\u00bc");
       case 155: buf.append("\u00f5"); break; // o tilde            break; // onequarter
       case 156: buf.append("\u00fa"); break; // u acute          case 23 :
       case 157: buf.append("\u00f9"); break; // u grave            buf.append("\u00b9");
       case 158: buf.append("\u00fb"); break; // u circumflex            break; // onesuperior
       case 159: buf.append("\u00fc"); break; // u dieresis          case 24 :
       case 160: buf.append("\u1e6d"); break; // t underdot            buf.append("\u00be");
       case 161: buf.append("\u00b0"); break; // degree            break; // threequarters
       case 162: buf.append("\u1ebd"); break; // e tilde          case 25 :
       case 163: buf.append("\u00a3"); break; // sterling            buf.append("\u00b3");
       case 164: buf.append("\u00a7"); break; // section            break; // threesuperior
       case 166: buf.append("\u00b6"); break; // paragraph          case 26 :
       case 167: buf.append("\u015b"); break; // s acute            buf.append("\u00b2");
       case 168: buf.append("\u1e5b"); break; // r underdot            break; // twosuperior
       case 169: buf.append("\u1e67"); break; // s caron          case 27 :
       case 171: buf.append("\u0301"); break; // acute            buf.append("\u00a6");
       case 172: buf.append("\u0308"); break; // dieresis            break; // brokenbar
       case 173: buf.append("\u1e6d"); break; // t underdot          case 28 :
       case 174: buf.append("\u00c6"); break; // AE            buf.append("-");
       case 175: buf.append("\u014d"); break; // o macron            break; // minus
       case 176: buf.append("\u0129"); break; // i tilde          case 29 :
       case 177: buf.append("\u00b1"); break; // plusminus            buf.append("\u00d7");
       case 180: buf.append("\u012b"); break; // i macron            break; // multiply
       case 181: buf.append("\u1e43"); break; // m underdot          case 39 :
       case 182: buf.append("\u1e0d"); break; // d underdot            buf.append("'");
       case 183: buf.append("\u1e63"); break; // s underdot            break; // quotesingle
       case 185: buf.append("\u017a"); break; // z acute          case 94 :
       case 186: buf.append("\u1e45"); break; // n overdot            buf.append("\u0302");
       case 189: buf.append("\u0169"); break; // u tilde            break; // circumflex
       case 190: buf.append("\u00e6"); break; // ae          case 96 :
       case 191: buf.append("\u00f8"); break; // oslash            buf.append("\u0300");
       case 192: buf.append("\u0304\u0306"); break; // macron breve            break; // grave
       case 194: buf.append("\u1e37"); break; //           case 128 :
       case 195: buf.append("j\u0305"); break; // j macron [does a single char exist?]            buf.append("\u00c4");
       case 196: buf.append("\u0103"); break; // a breve            break; // A dieresis
       case 197: buf.append("\u016d"); break; // u breve          case 129 :
       case 200: buf.append("\u1e42"); break; // M underdot            buf.append("\u00c5");
       case 201: buf.append("\u2026"); break; // ellipsis            break; // A ring
       case 203: buf.append("\u00c0"); break; // A grave          case 131 :
       case 204: buf.append("\u00c3"); break; // A tilde            buf.append("\u00c9");
       case 205: buf.append("\u00d5"); break; // O tilde            break; // E acute
       case 206: buf.append("m\u0306"); break; // m breve          case 132 :
       case 207: buf.append("\u0153"); break; // oe            buf.append("\u00d1");
       case 208: buf.append("\u2013"); break; // endash            break; // N tilde
       case 209: buf.append("\u2014"); break; // emdash          case 133 :
       case 210: buf.append("\u201c"); break; // quotedblleft            buf.append("\u00d6");
       case 211: buf.append("\u201d"); break; // quotedblright            break; // O dieresis
       case 212: buf.append("\u2018"); break; // quoteleft          case 134 :
       case 213: buf.append("\u2019"); break; // quoteright            buf.append("\u00dc");
       case 214: buf.append("\u1e37"); break; // l underring [actually underdot]            break; // U dieresis
       case 215: buf.append("\u1e41"); break; // m overdot          case 135 :
       case 216: buf.append("n\u0306"); break; // n breve            buf.append("\u00e1");
       case 217: buf.append("\u00d7"); break; // multiply            break; // a acute
       case 219: buf.append("\u1e5b"); break; // r underring [actually underdot]          case 136 :
       case 220: buf.append("\u1e44"); break; // N overdot            buf.append("\u00e0");
       case 221: buf.append("\u1e62"); break; // S underdot            break; // a grave
       case 222: buf.append("\u1e24"); break; // H underdot          case 137 :
       case 223: buf.append("\u1e0c"); break; // D underdot            buf.append("\u00e2");
       case 224: buf.append("\u2021"); break; // daggerdbl            break; // a circumflex
       case 226: buf.append("\u1e36"); break; // L underdot          case 138 :
       case 227: buf.append("\u0113"); break; // e macron            buf.append("\u00e4");
       case 229: buf.append("\u1e5f"); break; // r underbar            break; // a dieresis
       case 230: buf.append("r\u0324"); break; // r underdieresis          case 139 :
       case 231: buf.append("\u012a"); break; // I macron            buf.append("\u00e3");
       case 232: buf.append("\u016b"); break; // u macron            break; // a tilde
       case 233: buf.append("\u01e6c"); break; // T underdot          case 140 :
       case 234: buf.append("\u1e64"); break; // S acute            buf.append("\u0101");
       case 235: buf.append("\u2020"); break; // dagger            break; // a macron
       case 236: buf.append("\u0115"); break; // e breve          case 141 :
       case 237: buf.append("\u014f"); break; // o breve            buf.append("\u00e7");
       case 238: buf.append("\u0100"); break; // A macron            break; // c cedilla
       case 239: buf.append("\u1e46"); break; // N underdot          case 142 :
       case 241: buf.append("\u1e3b"); break; // l underbar            buf.append("\u00e9");
       case 242: buf.append("\u016a"); break; // U macron            break; // e acute
       case 243: buf.append("\u0179"); break; // Z acute          case 143 :
       case 244: buf.append("\u1e5a"); break; // R underdot            buf.append("\u00e8");
       case 245: buf.append("\u0131"); break; // dotlessi            break; // e grave
       case 246: buf.append("\u1e47"); break; // n underdot          case 144 :
       case 247: buf.append("\u1e49"); break; // n underbar            buf.append("\u00ea");
       case 248: buf.append("\u0304"); break; // macron            break; // e circumflex
       case 249: buf.append("\u0306"); break; // breve          case 145 :
       case 250: buf.append("\u1e25"); break; // h underdot            buf.append("\u00eb");
       case 251: buf.append("\u012d"); break; // i breve            break; // e dieresis
       case 252: buf.append("\u0327"); break; // cedilla          case 146 :
       case 253: buf.append("\u030b"); break; // hungarumlaut            buf.append("\u00ed");
       case 254: buf.append("\u0328"); break; // ogonek            break; // i acute
       case 255: buf.append("\u030c"); break; // caron          case 147 :
       case 130: buf.append("\u012b\u0303"); break; // imacron tilde            buf.append("\u00ec");
       case 165: buf.append("\u1e5d"); break; // runderdot macron            break; // i grave
       case 170: buf.append("\u016b\0306"); break; // umacron breve          case 148 :
       case 178: buf.append("\u0101\u0301"); break; // amacron acute            buf.append("\u00ee");
       case 179: buf.append("\u016b\u0301"); break; // umacron acute            break; // i circumflex
       case 184: buf.append("\u0113\u0301"); break; // emacron acute          case 149 :
       case 187: buf.append("\u0113\u0300"); break; // emacron breve            buf.append("\u00ef");
       case 188: buf.append("\u014d\u0300"); break; // omacron breve            break; // i dieresis
       case 193: buf.append("\u0101\u0306"); break; // amacron breve          case 150 :
       case 198: buf.append("\u0101\u0303"); break; // amacron tilde            buf.append("\u00f1");
       case 199: buf.append("\u012b\u0301"); break; // imacron acute            break; // n tilde
       case 218: buf.append("\u1e00"); break; // runderdotmacron acute          case 151 :
       case 225: buf.append("\u1e5b\u0301"); break; // runderdot acute            buf.append("\u00f3");
       case 228: buf.append("\u012b\u0306"); break; // imacron breve            break; // o acute
       case 240: buf.append("\u016b\u0303"); break; // umacron tilde          case 152 :
       default: buf.append(c); break;            buf.append("\u00f2");
             break; // o grave
           case 153 :
             buf.append("\u00f4");
             break; // o circumflex
           case 154 :
             buf.append("\u00f6");
             break; // o dieresis
           case 155 :
             buf.append("\u00f5");
             break; // o tilde
           case 156 :
             buf.append("\u00fa");
             break; // u acute
           case 157 :
             buf.append("\u00f9");
             break; // u grave
           case 158 :
             buf.append("\u00fb");
             break; // u circumflex
           case 159 :
             buf.append("\u00fc");
             break; // u dieresis
           case 160 :
             buf.append("\u1e6d");
             break; // t underdot
           case 161 :
             buf.append("\u00b0");
             break; // degree
           case 162 :
             buf.append("\u1ebd");
             break; // e tilde
           case 163 :
             buf.append("\u00a3");
             break; // sterling
           case 164 :
             buf.append("\u00a7");
             break; // section
           case 166 :
             buf.append("\u00b6");
             break; // paragraph
           case 167 :
             buf.append("\u015b");
             break; // s acute
           case 168 :
             buf.append("\u1e5b");
             break; // r underdot
           case 169 :
             buf.append("\u1e67");
             break; // s caron
           case 171 :
             buf.append("\u0301");
             break; // acute
           case 172 :
             buf.append("\u0308");
             break; // dieresis
           case 173 :
             buf.append("\u1e6d");
             break; // t underdot
           case 174 :
             buf.append("\u00c6");
             break; // AE
           case 175 :
             buf.append("\u014d");
             break; // o macron
           case 176 :
             buf.append("\u0129");
             break; // i tilde
           case 177 :
             buf.append("\u00b1");
             break; // plusminus
           case 180 :
             buf.append("\u012b");
             break; // i macron
           case 181 :
             buf.append("\u1e43");
             break; // m underdot
           case 182 :
             buf.append("\u1e0d");
             break; // d underdot
           case 183 :
             buf.append("\u1e63");
             break; // s underdot
           case 185 :
             buf.append("\u017a");
             break; // z acute
           case 186 :
             buf.append("\u1e45");
             break; // n overdot
           case 189 :
             buf.append("\u0169");
             break; // u tilde
           case 190 :
             buf.append("\u00e6");
             break; // ae
           case 191 :
             buf.append("\u00f8");
             break; // oslash
           case 192 :
             buf.append("\u0304\u0306");
             break; // macron breve
           case 194 :
             buf.append("\u1e37");
             break; // 
           case 195 :
             buf.append("j\u0305");
             break; // j macron [does a single char exist?]
           case 196 :
             buf.append("\u0103");
             break; // a breve
           case 197 :
             buf.append("\u016d");
             break; // u breve
           case 200 :
             buf.append("\u1e42");
             break; // M underdot
           case 201 :
             buf.append("\u2026");
             break; // ellipsis
           case 203 :
             buf.append("\u00c0");
             break; // A grave
           case 204 :
             buf.append("\u00c3");
             break; // A tilde
           case 205 :
             buf.append("\u00d5");
             break; // O tilde
           case 206 :
             buf.append("m\u0306");
             break; // m breve
           case 207 :
             buf.append("\u0153");
             break; // oe
           case 208 :
             buf.append("\u2013");
             break; // endash
           case 209 :
             buf.append("\u2014");
             break; // emdash
           case 210 :
             buf.append("\u201c");
             break; // quotedblleft
           case 211 :
             buf.append("\u201d");
             break; // quotedblright
           case 212 :
             buf.append("\u2018");
             break; // quoteleft
           case 213 :
             buf.append("\u2019");
             break; // quoteright
           case 214 :
             buf.append("\u1e37");
             break; // l underring [actually underdot]
           case 215 :
             buf.append("\u1e41");
             break; // m overdot
           case 216 :
             buf.append("n\u0306");
             break; // n breve
           case 217 :
             buf.append("\u00d7");
             break; // multiply
           case 219 :
             buf.append("\u1e5b");
             break; // r underring [actually underdot]
           case 220 :
             buf.append("\u1e44");
             break; // N overdot
           case 221 :
             buf.append("\u1e62");
             break; // S underdot
           case 222 :
             buf.append("\u1e24");
             break; // H underdot
           case 223 :
             buf.append("\u1e0c");
             break; // D underdot
           case 224 :
             buf.append("\u2021");
             break; // daggerdbl
           case 226 :
             buf.append("\u1e36");
             break; // L underdot
           case 227 :
             buf.append("\u0113");
             break; // e macron
           case 229 :
             buf.append("\u1e5f");
             break; // r underbar
           case 230 :
             buf.append("r\u0324");
             break; // r underdieresis
           case 231 :
             buf.append("\u012a");
             break; // I macron
           case 232 :
             buf.append("\u016b");
             break; // u macron
           case 233 :
             buf.append("\u01e6c");
             break; // T underdot
           case 234 :
             buf.append("\u1e64");
             break; // S acute
           case 235 :
             buf.append("\u2020");
             break; // dagger
           case 236 :
             buf.append("\u0115");
             break; // e breve
           case 237 :
             buf.append("\u014f");
             break; // o breve
           case 238 :
             buf.append("\u0100");
             break; // A macron
           case 239 :
             buf.append("\u1e46");
             break; // N underdot
           case 241 :
             buf.append("\u1e3b");
             break; // l underbar
           case 242 :
             buf.append("\u016a");
             break; // U macron
           case 243 :
             buf.append("\u0179");
             break; // Z acute
           case 244 :
             buf.append("\u1e5a");
             break; // R underdot
           case 245 :
             buf.append("\u0131");
             break; // dotlessi
           case 246 :
             buf.append("\u1e47");
             break; // n underdot
           case 247 :
             buf.append("\u1e49");
             break; // n underbar
           case 248 :
             buf.append("\u0304");
             break; // macron
           case 249 :
             buf.append("\u0306");
             break; // breve
           case 250 :
             buf.append("\u1e25");
             break; // h underdot
           case 251 :
             buf.append("\u012d");
             break; // i breve
           case 252 :
             buf.append("\u0327");
             break; // cedilla
           case 253 :
             buf.append("\u030b");
             break; // hungarumlaut
           case 254 :
             buf.append("\u0328");
             break; // ogonek
           case 255 :
             buf.append("\u030c");
             break; // caron
           case 130 :
             buf.append("\u012b\u0303");
             break; // imacron tilde
           case 165 :
             buf.append("\u1e5d");
             break; // runderdot macron
           case 170 :
             buf.append("\u016b\0306");
             break; // umacron breve
           case 178 :
             buf.append("\u0101\u0301");
             break; // amacron acute
           case 179 :
             buf.append("\u016b\u0301");
             break; // umacron acute
           case 184 :
             buf.append("\u0113\u0301");
             break; // emacron acute
           case 187 :
             buf.append("\u0113\u0300");
             break; // emacron breve
           case 188 :
             buf.append("\u014d\u0300");
             break; // omacron breve
           case 193 :
             buf.append("\u0101\u0306");
             break; // amacron breve
           case 198 :
             buf.append("\u0101\u0303");
             break; // amacron tilde
           case 199 :
             buf.append("\u012b\u0301");
             break; // imacron acute
           case 218 :
             buf.append("\u1e00");
             break; // runderdotmacron acute
           case 225 :
             buf.append("\u1e5b\u0301");
             break; // runderdot acute
           case 228 :
             buf.append("\u012b\u0306");
             break; // imacron breve
           case 240 :
             buf.append("\u016b\u0303");
             break; // umacron tilde
           default :
             buf.append(c);
             break;
       }        }
     }      }
     return buf.toString();      return buf.toString();
   }    }
   static public String normanToUnicodeNew(String inp) {    static public String normanToUnicodeNew(String inp)
     {
     StringBuffer buf = new StringBuffer();      StringBuffer buf = new StringBuffer();
     for (int i = 0; i < inp.length(); i++) {      for (int i = 0; i < inp.length(); i++)
       {
       char c = inp.charAt(i);        char c = inp.charAt(i);
       switch (c) {        switch (c)
         case 1: buf.append("\u00d0"); break; // Eth        {
         case 2: buf.append("\u00f0"); break; // eth          case 1 :
         case 3: buf.append("\u0141"); break; // Lslash            buf.append("\u00d0");
         case 4: buf.append("\u0142"); break; // lslash            break; // Eth
         case 5: buf.append("\u0160"); break; // S caron          case 2 :
         case 6: buf.append("\u0161"); break; // s caron            buf.append("\u00f0");
         case 7: buf.append("\u00dd"); break; // Y acute            break; // eth
         case 8: buf.append("\u00fd"); break; // y acute          case 3 :
         case 11: buf.append("\u00de"); break; // Thorn            buf.append("\u0141");
         case 12: buf.append("\u00fe"); break; // thorn            break; // Lslash
         case 14: buf.append("\u017d"); break; // Z caron          case 4 :
         case 15: buf.append("\u017e"); break; // z caron            buf.append("\u0142");
         case 17: buf.append("\u0073"); break; // asciitilde            break; // lslash
         case 18: buf.append("j\u0305"); break; // j macron [does a single char exist?]          case 5 :
         case 19: buf.append("^"); break; // circumflex            buf.append("\u0160");
         case 20: buf.append("\u0303"); break; // tilde            break; // S caron
         case 21: buf.append("\u00bd"); break; // onehalf          case 6 :
         case 22: buf.append("\u00bc"); break; // onequarter            buf.append("\u0161");
         case 23: buf.append("\u00b9"); break; // onesuperior            break; // s caron
         case 24: buf.append("\u00be"); break; // threequarters          case 7 :
         case 25: buf.append("\u00b3"); break; // threesuperior            buf.append("\u00dd");
         case 26: buf.append("\u00b2"); break; // twosuperior            break; // Y acute
         case 27: buf.append("\u00a6"); break; // brokenbar          case 8 :
         case 28: buf.append("-"); break; // minus            buf.append("\u00fd");
         case 29: buf.append("\u00d7"); break; // multiply            break; // y acute
         case 39: buf.append("'"); break; // quotesingle          case 11 :
         case 94: buf.append("\u0302"); break; // circumflex            buf.append("\u00de");
         case 96: buf.append("\u0300"); break; // grave            break; // Thorn
         case 196: buf.append("\u00c4"); break; // A dieresis          case 12 :
         case 197: buf.append("\u00c5"); break; // A ring            buf.append("\u00fe");
         case 201: buf.append("\u00c9"); break; // E acute            break; // thorn
         case 209: buf.append("\u00d1"); break; // N tilde          case 14 :
         case 214: buf.append("\u00d6"); break; // O dieresis            buf.append("\u017d");
         case 220: buf.append("\u00dc"); break; // U dieresis            break; // Z caron
         case 225: buf.append("\u00e1"); break; // a acute          case 15 :
         case 224: buf.append("\u00e0"); break; // a grave            buf.append("\u017e");
         case 226: buf.append("\u00e2"); break; // a circumflex            break; // z caron
         case 228: buf.append("\u00e4"); break; // a dieresis          case 17 :
         case 227: buf.append("\u00e3"); break; // a tilde            buf.append("\u0073");
         case 229: buf.append("\u0101"); break; // a macron            break; // asciitilde
         case 231: buf.append("\u00e7"); break; // c cedilla          case 18 :
         case 233: buf.append("\u00e9"); break; // e acute            buf.append("j\u0305");
         case 232: buf.append("\u00e8"); break; // e grave            break; // j macron [does a single char exist?]
         case 234: buf.append("\u00ea"); break; // e circumflex          case 19 :
         case 235: buf.append("\u00eb"); break; // e dieresis            buf.append("^");
         case 237: buf.append("\u00ed"); break; // i acute            break; // circumflex
         case 236: buf.append("\u00ec"); break; // i grave          case 20 :
         case 238: buf.append("\u00ee"); break; // i circumflex            buf.append("\u0303");
         case 239: buf.append("\u00ef"); break; // i dieresis            break; // tilde
         case 241: buf.append("\u00f1"); break; // n tilde          case 21 :
         case 243: buf.append("\u00f3"); break; // o acute            buf.append("\u00bd");
         case 242: buf.append("\u00f2"); break; // o grave            break; // onehalf
         case 244: buf.append("\u00f4"); break; // o circumflex          case 22 :
         case 246: buf.append("\u00f6"); break; // o dieresis            buf.append("\u00bc");
         case 245: buf.append("\u00f5"); break; // o tilde            break; // onequarter
         case 250: buf.append("\u00fa"); break; // u acute          case 23 :
         case 249: buf.append("\u00f9"); break; // u grave            buf.append("\u00b9");
         case 251: buf.append("\u00fb"); break; // u circumflex            break; // onesuperior
         case 252: buf.append("\u00fc"); break; // u dieresis          case 24 :
         case 8224: buf.append("\u1e6d"); break; // t underdot            buf.append("\u00be");
         case 176: buf.append("\u00b0"); break; // degree            break; // threequarters
         case 162: buf.append("\u1ebd"); break; // e tilde          case 25 :
         case 163: buf.append("\u00a3"); break; // sterling            buf.append("\u00b3");
         case 167: buf.append("\u00a7"); break; // section            break; // threesuperior
         case 182: buf.append("\u00b6"); break; // paragraph          case 26 :
         case 223: buf.append("\u015b"); break; // s acute            buf.append("\u00b2");
         case 174: buf.append("\u1e5b"); break; // r underdot            break; // twosuperior
         case 169: buf.append("\u1e45"); break; // n overdot          case 27 :
         case 180: buf.append("\u0301"); break; // acute            buf.append("\u00a6");
         case 168: buf.append("\u0308"); break; // dieresis            break; // brokenbar
         case 8800: buf.append("\u1e6d"); break; // t underdot          case 28 :
         case 198: buf.append("\u00c6"); break; // AE            buf.append("-");
         case 216: buf.append("\u014d"); break; // o macron            break; // minus
         case 8734: buf.append("\u0129"); break; // i tilde          case 29 :
         case 177: buf.append("\u00b1"); break; // plusminus            buf.append("\u00d7");
         case 165: buf.append("\u012b"); break; // i macron            break; // multiply
         case 181: buf.append("\u1e43"); break; // m underdot          case 39 :
         case 8706: buf.append("\u1e0d"); break; // d underdot            buf.append("'");
         case 8721: buf.append("\u1e63"); break; // s underdot            break; // quotesingle
         case 960: buf.append("\u017a"); break; // z acute          case 94 :
         case 8747: buf.append("\u1e45"); break; // n overdot            buf.append("\u0302");
         case 937: buf.append("\u0169"); break; // u tilde            break; // circumflex
         case 230: buf.append("\u00e6"); break; // ae          case 96 :
         case 248: buf.append("\u00f8"); break; // oslash            buf.append("\u0300");
         case 191: buf.append("\u0304\u0306"); break; // macron breve            break; // grave
         case 172: buf.append("\u1e37"); break; //           case 196 :
         case 8730: buf.append("j\u0305"); break; // j macron [does a single char exist?]            buf.append("\u00c4");
         case 402: buf.append("\u0103"); break; // a breve            break; // A dieresis
         case 8776: buf.append("\u016d"); break; // u breve          case 197 :
         case 187: buf.append("\u1e42"); break; // M underdot            buf.append("\u00c5");
         case 8230: buf.append("\u2026"); break; // ellipsis            break; // A ring
         case 192: buf.append("\u00c0"); break; // A grave          case 201 :
         case 195: buf.append("\u00c3"); break; // A tilde            buf.append("\u00c9");
         case 213: buf.append("\u00d5"); break; // O tilde            break; // E acute
         case 338: buf.append("m\u0306"); break; // m breve          case 209 :
         case 339: buf.append("\u0153"); break; // oe            buf.append("\u00d1");
         case 8211: buf.append("\u2013"); break; // endash            break; // N tilde
         case 8212: buf.append("\u2014"); break; // emdash          case 214 :
         case 8220: buf.append("\u201c"); break; // quotedblleft            buf.append("\u00d6");
         case 8221: buf.append("\u201d"); break; // quotedblright            break; // O dieresis
         case 8216: buf.append("\u2018"); break; // quoteleft          case 220 :
         case 8217: buf.append("\u2019"); break; // quoteright            buf.append("\u00dc");
         case 247: buf.append("\u1e37"); break; // l underring [actually underdot]            break; // U dieresis
         case 9674: buf.append("\u1e41"); break; // m overdot          case 225 :
         case 255: buf.append("n\u0306"); break; // n breve            buf.append("\u00e1");
         case 376: buf.append("\u00d7"); break; // multiply            break; // a acute
         case 8364: buf.append("\u1e5b"); break; // r underring [actually underdot]          case 224 :
         case 8249: buf.append("\u1e44"); break; // N overdot            buf.append("\u00e0");
         case 8250: buf.append("\u1e62"); break; // S underdot            break; // a grave
         case 64257: buf.append("\u1e24"); break; // H underdot          case 226 :
         case 64258: buf.append("\u1e0c"); break; // D underdot            buf.append("\u00e2");
         case 8225: buf.append("\u2021"); break; // daggerdbl            break; // a circumflex
         case 8218: buf.append("\u1e36"); break; // L underdot          case 228 :
         case 8222: buf.append("\u0113"); break; // e macron            buf.append("\u00e4");
         case 194: buf.append("\u1e5f"); break; // r underbar            break; // a dieresis
         case 202: buf.append("r\u0324"); break; // r underdieresis          case 227 :
         case 193: buf.append("\u012a"); break; // I macron            buf.append("\u00e3");
         case 203: buf.append("\u016b"); break; // u macron            break; // a tilde
         case 200: buf.append("\u1e6c"); break; // T underdot          case 229 :
         case 205: buf.append("\u1e64"); break; // S acute            buf.append("\u0101");
         case 206: buf.append("\u2020"); break; // dagger            break; // a macron
         case 207: buf.append("\u0115"); break; // e breve          case 231 :
         case 204: buf.append("\u014f"); break; // o breve            buf.append("\u00e7");
         case 211: buf.append("\u0100"); break; // A macron            break; // c cedilla
         case 212: buf.append("\u1e46"); break; // N underdot          case 233 :
         case 210: buf.append("\u1e3b"); break; // l underbar            buf.append("\u00e9");
         case 218: buf.append("\u016a"); break; // U macron            break; // e acute
         case 219: buf.append("\u0179"); break; // Z acute          case 232 :
         case 217: buf.append("\u1e5a"); break; // R underdot            buf.append("\u00e8");
         case 305: buf.append("\u0131"); break; // dotlessi            break; // e grave
         case 710: buf.append("\u1e47"); break; // n underdot          case 234 :
         case 732: buf.append("\u1e49"); break; // n underbar            buf.append("\u00ea");
         case 175: buf.append("\u0304"); break; // macron            break; // e circumflex
         case 728: buf.append("\u0306"); break; // breve          case 235 :
         case 729: buf.append("\u1e25"); break; // h underdot            buf.append("\u00eb");
         case 730: buf.append("\u012d"); break; // i breve            break; // e dieresis
         case 184: buf.append("\u0327"); break; // cedilla          case 237 :
         case 733: buf.append("\u030b"); break; // hungarumlaut            buf.append("\u00ed");
         case 731: buf.append("\u0328"); break; // ogonek            break; // i acute
         case 711: buf.append("\u030c"); break; // caron          case 236 :
         case 199: buf.append("\u012b\u0303"); break; // imacron tilde            buf.append("\u00ec");
         case 8226: buf.append("\u1e5d"); break; // runderdot macron            break; // i grave
         case 8482: buf.append("\u016b\0306"); break; // umacron breve          case 238 :
         case 8804: buf.append("\u0101\u0301"); break; // amacron acute            buf.append("\u00ee");
         case 8805: buf.append("\u016b\u0301"); break; // umacron acute            break; // i circumflex
         case 8719: buf.append("\u0113\u0301"); break; // emacron acute          case 239 :
         case 170: buf.append("\u0113\u0300"); break; // emacron breve            buf.append("\u00ef");
         case 186: buf.append("\u014d\u0300"); break; // omacron breve            break; // i dieresis
         case 161: buf.append("\u0101\u0306"); break; // amacron breve          case 241 :
         case 8710: buf.append("\u0101\u0303"); break; // amacron tilde            buf.append("\u00f1");
         case 171: buf.append("\u012b\u0301"); break; // imacron acute            break; // n tilde
         case 8260: buf.append("\u1e00"); break; // runderdotmacron acute          case 243 :
         case 183: buf.append("\u1e5b\u0301"); break; // runderdot acute            buf.append("\u00f3");
         case 8240: buf.append("\u012b\u0306"); break; // imacron breve            break; // o acute
         case 63743: buf.append("\u016b\u0303"); break; // umacron tilde          case 242 :
         default: buf.append(c); break;            buf.append("\u00f2");
             break; // o grave
           case 244 :
             buf.append("\u00f4");
             break; // o circumflex
           case 246 :
             buf.append("\u00f6");
             break; // o dieresis
           case 245 :
             buf.append("\u00f5");
             break; // o tilde
           case 250 :
             buf.append("\u00fa");
             break; // u acute
           case 249 :
             buf.append("\u00f9");
             break; // u grave
           case 251 :
             buf.append("\u00fb");
             break; // u circumflex
           case 252 :
             buf.append("\u00fc");
             break; // u dieresis
           case 8224 :
             buf.append("\u1e6d");
             break; // t underdot
           case 176 :
             buf.append("\u00b0");
             break; // degree
           case 162 :
             buf.append("\u1ebd");
             break; // e tilde
           case 163 :
             buf.append("\u00a3");
             break; // sterling
           case 167 :
             buf.append("\u00a7");
             break; // section
           case 182 :
             buf.append("\u00b6");
             break; // paragraph
           case 223 :
             buf.append("\u015b");
             break; // s acute
           case 174 :
             buf.append("\u1e5b");
             break; // r underdot
           case 169 :
             buf.append("\u1e45");
             break; // n overdot
           case 180 :
             buf.append("\u0301");
             break; // acute
           case 168 :
             buf.append("\u0308");
             break; // dieresis
           case 8800 :
             buf.append("\u1e6d");
             break; // t underdot
           case 198 :
             buf.append("\u00c6");
             break; // AE
           case 216 :
             buf.append("\u014d");
             break; // o macron
           case 8734 :
             buf.append("\u0129");
             break; // i tilde
           case 177 :
             buf.append("\u00b1");
             break; // plusminus
           case 165 :
             buf.append("\u012b");
             break; // i macron
           case 181 :
             buf.append("\u1e43");
             break; // m underdot
           case 8706 :
             buf.append("\u1e0d");
             break; // d underdot
           case 8721 :
             buf.append("\u1e63");
             break; // s underdot
           case 960 :
             buf.append("\u017a");
             break; // z acute
           case 8747 :
             buf.append("\u1e45");
             break; // n overdot
           case 937 :
             buf.append("\u0169");
             break; // u tilde
           case 230 :
             buf.append("\u00e6");
             break; // ae
           case 248 :
             buf.append("\u00f8");
             break; // oslash
           case 191 :
             buf.append("\u0304\u0306");
             break; // macron breve
           case 172 :
             buf.append("\u1e37");
             break; // 
           case 8730 :
             buf.append("j\u0305");
             break; // j macron [does a single char exist?]
           case 402 :
             buf.append("\u0103");
             break; // a breve
           case 8776 :
             buf.append("\u016d");
             break; // u breve
           case 187 :
             buf.append("\u1e42");
             break; // M underdot
           case 8230 :
             buf.append("\u2026");
             break; // ellipsis
           case 192 :
             buf.append("\u00c0");
             break; // A grave
           case 195 :
             buf.append("\u00c3");
             break; // A tilde
           case 213 :
             buf.append("\u00d5");
             break; // O tilde
           case 338 :
             buf.append("m\u0306");
             break; // m breve
           case 339 :
             buf.append("\u0153");
             break; // oe
           case 8211 :
             buf.append("\u2013");
             break; // endash
           case 8212 :
             buf.append("\u2014");
             break; // emdash
           case 8220 :
             buf.append("\u201c");
             break; // quotedblleft
           case 8221 :
             buf.append("\u201d");
             break; // quotedblright
           case 8216 :
             buf.append("\u2018");
             break; // quoteleft
           case 8217 :
             buf.append("\u2019");
             break; // quoteright
           case 247 :
             buf.append("\u1e37");
             break; // l underring [actually underdot]
           case 9674 :
             buf.append("\u1e41");
             break; // m overdot
           case 255 :
             buf.append("n\u0306");
             break; // n breve
           case 376 :
             buf.append("\u00d7");
             break; // multiply
           case 8364 :
             buf.append("\u1e5b");
             break; // r underring [actually underdot]
           case 8249 :
             buf.append("\u1e44");
             break; // N overdot
           case 8250 :
             buf.append("\u1e62");
             break; // S underdot
           case 64257 :
             buf.append("\u1e24");
             break; // H underdot
           case 64258 :
             buf.append("\u1e0c");
             break; // D underdot
           case 8225 :
             buf.append("\u2021");
             break; // daggerdbl
           case 8218 :
             buf.append("\u1e36");
             break; // L underdot
           case 8222 :
             buf.append("\u0113");
             break; // e macron
           case 194 :
             buf.append("\u1e5f");
             break; // r underbar
           case 202 :
             buf.append("r\u0324");
             break; // r underdieresis
           case 193 :
             buf.append("\u012a");
             break; // I macron
           case 203 :
             buf.append("\u016b");
             break; // u macron
           case 200 :
             buf.append("\u1e6c");
             break; // T underdot
           case 205 :
             buf.append("\u1e64");
             break; // S acute
           case 206 :
             buf.append("\u2020");
             break; // dagger
           case 207 :
             buf.append("\u0115");
             break; // e breve
           case 204 :
             buf.append("\u014f");
             break; // o breve
           case 211 :
             buf.append("\u0100");
             break; // A macron
           case 212 :
             buf.append("\u1e46");
             break; // N underdot
           case 210 :
             buf.append("\u1e3b");
             break; // l underbar
           case 218 :
             buf.append("\u016a");
             break; // U macron
           case 219 :
             buf.append("\u0179");
             break; // Z acute
           case 217 :
             buf.append("\u1e5a");
             break; // R underdot
           case 305 :
             buf.append("\u0131");
             break; // dotlessi
           case 710 :
             buf.append("\u1e47");
             break; // n underdot
           case 732 :
             buf.append("\u1e49");
             break; // n underbar
           case 175 :
             buf.append("\u0304");
             break; // macron
           case 728 :
             buf.append("\u0306");
             break; // breve
           case 729 :
             buf.append("\u1e25");
             break; // h underdot
           case 730 :
             buf.append("\u012d");
             break; // i breve
           case 184 :
             buf.append("\u0327");
             break; // cedilla
           case 733 :
             buf.append("\u030b");
             break; // hungarumlaut
           case 731 :
             buf.append("\u0328");
             break; // ogonek
           case 711 :
             buf.append("\u030c");
             break; // caron
           case 199 :
             buf.append("\u012b\u0303");
             break; // imacron tilde
           case 8226 :
             buf.append("\u1e5d");
             break; // runderdot macron
           case 8482 :
             buf.append("\u016b\0306");
             break; // umacron breve
           case 8804 :
             buf.append("\u0101\u0301");
             break; // amacron acute
           case 8805 :
             buf.append("\u016b\u0301");
             break; // umacron acute
           case 8719 :
             buf.append("\u0113\u0301");
             break; // emacron acute
           case 170 :
             buf.append("\u0113\u0300");
             break; // emacron breve
           case 186 :
             buf.append("\u014d\u0300");
             break; // omacron breve
           case 161 :
             buf.append("\u0101\u0306");
             break; // amacron breve
           case 8710 :
             buf.append("\u0101\u0303");
             break; // amacron tilde
           case 171 :
             buf.append("\u012b\u0301");
             break; // imacron acute
           case 8260 :
             buf.append("\u1e00");
             break; // runderdotmacron acute
           case 183 :
             buf.append("\u1e5b\u0301");
             break; // runderdot acute
           case 8240 :
             buf.append("\u012b\u0306");
             break; // imacron breve
           case 63743 :
             buf.append("\u016b\u0303");
             break; // umacron tilde
           default :
             buf.append(c);
             break;
       }        }
     }      }
     return buf.toString();      return buf.toString();
Line 2714  class Convert Line 3712  class Convert
     }      }
     return new ConversionProperties(destTableName,fieldNames);      return new ConversionProperties(destTableName,fieldNames);
   }    }
     /**
      * creates an insert into statement for the specified table and given
      * field names 
      * @param destTableName
      * @param fieldNames
      * @return
      */
     public static StringBuffer createInsertCommand(String destTableName, String[] fieldNames)
     {
       StringBuffer command = new StringBuffer();
       command.append("INSERT  INTO ");
       command.append(beanDest.getQC());
       command.append(destTableName); //convertText((String) names.get(tbIndex)));
       command.append(beanDest.getQC());
       command.append(" (");
       for (int i = 0; i < fieldNames.length; i++)
       {
         command.append(fieldNames[i]);
         if (i < fieldNames.length - 1)
           command.append(",");
       }
       command.append(") ");
   
       command.append(" values ( ");
       // add a question marks for every field 
       for (int i = 0; i < bean.getColumnNames().size() - 1; ++i)
         command.append("?,");
       command.append("?)");
       return command;
     }
     public static StringBuffer createUpdateCommand(String destTableName, String[] fieldNames, String id)
     {
       StringBuffer command = new StringBuffer();
   
       command.append("UPDATE ");
       command.append(beanDest.getQC());
       command.append(destTableName);
       //command.append(convertText((String) names.get(tbIndex)));
       command.append(beanDest.getQC());
       command.append(" SET  ");
   
       int size = bean.getColumnNames().size();
       for (int i = 0; i < size - 1; ++i)
         command.append(fieldNames[i] + " = ? ,");
       command.append(fieldNames[size - 1] + " = ? ");
       command.append("WHERE " + id + " =  ?");
       return command;
     }
     public static StringBuffer createDeleteCommand(String destTableName, String idField)
     {
       StringBuffer command = new StringBuffer();
   
       command.append("DELETE FROM");
       command.append(beanDest.getQC());
       command.append(destTableName);
       //command.append(convertText((String) names.get(tbIndex)));
       command.append(beanDest.getQC());
       command.append("WHERE " + idField + " =  ?");
       return  command;
     }
 }  }
   

Removed from v.1.64  
changed lines
  Added in v.1.65


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