示例#1
0
  public void unrelateAcrossR301From(Graphelement_c target, boolean notifyChanges) {
    if (target == null) return;

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

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

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

    if (IsSupertypeGraphelement != null) {

      m_elementid = IsSupertypeGraphelement.getElementid();
      if (IdAssigner.NULL_UUID.equals(m_elementid)) {
        m_elementid = IsSupertypeGraphelement.getElementidCachedValue();
      }
      IsSupertypeGraphelement = null;
      target.removeRef();
      if (notifyChanges) {
        RelationshipChangeModelDelta change =
            new RelationshipChangeModelDelta(
                Modeleventnotification_c.DELTA_ELEMENT_UNRELATED, this, target, "301", "");
        Ooaofgraphics.getDefaultInstance().fireModelElementRelationChanged(change);
      }
    }
  }
示例#2
0
 private static void addClientClassDependency(ElementSpecification_c es, final String className) {
   ClientClassDependency_c ccd = new ClientClassDependency_c(Ooaofgraphics.getDefaultInstance());
   ccd.relateAcrossR17To(es);
   try {
     ccd.setRepresents(Class.forName(className));
   } catch (ClassNotFoundException ex) {
     ccd.setRepresents(null);
   }
 }
示例#3
0
  // declare transform functions
  public void Dispose() {
    Ooaofgraphics.log.println(
        ILogger.OPERATION, "GraphNode", " Operation entered: Graphnode::Dispose");
    final ModelRoot modelRoot = getModelRoot();
    Graphelement_c v_element = Graphelement_c.getOneDIM_GEOnR301(this);

    if (((v_element != null))) {

      if (v_element != null) {
        v_element.Dispose();
      } else {
        Throwable t = new Throwable();
        t.fillInStackTrace();
        CorePlugin.logError("Attempted to call an operation on a null instance.", t);
      }

    } else {

      Shape_c v_shape = Shape_c.getOneGD_SHPOnR19(this);

      if (((v_shape != null))) {

        this.unrelateAcrossR19From(v_shape);

        if (v_shape != null) {
          v_shape.Dispose();
        } else {
          Throwable t = new Throwable();
          t.fillInStackTrace();
          CorePlugin.logError("Attempted to call an operation on a null instance.", t);
        }
      }

      FloatingText_c v_ctxt = FloatingText_c.getOneGD_CTXTOnR19(this);

      if (((v_ctxt != null))) {

        this.unrelateAcrossR19From(v_ctxt);

        if (v_ctxt != null) {
          v_ctxt.Dispose();
        } else {
          Throwable t = new Throwable();
          t.fillInStackTrace();
          CorePlugin.logError("Attempted to call an operation on a null instance.", t);
        }
      }

      if (delete()) {
        Ooaofgraphics.getDefaultInstance()
            .fireModelElementDeleted(
                new BaseModelDelta(Modeleventnotification_c.DELTA_DELETE, this));
      }
    }
  } // End dispose
示例#4
0
  public void setHeight(float newValue) {
    if (m_height == newValue) {
      return;
    }
    AttributeChangeModelDelta change =
        new AttributeChangeModelDelta(
            Modeleventnotification_c.DELTA_ATTRIBUTE_CHANGE,
            this,
            "Height",
            new Float(m_height),
            new Float(newValue),
            true);

    m_height = newValue;
    Ooaofgraphics.getDefaultInstance().fireModelElementAttributeChanged(change);
  }
  public void setStartingy(float newValue) {
    if (m_startingy == newValue) {
      return;
    }
    AttributeChangeModelDelta change =
        new AttributeChangeModelDelta(
            Modeleventnotification_c.DELTA_ATTRIBUTE_CHANGE,
            this,
            "Startingy",
            new Float(m_startingy),
            new Float(newValue),
            false);

    m_startingy = newValue;
    Ooaofgraphics.getDefaultInstance().fireModelElementAttributeChanged(change);
  }
  // declare transform functions
  public void Dispose() {
    Ooaofgraphics.log.println(
        ILogger.OPERATION, "Element In Move", " Operation entered: ElementInMove::Dispose");
    final ModelRoot modelRoot = getModelRoot();
    GraphicalElement_c v_elem = GraphicalElement_c.getOneGD_GEOnR25(this);

    Model_c v_model = Model_c.getOneGD_MDOnR25(this);

    unrelateAcrossR25From(v_model);
    unrelateAcrossR25From(v_elem);

    if (delete()) {
      Ooaofgraphics.getDefaultInstance()
          .fireModelElementDeleted(new BaseModelDelta(Modeleventnotification_c.DELTA_DELETE, this));
    }
  } // End dispose
示例#7
0
  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);
      }
    }
  }
示例#8
0
 public void setElementid(java.util.UUID newValue) {
   if (newValue != null) {
     if (newValue.equals(m_elementid)) {
       return;
     }
   } else if (m_elementid != null) {
     if (m_elementid.equals(newValue)) {
       return;
     }
   } else {
     return;
   }
   AttributeChangeModelDelta change =
       new AttributeChangeModelDelta(
           Modeleventnotification_c.DELTA_ATTRIBUTE_CHANGE,
           this,
           "Elementid",
           m_elementid,
           newValue,
           true);
   m_elementid = IdAssigner.preprocessUUID(newValue);
   Ooaofgraphics.getDefaultInstance().fireModelElementAttributeChanged(change);
 }
示例#9
0
  private void initializeCanvases() {
    Ooaofgraphics graphicsModelRoot = Ooaofgraphics.getDefaultInstance();
    IExtensionRegistry reg = Platform.getExtensionRegistry();
    IExtensionPoint extPt = reg.getExtensionPoint("org.xtuml.bp.core.editors"); // $NON-NLS-1$
    IExtension[] exts = extPt.getExtensions();
    IPreferenceStore prefStore = CanvasPlugin.getDefault().getPreferenceStore();
    for (int i = 0; i < exts.length; i++) {
      IConfigurationElement[] elems = exts[i].getConfigurationElements();
      for (int j = 0; j < elems.length; j++) {
        if (elems[j].getName().equals("editor")) { // $NON-NLS-1$
          IConfigurationElement[] defs = elems[j].getChildren();
          for (int k = 0; k < defs.length; k++) {
            int value = 0;
            if (defs[k].getName().equals("symbol")) {
              String className = defs[k].getAttribute("class");
              if (!className.equals("")) {
                String symTypDef = defs[k].getAttribute("elemType");
                if (symTypDef != null) {
                  int elemType = getValueFor(symTypDef);
                  String elemName = defs[k].getAttribute("name");
                  ElementSpecification_c es = new ElementSpecification_c(graphicsModelRoot);
                  es.setName(elemName);
                  es.setOoa_type(elemType);
                  IConfigurationElement[] col = defs[k].getChildren("color");
                  if (col != null && col.length > 0) {
                    int r = Integer.parseInt(col[0].getAttribute("r"));
                    int g = Integer.parseInt(col[0].getAttribute("g"));
                    int b = Integer.parseInt(col[0].getAttribute("b"));
                    String clrStr =
                        Integer.toString(r) + "," + Integer.toString(g) + "," + Integer.toString(b);
                    String prefStr = "CanvasPreferencePage." + elemName + ".intColor";
                    prefStore.setDefault(prefStr, clrStr);
                    clrStr = prefStore.getString(prefStr);
                    if (clrStr == null || clrStr.equals("")) {
                      // The preference is not set, set it to the default
                      prefStore.setToDefault(prefStr);
                      clrStr = prefStore.getString(prefStr);
                    }
                    es.setInternal(parseColor(clrStr));
                  } else {
                    es.setHasnointeriorcolor(true);
                    es.setInternal(parseColor("255,255,255"));
                  }
                  try {
                    es.setRepresents(Class.forName(className));
                  } catch (ClassNotFoundException e) {
                    logError("Specified metamodel class not found: ", e);
                  }
                  es.setCreator(defs[k].getAttribute("createMethod"));
                  es.setIconname(defs[k].getAttribute("icon"));
                  String defHStr = defs[k].getAttribute("defaultHeight");
                  String defWStr = defs[k].getAttribute("defaultWidth");
                  if (defHStr != null) {
                    int defH = Integer.parseInt(defHStr);
                    es.setDefaultheight(defH);
                  }
                  if (defWStr != null) {
                    int defW = Integer.parseInt(defWStr);
                    es.setDefaultwidth(defW);
                  }
                  String isFixedAspectStr = defs[k].getAttribute("fixedAspect");
                  if (isFixedAspectStr != null && isFixedAspectStr.equals("true")) {
                    es.setIsfixedaspectratio(true);
                  }
                  String isFixedSizeStr = defs[k].getAttribute("fixedSize");
                  if (isFixedSizeStr != null && isFixedSizeStr.equals("true")) {
                    es.setIsfixedsize(true);
                  }
                  String isAnchorHost = defs[k].getAttribute("isAnchorHost");
                  if (isAnchorHost != null && isAnchorHost.equals("true")) {
                    es.setIsanchorhost(true);
                  }
                  String hasFloatingStr = defs[k].getAttribute("floatingText");
                  if (hasFloatingStr != null && hasFloatingStr.equals("true")) {
                    es.setHasfloatingtext(true);
                  }
                  String layer = defs[k].getAttribute("layer");
                  if (layer != null) {
                    try {
                      es.setLayer(Integer.parseInt(layer));
                    } catch (NumberFormatException e) {
                      logError("Could not parse symbol '" + elemName + "' layer: ", e);
                    }
                  }
                  String antiAliased = defs[k].getAttribute("antiAliased");
                  if (antiAliased != null) {
                    if (antiAliased.equalsIgnoreCase("true")) {
                      es.setAntialiased(true);
                    } else {
                      es.setAntialiased(false);
                    }
                  } else {
                    // default to false until drawing performance is enhanced
                    es.setAntialiased(false);
                  }
                  String isTransparent = defs[k].getAttribute("isTransparent");
                  if (isTransparent != null && isTransparent.equalsIgnoreCase("true")) {
                    es.setIstransparent(true);
                  } else {
                    es.setIstransparent(false);
                  }
                  String creationRule = defs[k].getAttribute("creationRule");
                  if (creationRule != null) {
                    es.setCreationrule(creationRule);
                  } else {
                    es.setCreationrule("manual");
                  }
                  String hasNameCompartment = defs[k].getAttribute("hasNameCompartment");
                  if (hasNameCompartment != null) {
                    if (hasNameCompartment.equalsIgnoreCase("true")) {
                      es.setHasnamecompartment(true);
                    } else es.setHasnamecompartment(false);
                  }

                  // setup element spec subtypes
                  String symbolType = defs[k].getAttribute("symbolType");
                  es.setSymboltype(symbolType);
                  if (symbolType.equalsIgnoreCase("connector")) {
                    ConnectorSpecification_c cs = new ConnectorSpecification_c(graphicsModelRoot);
                    cs.relateAcrossR200To(es);
                  }
                  // setup dependencies
                  addClientClassDependency(es, className);
                  IConfigurationElement[] depends = defs[k].getChildren("dependsOn");
                  for (int d = 0; d < depends.length; ++d) {
                    addClientClassDependency(es, depends[d].getAttribute("class"));
                  }
                  // setup auto resize
                  String causeAutoResize = defs[k].getAttribute("causeAutoResize");
                  if (causeAutoResize != null) {
                    if (causeAutoResize.equalsIgnoreCase("false")) {
                      es.setCauseautoresize(false);
                    }
                  } else {
                    es.setCauseautoresize(true);
                  }
                }
              }
            } // end if element name is Symbol
          }
          for (int k = 0; k < defs.length; k++) {
            int value = 0;
            if (defs[k].getName().equals("defaultFor")) {
              String className = defs[k].getAttribute("class");
              if (!className.equals("")) {
                String mdlTypDef = defs[k].getAttribute("modelType");
                String ooaTypDef = defs[k].getAttribute("ooaType");
                if (mdlTypDef != null && !mdlTypDef.equals("")) {
                  int modelType = getValueFor(mdlTypDef);
                  int ooaType = getValueFor(ooaTypDef);
                  IConfigurationElement[] col = defs[k].getChildren("color");
                  int r = Integer.parseInt(col[0].getAttribute("r"));
                  int g = Integer.parseInt(col[0].getAttribute("g"));
                  int b = Integer.parseInt(col[0].getAttribute("b"));
                  String diagName = defs[k].getAttribute("name");
                  ModelSpecification_c ms = new ModelSpecification_c(graphicsModelRoot);
                  ms.setName(diagName);
                  ms.setModel_type(modelType);
                  ms.setOoa_type(ooaType);
                  String clrStr =
                      Integer.toString(r) + "," + Integer.toString(g) + "," + Integer.toString(b);
                  String prefStr = "CanvasPreferencePage." + diagName + ".bkgColor";
                  prefStore.setDefault(prefStr, clrStr);
                  clrStr = prefStore.getString(prefStr);
                  if (clrStr == null || clrStr.equals("")) {
                    // The preference is not set, set it to the default
                    prefStore.setToDefault(prefStr);
                    clrStr = prefStore.getString(prefStr);
                  }
                  ms.setBackground(parseColor(clrStr));
                  try {
                    ms.setRepresents(Class.forName(className));
                  } catch (ClassNotFoundException e) {
                    logError("Specified metamodel class not found: ", e);
                  }
                  IConfigurationElement[] symbols = defs[k].getChildren("validSymbol");
                  for (int m = 0; m < symbols.length; m++) {
                    final String name = symbols[m].getAttribute("name");
                    final String symbolClassName = symbols[m].getAttribute("class");
                    String symbolOoaTypeDef = symbols[m].getAttribute("elemType");
                    int symbolElemType = -1;
                    if (symbolOoaTypeDef != null) {
                      symbolElemType = getValueFor(symbolOoaTypeDef);
                    }
                    final int finalElemType = symbolElemType;
                    ElementSpecification_c elem =
                        ElementSpecification_c.ElementSpecificationInstance(
                            graphicsModelRoot,
                            new ClassQueryInterface_c() {
                              public boolean evaluate(Object candidate) {
                                boolean result = false;
                                ElementSpecification_c elemSpec =
                                    (ElementSpecification_c) candidate;
                                if (elemSpec.getName().equals(name)) {
                                  result = true;
                                }
                                if (finalElemType != -1) {
                                  if (elemSpec.getOoa_type() == finalElemType) result = true;
                                  else result = false;
                                }
                                if (symbolClassName != null) {
                                  try {
                                    if (elemSpec.getRepresents() == Class.forName(symbolClassName)
                                        && elemSpec.getName().equals(name)) {
                                      result = true;
                                    } else {
                                      result = false;
                                    }
                                  } catch (ClassNotFoundException e) {
                                    logError("Specified metamodel class not found: ", e);
                                  }
                                }
                                return result;
                              }
                            });
                    if (elem != null) {
                      // get the tool category from specification
                      String toolCategory = symbols[m].getAttribute("tool_category");
                      if (toolCategory != null) {
                        elem.setToolcategory(toolCategory);
                      }
                      ElementInModelSpecification_c eims =
                          new ElementInModelSpecification_c(graphicsModelRoot);
                      ms.relateAcrossR11To(eims);
                      elem.relateAcrossR11To(eims);
                    }
                  }
                }
              }
            }
          }
          for (int k = 0; k < defs.length; k++) {
            if (defs[k].getName().equals("symbol")) {
              final String finalName = defs[k].getAttribute("name");
              String symTypDef = defs[k].getAttribute("elemType");
              if (symTypDef != null) {
                final int elemType = getValueFor(symTypDef);
                ElementSpecification_c es =
                    ElementSpecification_c.ElementSpecificationInstance(
                        graphicsModelRoot,
                        new ClassQueryInterface_c() {

                          public boolean evaluate(Object candidate) {
                            ElementSpecification_c es = (ElementSpecification_c) candidate;
                            return es.getName().equals(finalName) && es.getOoa_type() == elemType;
                          }
                        });
                // setup element spec subtypes
                String symbolType = defs[k].getAttribute("symbolType");
                if (symbolType.equalsIgnoreCase("connector")) {
                  ConnectorSpecification_c cs = ConnectorSpecification_c.getOneTS_CSPOnR200(es);
                  IConfigurationElement[] terms = defs[k].getChildren("terminator");
                  for (int l = 0; l < terms.length; l++) {
                    TerminalSpecification_c tms = new TerminalSpecification_c(graphicsModelRoot);
                    tms.setName(terms[l].getAttribute("name"));
                    boolean isStart = terms[l].getAttribute("end").equals("start");
                    if (isStart) {
                      cs.relateAcrossR202To(tms);
                    } else {
                      cs.relateAcrossR203To(tms);
                    }
                    final String symbol = terms[l].getAttribute("symbol");
                    final String symbolClassName = terms[l].getAttribute("symbolClass");
                    ElementSpecification_c els =
                        ElementSpecification_c.ElementSpecificationInstance(
                            graphicsModelRoot,
                            new ClassQueryInterface_c() {
                              public boolean evaluate(Object candidate) {
                                boolean result = false;
                                ElementSpecification_c elemSpec =
                                    (ElementSpecification_c) candidate;
                                if (elemSpec.getName().equals(symbol)) {
                                  result = true;
                                }

                                if (symbolClassName != null) {
                                  try {
                                    if (elemSpec.getRepresents() == Class.forName(symbolClassName)
                                        && (elemSpec.getName().equals(symbol))) {
                                      result = true;
                                    } else {
                                      result = false;
                                    }
                                  } catch (ClassNotFoundException e) {
                                    logError("Specified metamodel class not found: ", e);
                                  }
                                }
                                return result;
                              }
                            });
                    String type = terms[l].getAttribute("type");
                    if (els != null) {
                      if (type.equals("shape")) {
                        ShapeTerminal_c sst = new ShapeTerminal_c(graphicsModelRoot);
                        sst.relateAcrossR201To(tms);
                        ShapeSpecification_c ss = ShapeSpecification_c.getOneTS_SSPOnR200(els);
                        if (ss != null) {
                          sst.relateAcrossR204To(ss);
                        }
                      } else if (type.equals("connector")) {
                        ConnectorTerminal_c cnt = new ConnectorTerminal_c(graphicsModelRoot);
                        cnt.relateAcrossR201To(tms);
                        ConnectorSpecification_c cns =
                            ConnectorSpecification_c.getOneTS_CSPOnR200(els);
                        if (cns != null) {
                          cnt.relateAcrossR205To(cns);
                          String terminatesAt = terms[l].getAttribute("terminatesAt");
                          if (terminatesAt.equals("start")) {
                            cnt.setTerminatesat(End_c.Start);
                          } else if (terminatesAt.equals("middle")) {
                            cnt.setTerminatesat(End_c.Middle);
                          } else if (terminatesAt.equals("end")) {
                            cnt.setTerminatesat(End_c.End);
                          }
                        }
                      }
                    } else if (type.equals("whitespace")) {
                      WhitespaceTerminal_c wst = new WhitespaceTerminal_c(graphicsModelRoot);
                      wst.relateAcrossR201To(tms);
                    }
                    IConfigurationElement[] automaticCreations =
                        terms[l].getChildren("automaticCreation");
                    for (IConfigurationElement automaticCreation : automaticCreations) {
                      final String creationSymbol = automaticCreation.getAttribute("symbol");
                      final String creationSymbolClassName =
                          automaticCreation.getAttribute("symbolClass");
                      els =
                          ElementSpecification_c.ElementSpecificationInstance(
                              graphicsModelRoot,
                              new ClassQueryInterface_c() {
                                public boolean evaluate(Object candidate) {
                                  boolean result = false;
                                  ElementSpecification_c elemSpec =
                                      (ElementSpecification_c) candidate;
                                  if (elemSpec.getName().equals(creationSymbol)) {
                                    result = true;
                                  }

                                  if (creationSymbolClassName != null) {
                                    try {
                                      if (elemSpec.getRepresents()
                                              == Class.forName(creationSymbolClassName)
                                          && (elemSpec.getName().equals(creationSymbol))) {
                                        result = true;
                                      } else {
                                        result = false;
                                      }
                                    } catch (ClassNotFoundException e) {
                                      logError("Specified metamodel class not found: ", e);
                                    }
                                  }
                                  return result;
                                }
                              });
                      if (els != null) {
                        tms.relateAcrossR209To(els);
                      }
                    }
                  }
                } else if (symbolType.equalsIgnoreCase("shape")) {
                  ShapeSpecification_c ss = new ShapeSpecification_c(graphicsModelRoot);
                  ss.relateAcrossR200To(es);

                  NoncontainingShapeSpecification_c ncss =
                      new NoncontainingShapeSpecification_c(graphicsModelRoot);
                  ncss.relateAcrossR208To(ss);
                } else if (symbolType.equalsIgnoreCase("container")) {
                  ShapeSpecification_c ss = new ShapeSpecification_c(graphicsModelRoot);
                  ss.relateAcrossR200To(es);

                  ContainingShapeSpecification_c css =
                      new ContainingShapeSpecification_c(graphicsModelRoot);
                  css.relateAcrossR208To(ss);
                }
              }
            }
          }
        }
      }
    } // end for all extensions
    // Auto reconcile instance left until last to ensure that all
    // symbol specifications that might be referenced are created

    // Here to set the association between ARS and the ES //

    for (int i = 0; i < exts.length; i++) {
      IConfigurationElement[] elems = exts[i].getConfigurationElements();
      for (int j = 0; j < elems.length; j++) {
        if (elems[j].getName().equals("editor")) { // $NON-NLS-1$
          IConfigurationElement[] defs = elems[j].getChildren();
          for (int k = 0; k < defs.length; k++) {
            if (defs[k].getName().equals("symbol")) {
              // setup autoReconcile
              IConfigurationElement[] autoReconcile = defs[k].getChildren("autoReconcile");
              for (int e = 0; e < autoReconcile.length; ++e) {
                AutoReconciliationSpecification_c ars =
                    new AutoReconciliationSpecification_c(graphicsModelRoot);
                ars.setName(autoReconcile[e].getAttribute("name"));
                ars.setCountmethod(autoReconcile[e].getAttribute("countMethod"));
                ars.setElementmethod(autoReconcile[e].getAttribute("elementMethod"));
                ars.setElementexistsmethod(autoReconcile[e].getAttribute("elementExistsMethod"));
                ars.setTemplateelementmethod(
                    autoReconcile[e].getAttribute("templateElementMethod"));
                if (ars.getTemplateelementmethod() == null) {
                  ars.setTemplateelementmethod("");
                }
                ElementSpecification_c scanTarget =
                    locateEsByNameAndClassType(
                        graphicsModelRoot,
                        defs[k].getAttribute("name"),
                        defs[k].getAttribute("class"));
                ars.relateAcrossR29To(scanTarget);
                ElementSpecification_c targetSymbol =
                    locateEsByNameAndClassType(
                        graphicsModelRoot, autoReconcile[e].getAttribute("targetSymbol"), null);
                ars.relateAcrossR31To(targetSymbol);
                String ssSpec = autoReconcile[e].getAttribute("sourceSymbol");
                if (ssSpec != null) {
                  ars.relateAcrossR30To(
                      locateEsByNameAndClassType(graphicsModelRoot, ssSpec, null));
                } else {
                  ars.relateAcrossR30To(targetSymbol);
                }
              }

            } else if (defs[k].getName().equals("defaultFor")) {
              // setup autoReconcile
              IConfigurationElement[] autoReconcile = defs[k].getChildren("autoReconcile");
              for (int e = 0; e < autoReconcile.length; ++e) {
                AutoReconciliationSpecification_c ars =
                    new AutoReconciliationSpecification_c(graphicsModelRoot);
                ars.setName(autoReconcile[e].getAttribute("name"));
                ars.setCountmethod(autoReconcile[e].getAttribute("countMethod"));
                ars.setElementmethod(autoReconcile[e].getAttribute("elementMethod"));
                ars.setElementexistsmethod(autoReconcile[e].getAttribute("elementExistsMethod"));
                ars.setTemplateelementmethod(
                    autoReconcile[e].getAttribute("templateElementMethod"));
                if (ars.getTemplateelementmethod() == null) {
                  ars.setTemplateelementmethod("");
                }
                // ElementSpecification_c scanTarget = locateEsByNameAndClassType(
                // graphicsModelRoot, defs[k].getAttribute("name"), defs[k].getAttribute("class"));
                ModelSpecification_c modelSpec =
                    locateMesByNameAndClassType(
                        graphicsModelRoot,
                        defs[k].getAttribute("name"),
                        defs[k].getAttribute("class"));
                ars.relateAcrossR33To(modelSpec);
                ElementSpecification_c targetSymbol =
                    locateEsByNameAndClassType(
                        graphicsModelRoot,
                        autoReconcile[e].getAttribute("targetSymbol"),
                        autoReconcile[e].getAttribute("class"));
                ars.relateAcrossR31To(targetSymbol);
                String ssSpec = autoReconcile[e].getAttribute("sourceSymbol");
                if (ssSpec != null) {
                  ars.relateAcrossR30To(
                      locateEsByNameAndClassType(graphicsModelRoot, ssSpec, null));
                } else {
                  ars.relateAcrossR30To(targetSymbol);
                }
              }
            }
          }
        }
      }
    }
  }