public void relateAcrossR805To(Variable_c target, boolean notifyChanges) {
    if (target == null) return;

    if (target == ReferencesVariable) return; // already related

    if (ReferencesVariable != target) {

      Object oldKey = getInstanceKey();

      if (ReferencesVariable != null) {

        ReferencesVariable.clearBackPointerR805To(this);

        if (Boolean.valueOf(System.getenv("PTC_MCC_ENABLED")) == true) { // $NON-NLS-1$
          Ooaofooa.log.println(
              ILogger.CONSISTENCY,
              "TransientValueReference_c.relateAcrossR805To(Variable_c target)",
              "Relate performed across R805 from Transient Value Reference to Variable without unrelate of prior instance.");
        }
      }

      ReferencesVariable = target;
      m_var_id = target.getVar_id();
      updateInstanceKey(oldKey, getInstanceKey());
      target.setBackPointerR805To(this);
      target.addRef();
    }
  }
  public boolean delete() {
    boolean result = super.delete();
    boolean delete_error = false;
    String errorMsg =
        "The following relationships were not torn down by the Transient Value Reference.dispose call: ";
    Variable_c testR805Inst = Variable_c.getOneV_VAROnR805(this, false);

    if (testR805Inst != null) {
      delete_error = true;
      errorMsg = errorMsg + "805 ";
    }
    Value_c testR801Inst13 = Value_c.getOneV_VALOnR801(this, false);

    if (testR801Inst13 != null) {
      delete_error = true;
      errorMsg = errorMsg + "801 ";
    }
    if (delete_error == true) {

      if (CorePlugin.getDefault().isDebugging()) {
        Ooaofooa.log.println(ILogger.DELETE, "Transient Value Reference", errorMsg);
      } else {
        Exception e = new Exception();
        e.fillInStackTrace();
        CorePlugin.logError(errorMsg, e);
      }
    }
    return result;
  }
  public static TransientValueReference_c[] getManyV_TVLsOnR805(
      Variable_c target, ClassQueryInterface_c test, boolean loadComponent) {
    if (target == null) return new TransientValueReference_c[0];

    ModelRoot modelRoot = target.getModelRoot();
    Vector matches = new Vector();
    synchronized (target.backPointer_TransientValueReference_R805) {
      for (int i = 0; i < target.backPointer_TransientValueReference_R805.size(); ++i) {
        TransientValueReference_c source =
            (TransientValueReference_c) target.backPointer_TransientValueReference_R805.get(i);
        if (source != null && (test == null || test.evaluate(source))) {

          matches.add(source);
        }
      }
    }

    if (matches.size() > 0) {
      TransientValueReference_c[] ret_set = new TransientValueReference_c[matches.size()];
      matches.copyInto(ret_set);
      return ret_set;
    } else {
      return new TransientValueReference_c[0];
    }
  }
 public static TransientValueReference_c getOneV_TVLOnR805(
     Variable_c target, ClassQueryInterface_c test) {
   if (target != null) {
     return getOneV_TVLOnR805(target.getModelRoot(), target, test);
   }
   return null;
 }
  public void unrelateAcrossR805From(Variable_c target, boolean notifyChanges) {
    if (target == null) return;

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

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

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

    if (ReferencesVariable != null) {

      m_var_id = ReferencesVariable.getVar_id();
      ReferencesVariable = null;
      target.removeRef();
    }
  }
 public boolean evaluate(Object candidate) {
   Variable_c selected = (Variable_c) candidate;
   boolean retval = false;
   retval = (selected.getVar_id().equals(m_p37428));
   return retval;
 }
  public boolean checkConsistency() {
    Ooaofooa.log.println(
        ILogger.OPERATION,
        "Transient Value Reference", //$NON-NLS-1$
        " Operation entered: Transient Value Reference::checkConsistency"); //$NON-NLS-1$
    if (Boolean.valueOf(System.getenv("PTC_MCC_ENABLED")) == false) { // $NON-NLS-1$
      return true;
    }
    ModelRoot modelRoot = getModelRoot();
    boolean retval = true;
    class TransientValueReference_c_test37419_c implements ClassQueryInterface_c {
      TransientValueReference_c_test37419_c(java.util.UUID p37420) {
        m_p37420 = p37420;
      }

      private java.util.UUID m_p37420;

      public boolean evaluate(Object candidate) {
        TransientValueReference_c selected = (TransientValueReference_c) candidate;
        boolean retval = false;
        retval = (selected.getValue_id().equals(m_p37420));
        return retval;
      }
    }

    TransientValueReference_c[] objs37418 =
        TransientValueReference_c.TransientValueReferenceInstances(
            modelRoot, new TransientValueReference_c_test37419_c(getValue_id()));

    if (((objs37418.length) == 0)) {

      if (CorePlugin.getDefault().isDebugging()) {
        Ooaofooa.log.println(
            ILogger.CONSISTENCY,
            "Transient Value Reference", //$NON-NLS-1$
            "Consistency: Object: Transient Value Reference: Cardinality of an identifier is zero. " //$NON-NLS-1$
                + "Actual Value: "
                + Integer.toString(objs37418.length)); // $NON-NLS-1$
      } else {
        Exception e = new Exception();
        CorePlugin.logError(
            "Consistency: Object: Transient Value Reference: Cardinality of an identifier is zero. " //$NON-NLS-1$
                + "Actual Value: " //$NON-NLS-1$
                + Integer.toString(objs37418.length),
            e);
      }
      retval = false;
    }

    if (((objs37418.length) > 1)) {

      if (CorePlugin.getDefault().isDebugging()) {
        Ooaofooa.log.println(
            ILogger.CONSISTENCY,
            "Transient Value Reference", //$NON-NLS-1$
            "Consistency: Object: Transient Value Reference: Cardinality of an identifier is greater than 1. " //$NON-NLS-1$
                + "Actual Value: " //$NON-NLS-1$
                + Integer.toString(objs37418.length)
                + " Value_ID: "
                + "Not Printable"); //$NON-NLS-1$
      } else {
        Exception e = new Exception();
        CorePlugin.logError(
            "Consistency: Object: Transient Value Reference: Cardinality of an identifier is greater than 1. " //$NON-NLS-1$
                + "Actual Value: " //$NON-NLS-1$
                + Integer.toString(objs37418.length)
                + " Value_ID: "
                + "Not Printable",
            e); //$NON-NLS-1$
      }
      retval = false;
    }

    // Transient Value Reference is a subtype in association: rel.Numb = 801
    // The supertype class is: Value
    class Value_c_test37424_c implements ClassQueryInterface_c {
      Value_c_test37424_c(java.util.UUID p37425) {
        m_p37425 = p37425;
      }

      private java.util.UUID m_p37425;

      public boolean evaluate(Object candidate) {
        Value_c selected = (Value_c) candidate;
        boolean retval = false;
        retval = (selected.getValue_id().equals(m_p37425));
        return retval;
      }
    }

    Value_c[] objs37423 = Value_c.ValueInstances(modelRoot, new Value_c_test37424_c(getValue_id()));

    if (((objs37423.length) != 1)) {

      if (CorePlugin.getDefault().isDebugging()) {
        Ooaofooa.log.println(
            ILogger.CONSISTENCY,
            "Transient Value Reference", //$NON-NLS-1$
            "Consistency: Object: Transient Value Reference: Association: 801: Cardinality of a supertype is not equal to 1. " //$NON-NLS-1$
                + "Actual Value: "
                + Integer.toString(objs37423.length)); // $NON-NLS-1$
      } else {
        Exception e = new Exception();
        CorePlugin.logError(
            "Consistency: Object: Transient Value Reference: Association: 801: Cardinality of a supertype is not equal to 1. " //$NON-NLS-1$
                + "Actual Value: " //$NON-NLS-1$
                + Integer.toString(objs37423.length),
            e);
      }
      retval = false;
    }

    // Transient Value Reference is a referring class in association: rel.Numb = 805
    // The participating class is: Variable
    class Variable_c_test37427_c implements ClassQueryInterface_c {
      Variable_c_test37427_c(java.util.UUID p37428) {
        m_p37428 = p37428;
      }

      private java.util.UUID m_p37428;

      public boolean evaluate(Object candidate) {
        Variable_c selected = (Variable_c) candidate;
        boolean retval = false;
        retval = (selected.getVar_id().equals(m_p37428));
        return retval;
      }
    }

    Variable_c[] objs37426 =
        Variable_c.VariableInstances(modelRoot, new Variable_c_test37427_c(getVar_id()));

    // The participant is unconditional
    // The multiplicity of the participant is one
    if (((objs37426.length) != 1)) {

      if (CorePlugin.getDefault().isDebugging()) {
        Ooaofooa.log.println(
            ILogger.CONSISTENCY,
            "Transient Value Reference", //$NON-NLS-1$
            "Consistency: Object: Transient Value Reference: Association: 805: Cardinality of a participant is not equal to 1. " //$NON-NLS-1$
                + "Actual Value: " //$NON-NLS-1$
                + Integer.toString(objs37426.length)
                + " Var_ID: "
                + "Not Printable"); //$NON-NLS-1$
      } else {
        Exception e = new Exception();
        CorePlugin.logError(
            "Consistency: Object: Transient Value Reference: Association: 805: Cardinality of a participant is not equal to 1. " //$NON-NLS-1$
                + "Actual Value: " //$NON-NLS-1$
                + Integer.toString(objs37426.length)
                + " Var_ID: "
                + "Not Printable",
            e); //$NON-NLS-1$
      }
      retval = false;
    }

    return retval;
  }
 public java.util.UUID getVar_id() {
   if (ReferencesVariable != null) {
     return ReferencesVariable.getVar_id();
   }
   return IdAssigner.NULL_UUID;
 }
 public long getVar_idLongBased() {
   if (ReferencesVariable != null) {
     return ReferencesVariable.getVar_idLongBased();
   }
   return 0;
 }
  public void batchRelate(
      ModelRoot modelRoot, boolean relateProxies, boolean notifyChanges, boolean searchAllRoots) {
    InstanceList instances = null;
    ModelRoot baseRoot = modelRoot;

    if (ReferencesVariable == null) {
      // R805
      Variable_c relInst37416 =
          (Variable_c) baseRoot.getInstanceList(Variable_c.class).get(new Object[] {m_var_id});
      // if there was no local element, check for any global elements
      // failing that proceed to check other model roots
      if (relInst37416 == null) {
        relInst37416 =
            (Variable_c)
                Ooaofooa.getDefaultInstance()
                    .getInstanceList(Variable_c.class)
                    .get(new Object[] {m_var_id});
      }
      if (relInst37416 == null && searchAllRoots && !baseRoot.isCompareRoot()) {
        Ooaofooa[] roots = Ooaofooa.getInstances();
        for (int i = 0; i < roots.length; i++) {
          if (roots[i].isCompareRoot()) {
            // never use elements from any compare root
            continue;
          }
          relInst37416 =
              (Variable_c) roots[i].getInstanceList(Variable_c.class).get(new Object[] {m_var_id});
          if (relInst37416 != null) break;
        }
      }
      // synchronized
      if (relInst37416 != null) {
        if (relateProxies || !isProxy() || (inSameComponent(this, relInst37416) && !isProxy())) {
          relInst37416.relateAcrossR805To(this, notifyChanges);
        }
      }
    }

    // R801
    Value_c relInst37417 =
        (Value_c) baseRoot.getInstanceList(Value_c.class).get(new Object[] {m_value_id});
    // if there was no local element, check for any global elements
    // failing that proceed to check other model roots
    if (relInst37417 == null) {
      relInst37417 =
          (Value_c)
              Ooaofooa.getDefaultInstance()
                  .getInstanceList(Value_c.class)
                  .get(new Object[] {m_value_id});
    }
    if (relInst37417 == null && searchAllRoots && !baseRoot.isCompareRoot()) {
      Ooaofooa[] roots = Ooaofooa.getInstances();
      for (int i = 0; i < roots.length; i++) {
        if (roots[i].isCompareRoot()) {
          // never use elements from any compare root
          continue;
        }
        relInst37417 =
            (Value_c) roots[i].getInstanceList(Value_c.class).get(new Object[] {m_value_id});
        if (relInst37417 != null) break;
      }
    }
    // synchronized
    if (relInst37417 != null) {
      if (relateProxies || !isProxy() || (inSameComponent(this, relInst37417) && !isProxy())) {
        relInst37417.relateAcrossR801To(this, notifyChanges);
      }
    }
  }
 public static TransientValueReference_c getOneV_TVLOnR805(
     Variable_c target, boolean loadComponent) {
   return getOneV_TVLOnR805(target.getModelRoot(), target, null, loadComponent);
 }