public JvmTypeReference jvmInstanceType(final EObject eObject) {
JvmTypeReference _xblockexpression = null;
{
final PropertiesTestOwner propertiesTestOwner = this.<PropertiesTestOwner>ancestor(eObject, PropertiesTestOwner.class);
if ((propertiesTestOwner instanceof StateFunction)) {
final StateFunction stateFunction = ((StateFunction) propertiesTestOwner);
JvmParameterizedTypeReference _elvis = null;
JvmParameterizedTypeReference _type = stateFunction.getType();
if (_type != null) {
_elvis = _type;
} else {
JvmParameterizedTypeReference _defaultInstanceType = this.defaultInstanceType(eObject);
_elvis = ObjectExtensions.<JvmParameterizedTypeReference>operator_elvis(_type, _defaultInstanceType);