EffectQuantum (DataValue value) { if (value == DataValue.ThisDataValue || value == DataValue.OwnedDataValue) { return EffectQuantum.ThisChangeQuantum; } if (value == DataValue.LocalDataValue) { return null; } if (value instanceof DataValue.ParameterDataValue) { return new EffectQuantum.ParamChangeQuantum(((DataValue.ParameterDataValue)value).n); } if (value instanceof DataValue.ReturnDataValue) { return new EffectQuantum.ReturnChangeQuantum(((DataValue.ReturnDataValue)value).key); } return EffectQuantum.TopEffectQuantum; }