public void relateAcrossR301To(Graphelement_c target, boolean notifyChanges) { if (target == null) return; if (target == IsSupertypeGraphelement) return; // already related if (IsSupertypeGraphelement != target) { Object oldKey = getInstanceKey(); if (IsSupertypeGraphelement != null) { IsSupertypeGraphelement.clearBackPointerR301To(this); if (Boolean.valueOf(System.getenv("PTC_MCC_ENABLED")) == true) { // $NON-NLS-1$ Ooaofgraphics.log.println( ILogger.CONSISTENCY, "Graphnode_c.relateAcrossR301To(Graphelement_c target)", "Relate performed across R301 from GraphNode to GraphElement without unrelate of prior instance."); } } IsSupertypeGraphelement = target; if (IdAssigner.NULL_UUID.equals(target.getElementid())) { // do not update cached value } else { // update cached value m_elementid = target.getElementidCachedValue(); } updateInstanceKey(oldKey, getInstanceKey()); target.setBackPointerR301To(this); target.addRef(); if (notifyChanges) { RelationshipChangeModelDelta change = new RelationshipChangeModelDelta( Modeleventnotification_c.DELTA_ELEMENT_RELATED, this, target, "301", ""); Ooaofgraphics.getDefaultInstance().fireModelElementRelationChanged(change); } } }