public static TypeCompatibilityObligation newInstance(PExp exp,
			PType etype, PType atype, IPOContextStack ctxt,
			IPogAssistantFactory assistantFactory) throws AnalysisException
	{

		TypeCompatibilityObligation sto = new TypeCompatibilityObligation(exp, etype, atype, ctxt, assistantFactory);
		if (sto.getValueTree() != null)
		{
			return sto;
		}

		return null;
	}
public static TypeCompatibilityObligation newInstance ( PExp exp , PType etype , PType atype , IPOContextStack ctxt , IPogAssistantFactory assistantFactory ) throws AnalysisException { TypeCompatibilityObligation sto = new TypeCompatibilityObligation ( exp , etype , atype , ctxt , assistantFactory ) ; if ( sto . getValueTree ( ) != null ) { return sto ; } return null ; }
Factory Method since we need to return null STOs (which should be discarded

@param exp
The expression to be checked
@param etype
The expected type
@param atype
The actual type
@param ctxt
Context Information
@param assistantFactory
@return
@throws AnalysisException