blob: 922ffe84696542244609b4bdb53bf5931a07fe83 [file] [log] [blame]
/*
*****************************************************************************
* Copyright (C) 2000-2007, International Business Machines Corporation and *
* others. All Rights Reserved. *
*****************************************************************************
*/
package com.ibm.rbm;
import java.io.*;
import com.ibm.rbm.gui.RBManagerGUI;
import java.util.*;
import java.net.*;
/**
* This is the super class for all importer plug-in classes. As of yet, there
* is little contained in this class.
*
* @author Jared Jackson
* @see com.ibm.rbm.RBManager
*/
public class RBJavaImporter extends RBImporter {
public RBJavaImporter(String title, RBManager rbm, RBManagerGUI gui) {
super(title, rbm, gui);
}
protected void setupFileChooser() {
chooser.setFileFilter(new javax.swing.filechooser.FileFilter(){
public boolean accept(File f) {
if (f.isDirectory()) return true;
if (f.getName().endsWith(".class") && f.getName().indexOf("_") < 0) return true;
return false;
}
public String getDescription() {
return Resources.getTranslation("import_java_file_description");
}
});
}
protected void beginImport() throws IOException {
super.beginImport();
ListResourceBundle base_lrb = null;
URLClassLoader urlLoader = null;
try {
File baseFile = getChosenFile();
URL baseURL = baseFile.toURL();
URL urls[] = new URL[1];
urls[0] = baseURL;
urlLoader = new URLClassLoader(urls);
String baseName = baseFile.getName();
baseName = baseName.substring(0, baseName.indexOf(".class"));
Class baseClass = urlLoader.loadClass(baseName);
base_lrb = (ListResourceBundle)baseClass.newInstance();
} catch (Exception e) {
RBManagerGUI.debugMsg(e.toString());
RBManagerGUI.debugMsg(e.getMessage());
e.printStackTrace(System.err);
}
if (base_lrb != null) {
Enumeration keys = base_lrb.getKeys();
while (keys.hasMoreElements()) {
String key = keys.nextElement().toString();
RBManagerGUI.debugMsg("Resource -> " + key + " = " + base_lrb.getString(key));
}
}
}
}
/*
class myClassLoader extends ClassLoader {
public myClassLoader() {
super();
}
public Class myDefineClass(String name, byte array[], int off, int len) {
return super.defineClass(name, array, off, len);
}
}
*/