made project class loader public + throw exception is mote class could not be loaded

This commit is contained in:
fros4943 2009-11-25 20:47:18 +00:00
parent ac424ca88a
commit 93672649d2
2 changed files with 9 additions and 10 deletions

View file

@ -24,7 +24,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
* $Id: GUI.java,v 1.154 2009/11/25 10:29:21 fros4943 Exp $ * $Id: GUI.java,v 1.155 2009/11/25 20:47:18 fros4943 Exp $
*/ */
package se.sics.cooja; package se.sics.cooja;
@ -302,7 +302,7 @@ public class GUI extends Observable {
private Vector<File> currentProjectDirs = new Vector<File>(); private Vector<File> currentProjectDirs = new Vector<File>();
private ClassLoader projectDirClassLoader; public ClassLoader projectDirClassLoader;
private Vector<Class<? extends MoteType>> moteTypeClasses = new Vector<Class<? extends MoteType>>(); private Vector<Class<? extends MoteType>> moteTypeClasses = new Vector<Class<? extends MoteType>>();
@ -2846,12 +2846,9 @@ public class GUI extends Observable {
/** /**
* Help method that tries to load and initialize a class with given name. * Help method that tries to load and initialize a class with given name.
* *
* @param <N> * @param <N> Class extending given class type
* Class extending given class type * @param classType Class type
* @param classType * @param className Class name
* Class type
* @param className
* Class name
* @return Class extending given class type or null if not found * @return Class extending given class type or null if not found
*/ */
public <N extends Object> Class<? extends N> tryLoadClass( public <N extends Object> Class<? extends N> tryLoadClass(

View file

@ -24,7 +24,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
* $Id: Simulation.java,v 1.54 2009/11/13 08:37:36 fros4943 Exp $ * $Id: Simulation.java,v 1.55 2009/11/25 20:47:19 fros4943 Exp $
*/ */
package se.sics.cooja; package se.sics.cooja;
@ -610,7 +610,9 @@ public class Simulation extends Observable implements Runnable {
if (element.getName().equals("mote")) { if (element.getName().equals("mote")) {
Class<? extends Mote> moteClass = myGUI.tryLoadClass(this, Mote.class, Class<? extends Mote> moteClass = myGUI.tryLoadClass(this, Mote.class,
element.getText().trim()); element.getText().trim());
if (moteClass == null) {
throw new Exception("Could not load mote class: " + element.getText().trim());
}
Mote mote = moteClass.getConstructor((Class[]) null).newInstance((Object[]) null); Mote mote = moteClass.getConstructor((Class[]) null).newInstance((Object[]) null);
if (mote.setConfigXML(this, element.getChildren(), visAvailable)) { if (mote.setConfigXML(this, element.getChildren(), visAvailable)) {
addMote(mote); addMote(mote);