13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypackage com.mot.dm.dbtool; 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport java.util.*; 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport java.io.*; 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyimport java.util.zip.*; 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypublic class Util { 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static Value[] attStrToArrValue(String[] result_str) { 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Value[] vals = new Value[result_str.length]; 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (int i = 0; i < vals.length; i++) { 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Value val = new Value(result_str[i], i); 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby vals[i] = val; 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return vals; 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static String getIdNameFromRecords(String id, String key) throws 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Exception { 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby int count = 0; 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String tmp; 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String tmp_id = id; 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby boolean isUnique = false; 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Record rec = (Record) Generator.hashXmlRecords.get(key); 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rec == null) { 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return id; 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // add count to the end of id to make it unique. 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby while (!isUnique) { 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby isUnique = true; 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (int i = 0; i < rec.arrIDs.size(); i++) { 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = (String) (rec.arrIDs.get(i)); 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (tmp.equalsIgnoreCase(tmp_id)) { 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby isUnique = false; 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp_id = id + ++count; 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby break; 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return tmp_id; 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void addXmlToRecord(String xml, String key, String id_name, 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String source) throws Exception { 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Record rec = (Record) Generator.hashXmlRecords.get(key); 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (rec == null) { 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rec = new Record(); 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rec.key = key; 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parseKeyToRecord(key, rec); 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // rec.genCompareStr(); 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rec.arrIDs.add(id_name); 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rec.arrXMLs.add(xml); 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ("BROWSER".equalsIgnoreCase(source)) { 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rec.containsBrowser = true; 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else if ("MMS".equalsIgnoreCase(source)) { 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rec.containsMMS = true; 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else if ("JAVA".equalsIgnoreCase(source)) { 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rec.containsJavaApp = true; 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else if ("IM".equalsIgnoreCase(source)) { 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby rec.containsIM = true; 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else { 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby throw new Exception( 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "Error! Unsupported application type during record creation."); 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.hashXmlRecords.put(key, rec); 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //set mnc, mcc, provider_name and prepaid values for a record from combine key 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void parseKeyToRecord(String key, Record record) throws 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Exception { 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby StringTokenizer st = new StringTokenizer(key, ":"); 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (st.countTokens() != 4) { 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby throw new Exception("Error: The key '" + key + "' is wrong."); 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String tmp; 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = st.nextToken().trim(); 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby record.mcc = Integer.parseInt(tmp); 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = st.nextToken().trim(); 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby record.mncLen = tmp.length(); 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby record.mnc = Integer.parseInt(tmp); 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = st.nextToken().trim(); 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby record.operator_name = tmp; 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = st.nextToken().trim(); 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (Const.PREPAID.equalsIgnoreCase(tmp)) { 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby record.account_type = Const.PREPAID_INT; 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else if (Const.POSTPAID.equalsIgnoreCase(tmp)) { 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby record.account_type = Const.POSTPAID_INT; 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else { 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby record.account_type = Const.BOTH_INT; 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //creates xml, wbxml, zip files 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void writeRecordsToFiles() throws Exception { 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String omacp_xml; 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby byte[] omacp_wbxml; 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Iterator keys = Generator.hashXmlRecords.keySet().iterator(); 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby while (keys.hasNext()) { 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String key = (String) keys.next(); 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // create file name 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //String fileGenName = key.replaceAll(":", "_"); ///rem 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //fileGenName = key.replaceAll(" ", "_"); ///rem 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String fileGenName = generateFileNameFromKey(key); 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String fileXml = fileGenName + ".xml"; 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String fileWbxml = fileGenName + ".wbxml"; 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String fileZip = fileGenName + ".zip"; 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby omacp_xml = recordToXml(key); 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby writeFile(fileXml, omacp_xml); 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby WbxmlEncoder encoder = new WbxmlEncoder(); 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //omacp_wbxml = encoder.encode(omacp_xml); //old usage 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby omacp_wbxml = encoder.encode(new File(fileXml)); 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby writeFile(fileWbxml, omacp_wbxml); 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby copyFile(fileXml, Const.WORKING_DIR + Const.PATH_SEP + fileXml); 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby copyFile(fileWbxml, Const.WORKING_DIR + Const.PATH_SEP + fileWbxml); 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (Generator.USE_ZIP) { 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby writeZipFile(fileWbxml, fileZip); 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby copyFile(fileZip, Const.WORKING_DIR + Const.PATH_SEP + fileZip); 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby (new File(fileZip)).delete(); 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby (new File(fileXml)).delete(); 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby (new File(fileWbxml)).delete(); 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static String recordToXml(String key) throws Exception { 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby StringBuffer allXmlForKey = new StringBuffer(); 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Record record = (Record) Generator.hashXmlRecords.get(key); 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (record != null) { 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (int i = 0; i < record.arrXMLs.size(); i++) { 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby allXmlForKey.append( (String) record.arrXMLs.get(i)); 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String validXml = "<wap-provisioningdoc version=\"1.1\">\n" + 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby allXmlForKey.toString() + "</wap-provisioningdoc>\n"; 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return validXml; 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby///############################################################################ 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void sortAllRecordsIntoArray() throws Exception { 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.arraySortedRecords = new Record[Generator.hashXmlRecords.size()]; 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Iterator iterator = Generator.hashXmlRecords.keySet().iterator(); 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Record record; 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby int count = 0; 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby while (iterator.hasNext()) { 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby record = (Record) Generator.hashXmlRecords.get(iterator.next()); 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.arraySortedRecords[count] = record; 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby count++; 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Arrays.sort(Generator.arraySortedRecords); 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void addBitsToTable(BlockTable table, int value, 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby int bitsSize) { 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (int i = bitsSize - 1; i >= 0; i--) { 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby table.data[table.byteCount] |= 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby (value & (1 << i)) != 0 ? 1 << (7 - table.bitCount) : 0; 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby table.bitCount++; 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (table.bitCount == 8) { 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby table.bitCount = 0; 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby table.byteCount++; 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static ArrayList readFile(String path) throws Exception { 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ArrayList arr = new ArrayList(); 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby File f = new File(path); 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (!f.exists()) { 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby throw new Exception("Error: The file " + f.getAbsolutePath() + 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " doesn't exist!"); 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // txt files should be encoded with UTF-16; csv - with UTF-8 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Reader fr = new InputStreamReader(new FileInputStream(f), 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.ENCODING); 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BufferedReader br = new BufferedReader(fr); 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String line; 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby int count = 0; 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby while ( (line = br.readLine()) != null) { 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby count++; 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby line = new String(line.getBytes("UTF-8")); 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby line = line.trim(); 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (line.length() > 0) { 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (Generator.IS_INPUT_TXT_FILE) { //validate and replace tabs with "," 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (line.indexOf(',') >= 0) { 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby throw new Exception("Error: The line#" + count + 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " in the text file " + f.getAbsolutePath() + 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " cannot contains comma ',' as a value."); 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby line = line.replaceAll("\t", ","); 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else if (line.indexOf('\t') >= 0) { 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby throw new Exception("Error: The line#" + count + 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " in the csv file " + f.getAbsolutePath() + 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " contains tabulation as a value."); 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby arr.add(line); 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby br.close(); 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fr.close(); 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return arr; 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby///WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* public static void writeFile(String path, String content) throws 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Exception { 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Writer fw = new OutputStreamWriter(new FileOutputStream(path), "UTF-8"); //Generator.ENCODING 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fw.write(content); 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fw.flush(); 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fw.close(); 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby }*/ 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //old function 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void writeFile(String path, String content) throws Exception { 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby writeFile(path, content.getBytes()); 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void writeFile(String path, byte[] content) throws Exception { 2363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby File f = new File(path); 2373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby FileOutputStream fos = new FileOutputStream(f); 2383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.write(content); 2393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.flush(); 2403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.close(); 2413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void writeDBFile() throws Exception { 2443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby File f = new File(Const.DB_FILE_NAME); 2453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby FileOutputStream fos = new FileOutputStream(f); 2463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // write header 2473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.write(Generator.headerTable.data); 2483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // write operators names table 2493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.write(Generator.operatorsNamesTable.data); 2503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // write carrier index table 2513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.write(Generator.carrierIndexTable.data); 2523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // write applications settings table 2533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.write(Generator.applicationsSettingsTable.data); 2543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.flush(); 2563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.close(); 2573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void deleteFile(String path) { 2603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby File f = new File(path); 2613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (f.exists()) { 2623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby f.delete(); 2633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void writeZipFile(String inputFileName, 2673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String outputZipFileName) throws Exception { 2683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby FileInputStream in = new FileInputStream(inputFileName); 2703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby int wbxmlLen = in.available(); 2713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby byte[] wbxml_content = new byte[wbxmlLen]; 2723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby in.read(wbxml_content); 2733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby in.close(); 2743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Deflater compressor = new Deflater(); 2763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby compressor.setLevel(Deflater.BEST_COMPRESSION); 2773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby compressor.setInput(wbxml_content); 2783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby compressor.finish(); 2793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ByteArrayOutputStream bos = new ByteArrayOutputStream(wbxmlLen); 2813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby byte[] buf = new byte[1024]; 2823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby while (!compressor.finished()) { 2833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby int count = compressor.deflate(buf); 2843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bos.write(buf, 0, count); 2853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bos.close(); 2873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby byte[] wbxml_zip = bos.toByteArray(); 2883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby FileOutputStream fos = new FileOutputStream(outputZipFileName); 2893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.write(wbxml_zip); 2903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.flush(); 2913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.close(); 2923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //System.out.println("in: " + wbxmlLen + " out: " + wbxml_zip.length); 2933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void copyFile(String fromFile, String toFile) throws Exception { 2973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby FileInputStream fis = new FileInputStream(fromFile); 2983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby FileOutputStream fos = new FileOutputStream(toFile); 2993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby byte[] buf = new byte[1024]; 3003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby int i = 0; 3013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby while ( (i = fis.read(buf)) != -1) { 3023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.write(buf, 0, i); 3033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fis != null) { 3053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fis.close(); 3063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fos != null) { 3083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fos.close(); 3093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void deleteDir(String path) throws Exception { 3133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby File f = new File(path); 3143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (f.exists() && f.isDirectory()) { 3153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby File[] files = f.listFiles(); 3163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (int i = 0; i < files.length; i++) { 3173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby files[i].delete(); 3183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby f.delete(); 3203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static String str(String s) { 3243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return (s != null) ? s : ""; 3253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static boolean strToBool(String s) { 3283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby s = (str(s)).toUpperCase(); 3293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (s.equals("YES") || s.equals("TRUE") || s.equals("1")) { 3303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return true; 3313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return false; 3333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static boolean isFileExists(String path) { 3363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return (path == null) ? false : ( (new File(path)).exists()); 3373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // validate input files and set Encoding 3403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static String validateAndSetInputParms() { 3413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String mms = Generator.pathMMSFile; 3423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String browser = Generator.pathBrowserFile; 3433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String java = Generator.pathJavaAppFile; 3443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String im = Generator.pathIMFile; 3453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String fileExtention = ""; 3463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String tmp; 3473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //check that at least one file is presenting 3483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (!isFileExists(mms) && !isFileExists(browser) && !isFileExists(java) && 3493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby !isFileExists(im)) { 3503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return "Error: At least one correct file (mms or browser or java or IM) must be provided !!!"; 3513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //set files type 3533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (mms != null) { 3543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = mms.substring(mms.length() - 4); 3553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fileExtention.length() > 0 && !fileExtention.equals(tmp)) { 3563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return 3573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "Error: All input files should have the same type: txt or csv !!!"; 3583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileExtention = tmp; 3603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (browser != null) { 3623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = browser.substring(browser.length() - 4); 3633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fileExtention.length() > 0 && !fileExtention.equals(tmp)) { 3643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return 3653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "Error: All input files should have the same type: txt or csv !!!"; 3663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileExtention = tmp; 3683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (java != null) { 3703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = java.substring(java.length() - 4); 3713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fileExtention.length() > 0 && !fileExtention.equals(tmp)) { 3723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return 3733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "Error: All input files should have the same type: txt or csv !!!"; 3743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileExtention = tmp; 3763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (im != null) { 3793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = im.substring(im.length() - 4); 3803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fileExtention.length() > 0 && !fileExtention.equals(tmp)) { 3813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return 3823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "Error: All input files should have the same type: txt or csv !!!"; 3833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileExtention = tmp; 3853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fileExtention.equals(".txt")) { 3873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.IS_INPUT_TXT_FILE = true; 3883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.ENCODING = "UTF-16"; 3893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else { 3913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.ENCODING = "UTF-8"; 3923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.IS_INPUT_TXT_FILE = false; 3933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return null; 3953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static String generateFileNameFromKey(String key) throws Exception{ 3983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //byte[] bb = key.getBytes("UTF-8"); 3993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //for (int i = 0; i < bb.length; i++) { 4003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // System.out.print(Integer.toHexString(bb[i]) + " "); 4013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //} 4023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby StringTokenizer st = new StringTokenizer(key, ":"); 4033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby StringBuffer fileName = new StringBuffer(); 4043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String tmp; 4053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = st.nextToken(); //mnc 4063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileName.append(tmp).append("_"); 4073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = st.nextToken(); //mcc 4093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileName.append(tmp).append("_"); 4103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //carrier name... replace unicode to hex if required. 4123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = st.nextToken(); 4133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby byte b; 4143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String hex = ""; 4153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String tmpHex; 4163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby boolean hexRequired = false; 4173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby byte[] bytes = tmp.getBytes(); 4183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (int i = 0; i < bytes.length; i++) { 4193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby b = bytes[i]; 4203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (! ( (b >= 48 && b <= 57) || (b >= 65 && b <= 90) || 4213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby (b >= 97 && b <= 122))) { 4223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby hexRequired = true; 4233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmpHex = Integer.toHexString(((int)b) & 0xff ).toUpperCase(); 4253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby hex += tmpHex; 4263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = (hexRequired) ? hex.replaceAll(" ", "_") : tmp.replaceAll(" ", "_"); //carrier name... 4293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileName.append(tmp).append("_"); 4303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby tmp = st.nextToken(); //payment type 4313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileName.append(tmp); 4323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//System.out.println(">" + fileName.toString() + "<"); 4333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return fileName.toString(); 4343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ///// ================== for test only..... =========================== 4373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby public static void printRecords() { 4383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby for (int i = 0; i < Generator.arraySortedRecords.length; i++) { 4393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby System.out.println( 4403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " mcc=" + Generator.arraySortedRecords[i].mcc + 4413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " mnc=" + Generator.arraySortedRecords[i].mnc + 4423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " mncLen=" + Generator.arraySortedRecords[i].mncLen + 4433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " offset=" + 4443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.arraySortedRecords[i].operator_name_offset + 4453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby " payment=" + 4463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Generator.arraySortedRecords[i].account_type); 4473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 452