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