public void unrelateAcrossR4202From(Component_c target, boolean notifyChanges) {
    if (target == null) return;

    if (CanBeNestedInComponent == null) return; // already unrelated

    if (target != CanBeNestedInComponent) {
      Exception e = new Exception();
      e.fillInStackTrace();
      CorePlugin.logError("Tried to unrelate from non-related instance across R4202", e);
      return;
    }

    if (target != null) {
      target.clearBackPointerR4202To(this);
    }

    if (CanBeNestedInComponent != null) {

      m_parent_id = CanBeNestedInComponent.getId();
      if (IdAssigner.NULL_UUID.equals(m_parent_id)) {
        m_parent_id = CanBeNestedInComponent.getIdCachedValue();
      }
      CanBeNestedInComponent = null;
      target.removeRef();
      if (notifyChanges) {
        RelationshipChangeModelDelta change =
            new RelationshipChangeModelDelta(
                Modeleventnotification_c.DELTA_ELEMENT_UNRELATED, this, target, "4202", "");
        Ooaofooa.getDefaultInstance().fireModelElementRelationChanged(change);
      }
    }
  }