// ------ Common stuff static Model createModel( String simClass, String _ownerName, java.awt.Frame _ownerFrame, java.net.URL _codebase) { Model aModel = null; if (_ownerName != null || _codebase != null) { try { // Instantiate a model with the given name and three parameters Class c = Class.forName(simClass); Constructor[] constructors = c.getConstructors(); for (int i = 0; i < constructors.length; i++) { Class[] parameters = constructors[i].getParameterTypes(); if (parameters.length == 3 && parameters[0].isAssignableFrom(_ownerName.getClass()) && parameters[1].isAssignableFrom(_ownerFrame.getClass()) && parameters[2].isAssignableFrom(_codebase.getClass())) { aModel = (Model) constructors[i].newInstance(new Object[] {_ownerName, _ownerFrame, _codebase}); break; } } } catch (Exception exc) { exc.printStackTrace(); aModel = null; } } if (aModel == null) { try { // Now try a simple constructor Class aClass = Class.forName(simClass); aModel = (Model) aClass.newInstance(); } catch (Exception exc) { exc.printStackTrace(); return null; } } return aModel; }