/**
*
*/
package it.xsemantics.example.fj.typing;
import com.google.inject.Inject;
import it.xsemantics.example.fj.typesystem.fj.FJTypeSystemDefinition;
import it.xtypes.runtime.TypeSystemResult;
import it.xsemantics.example.fj.fj.Class;
import it.xsemantics.example.fj.fj.Type;
/**
* This class is superseded by the generated type system FjTypeSystemDefinition,
* it is here only as a wrapper for FjTypeSystemDefinition, for old unit tests
*
* @author Lorenzo Bettini
*
*/
public class FJSubtyping {
@Inject
FJTypeSystemDefinition typeSystem;
public boolean isSubtype(Type t1, Type t2) {
return isResultTrue(typeSystem.checkSubtype(t1, t2));
}
public boolean isSubtype(Class c1, Class c2) {
return isResultTrue(typeSystem.checkSubtype(c1, c2));
}
protected boolean isResultTrue(TypeSystemResult<Boolean> result) {
return result.getValue() != null && result.getValue();
}
}