12e5b6d6dSopenharmony_ci/* 22e5b6d6dSopenharmony_ci ***************************************************************************** 32e5b6d6dSopenharmony_ci * Copyright (C) 2000-2007, International Business Machines Corporation and * 42e5b6d6dSopenharmony_ci * others. All Rights Reserved. * 52e5b6d6dSopenharmony_ci ***************************************************************************** 62e5b6d6dSopenharmony_ci */ 72e5b6d6dSopenharmony_cipackage com.ibm.rbm; 82e5b6d6dSopenharmony_ci 92e5b6d6dSopenharmony_ci 102e5b6d6dSopenharmony_ciimport java.io.*; 112e5b6d6dSopenharmony_ci 122e5b6d6dSopenharmony_ciimport com.ibm.rbm.gui.RBManagerGUI; 132e5b6d6dSopenharmony_ci 142e5b6d6dSopenharmony_ciimport java.util.*; 152e5b6d6dSopenharmony_ciimport java.net.*; 162e5b6d6dSopenharmony_ci 172e5b6d6dSopenharmony_ci/** 182e5b6d6dSopenharmony_ci * This is the super class for all importer plug-in classes. As of yet, there 192e5b6d6dSopenharmony_ci * is little contained in this class. 202e5b6d6dSopenharmony_ci * 212e5b6d6dSopenharmony_ci * @author Jared Jackson 222e5b6d6dSopenharmony_ci * @see com.ibm.rbm.RBManager 232e5b6d6dSopenharmony_ci */ 242e5b6d6dSopenharmony_cipublic class RBJavaImporter extends RBImporter { 252e5b6d6dSopenharmony_ci 262e5b6d6dSopenharmony_ci public RBJavaImporter(String title, RBManager rbm, RBManagerGUI gui) { 272e5b6d6dSopenharmony_ci super(title, rbm, gui); 282e5b6d6dSopenharmony_ci } 292e5b6d6dSopenharmony_ci 302e5b6d6dSopenharmony_ci protected void setupFileChooser() { 312e5b6d6dSopenharmony_ci chooser.setFileFilter(new javax.swing.filechooser.FileFilter(){ 322e5b6d6dSopenharmony_ci public boolean accept(File f) { 332e5b6d6dSopenharmony_ci if (f.isDirectory()) return true; 342e5b6d6dSopenharmony_ci if (f.getName().endsWith(".class") && f.getName().indexOf("_") < 0) return true; 352e5b6d6dSopenharmony_ci return false; 362e5b6d6dSopenharmony_ci } 372e5b6d6dSopenharmony_ci 382e5b6d6dSopenharmony_ci public String getDescription() { 392e5b6d6dSopenharmony_ci return Resources.getTranslation("import_java_file_description"); 402e5b6d6dSopenharmony_ci } 412e5b6d6dSopenharmony_ci }); 422e5b6d6dSopenharmony_ci } 432e5b6d6dSopenharmony_ci 442e5b6d6dSopenharmony_ci protected void beginImport() throws IOException { 452e5b6d6dSopenharmony_ci super.beginImport(); 462e5b6d6dSopenharmony_ci ListResourceBundle base_lrb = null; 472e5b6d6dSopenharmony_ci URLClassLoader urlLoader = null; 482e5b6d6dSopenharmony_ci try { 492e5b6d6dSopenharmony_ci File baseFile = getChosenFile(); 502e5b6d6dSopenharmony_ci URL baseURL = baseFile.toURL(); 512e5b6d6dSopenharmony_ci URL urls[] = new URL[1]; 522e5b6d6dSopenharmony_ci urls[0] = baseURL; 532e5b6d6dSopenharmony_ci urlLoader = new URLClassLoader(urls); 542e5b6d6dSopenharmony_ci String baseName = baseFile.getName(); 552e5b6d6dSopenharmony_ci baseName = baseName.substring(0, baseName.indexOf(".class")); 562e5b6d6dSopenharmony_ci 572e5b6d6dSopenharmony_ci Class baseClass = urlLoader.loadClass(baseName); 582e5b6d6dSopenharmony_ci base_lrb = (ListResourceBundle)baseClass.newInstance(); 592e5b6d6dSopenharmony_ci } catch (Exception e) { 602e5b6d6dSopenharmony_ci RBManagerGUI.debugMsg(e.toString()); 612e5b6d6dSopenharmony_ci RBManagerGUI.debugMsg(e.getMessage()); 622e5b6d6dSopenharmony_ci e.printStackTrace(System.err); 632e5b6d6dSopenharmony_ci } 642e5b6d6dSopenharmony_ci if (base_lrb != null) { 652e5b6d6dSopenharmony_ci Enumeration keys = base_lrb.getKeys(); 662e5b6d6dSopenharmony_ci while (keys.hasMoreElements()) { 672e5b6d6dSopenharmony_ci String key = keys.nextElement().toString(); 682e5b6d6dSopenharmony_ci RBManagerGUI.debugMsg("Resource -> " + key + " = " + base_lrb.getString(key)); 692e5b6d6dSopenharmony_ci } 702e5b6d6dSopenharmony_ci } 712e5b6d6dSopenharmony_ci } 722e5b6d6dSopenharmony_ci} 732e5b6d6dSopenharmony_ci 742e5b6d6dSopenharmony_ci/* 752e5b6d6dSopenharmony_ciclass myClassLoader extends ClassLoader { 762e5b6d6dSopenharmony_ci public myClassLoader() { 772e5b6d6dSopenharmony_ci super(); 782e5b6d6dSopenharmony_ci } 792e5b6d6dSopenharmony_ci 802e5b6d6dSopenharmony_ci public Class myDefineClass(String name, byte array[], int off, int len) { 812e5b6d6dSopenharmony_ci return super.defineClass(name, array, off, len); 822e5b6d6dSopenharmony_ci } 832e5b6d6dSopenharmony_ci} 842e5b6d6dSopenharmony_ci*/ 85