Symbolics.java
package edu.udel.cis.vsl.tass.symbolic;
import edu.udel.cis.vsl.tass.config.RunConfiguration;
import edu.udel.cis.vsl.tass.number.IF.NumberFactoryIF;
import edu.udel.cis.vsl.tass.symbolic.IF.SymbolicUniverseIF;
import edu.udel.cis.vsl.tass.symbolic.ideal.IdealUniverse;
import edu.udel.cis.vsl.tass.symbolic.standard.StandardUniverse;
import edu.udel.cis.vsl.tass.symbolic.type.SymbolicTypeFactory;
public class Symbolics {
public static SymbolicUniverseIF newRealUniverse(
RunConfiguration configuration, NumberFactoryIF numberFactory) {
return new IdealUniverse(configuration, numberFactory);
}
public static SymbolicUniverseIF newStandardUniverse(
RunConfiguration configuration, NumberFactoryIF numberFactory) {
return new StandardUniverse(configuration, numberFactory);
}
/**
* Generates new standard universe that shared the type factory with the
* given universe.
*/
public static SymbolicUniverseIF newStandardUniverse(
RunConfiguration configuration, NumberFactoryIF numberFactory,
SymbolicUniverseIF universe) {
SymbolicTypeFactory typeFactory;
if (universe instanceof IdealUniverse) {
typeFactory = ((IdealUniverse) universe).typeFactory();
} else if (universe instanceof StandardUniverse) {
typeFactory = ((StandardUniverse) universe).typeFactory();
} else {
throw new RuntimeException("Unknown kind of universe: "
+ universe.getClass());
}
return new StandardUniverse(configuration, numberFactory, typeFactory);
}
}