public void unrelateAcrossR39From(DataTypePackage_c target, boolean notifyChanges) { if (target == null) return; if (IsContainedInDataTypePackage == null) return; // already unrelated if (target != IsContainedInDataTypePackage) { Exception e = new Exception(); e.fillInStackTrace(); CorePlugin.logError("Tried to unrelate from non-related instance across R39", e); return; } if (target != null) { target.clearBackPointerR39To(this); } if (IsContainedInDataTypePackage != null) { m_package_id = IsContainedInDataTypePackage.getPackage_id(); if (IdAssigner.NULL_UUID.equals(m_package_id)) { m_package_id = IsContainedInDataTypePackage.getPackage_idCachedValue(); } IsContainedInDataTypePackage = null; target.removeRef(); if (notifyChanges) { RelationshipChangeModelDelta change = new RelationshipChangeModelDelta( Modeleventnotification_c.DELTA_ELEMENT_UNRELATED, this, target, "39", ""); Ooaofooa.getDefaultInstance().fireModelElementRelationChanged(change); } } }