public void relateAcrossR801To(Value_c target, boolean notifyChanges) { if (target == null) return; if (target == IsSupertypeValue) return; // already related if (IsSupertypeValue != target) { Object oldKey = getInstanceKey(); if (IsSupertypeValue != null) { IsSupertypeValue.clearBackPointerR801To(this); if (Boolean.valueOf(System.getenv("PTC_MCC_ENABLED")) == true) { // $NON-NLS-1$ Ooaofooa.log.println( ILogger.CONSISTENCY, "TransientValueReference_c.relateAcrossR801To(Value_c target)", "Relate performed across R801 from Transient Value Reference to Value without unrelate of prior instance."); } } IsSupertypeValue = target; m_value_id = target.getValue_id(); updateInstanceKey(oldKey, getInstanceKey()); target.setBackPointerR801To(this); target.addRef(); } }
public void unrelateAcrossR801From(Value_c target, boolean notifyChanges) { if (target == null) return; if (IsSupertypeValue == null) return; // already unrelated if (target != IsSupertypeValue) { Exception e = new Exception(); e.fillInStackTrace(); CorePlugin.logError("Tried to unrelate from non-related instance across R801", e); return; } if (target != null) { target.clearBackPointerR801To(this); } if (IsSupertypeValue != null) { m_value_id = IsSupertypeValue.getValue_id(); IsSupertypeValue = null; target.removeRef(); } }