objectId = ArbitraryIdVariable.getInstance() ; System.out.println( objectId + " : Object Created") ;
	public Object( Collection classes ) throws LemRuntimeException {		// Do these classes actually participate in the same inheritance		// hierarchy?                objectId = ArbitraryIdVariable.getInstance() ;                             System.out.println( objectId + " : Object Created") ;                     		if ( !validClasses( classes ) ) {			throw new LemRuntimeException( "Specified class list will not produce a valid Object" );		}				// Maintain a list of classes already instantiated		ArrayList instantiatedClasses = new ArrayList();				for ( Iterator i = classes.iterator(); i.hasNext(); ) {			metamodel.Class theClass = (metamodel.Class) i.next();			Instance inst = new Instance( theClass, this );						// Instantiate all parent classes as well			Collection gens = theClass.getAllGeneralisations().values();						for ( Iterator j = gens.iterator(); j.hasNext() ; ) {				Generalisation g = (Generalisation) j.next();								metamodel.Class superClass = g.getSuperclass();				/* The root class of a generalisation hierarchy can				 * appear in more than one call to "getAllGeneraliations",				 * but we don't want to instantiate it again				 */				if ( instantiatedClasses.contains( superClass ) ) {					continue;				}								instantiatedClasses.add( superClass );				Instance superInst = new Instance( superClass, this );				addInstance( superInst );			}						addInstance( inst );		}	}