/// /// <summary> * get a specific layout element /// * </summary> /// * <param name="layout"> </param> /// * <param name="elementName"> </param> /// * <param name="partitionKeyName"> </param> /// * <param name="iSkip"> the index of the element, negative values count backwards from the end </param> /// * <returns> JDFLayout: the element </returns> /// protected internal static JDFLayout getLayoutElement(JDFResource layout, string elementName, string partitionKeyName, int iSkip) { int iSkipLocal = iSkip; JDFLayout s = null; if (JDFLayout.isNewLayout(layout)) { VElement v = layout.getLeaves(true); VElement v2 = new VElement(); for (int i = 0; i < v.Count; i++) { if (v[i].hasAttribute_KElement(partitionKeyName, null, false)) { v2.Add(v[i]); } } v = v2; if (iSkipLocal < 0) { iSkipLocal = v.Count + iSkipLocal; } if (iSkipLocal >= 0 && v.Count > iSkipLocal) { s = (JDFLayout)v[iSkipLocal]; } } else { s = (JDFLayout)layout.getElement(elementName, null, iSkipLocal); } return(s); }
/// /// <summary> * get a vector of specific layout elements /// * </summary> /// * <param name="layout"> </param> /// * <param name="elementName"> </param> /// * <param name="partitionKeyName"> </param> /// * <returns> VElement: the vector of elements </returns> /// protected internal static VElement getLayoutElementVector(JDFResource layout, string elementName, string partitionKeyName) { if (JDFLayout.isNewLayout(layout)) { return(layout.getChildElementVector_JDFElement(ElementName.LAYOUT, null, new JDFAttributeMap(partitionKeyName, (string)null), true, 0, true)); } return(layout.getChildElementVector_JDFElement(elementName, null, null, true, 0, true)); }
public virtual void testBinderySignature() { JDFDoc d = new JDFDoc(ElementName.JDF); JDFNode n = d.getJDFRoot(); JDFResource bs = n.addResource(ElementName.BINDERYSIGNATURE, null, null, null, null, null, null); Assert.AreEqual(EnumResourceClass.Parameter, bs.getResourceClass(), "bs class"); bs = n.addResource(ElementName.BINDERYSIGNATURE, JDFResource.EnumResourceClass.Parameter, null, null, n, null, null); Assert.AreEqual(EnumResourceClass.Parameter, bs.getResourceClass(), "bs class old style"); Assert.IsTrue(bs.validClass()); }
/// /// <summary> * get a specific layout element by name /// * </summary> /// * <param name="layout"> </param> /// * <param name="elementName"> </param> /// * <param name="partitionKeyName"> </param> /// * <param name="objectName"> </param> /// * <returns> JDFLayout: the element </returns> /// protected internal static JDFLayout getLayoutElement(JDFResource layout, string elementName, string partitionKeyName, string objectName) { JDFLayout s = null; if (JDFLayout.isNewLayout(layout)) { s = (JDFLayout)layout.getPartition(new JDFAttributeMap(partitionKeyName, objectName), null); } else { s = (JDFLayout)layout.getChildWithAttribute(elementName, AttributeName.NAME, null, objectName, 0, true); } return(s); }
/// /// <summary> * appends a signature in both old and new Layouts if old: a <code>< Signature></code> element if new: a /// * SignatureName partition leaf </summary> /// * <param name="layout"> </param> /// * <param name="elementName"> </param> /// * <param name="partitionKeyName"> /// * </param> /// * <returns> JDFLayout </returns> /// * <exception cref="JDFException"> </exception> /// protected internal static JDFLayout appendLayoutElement(JDFResource layout, string elementName, string partitionKeyName) { JDFLayout s = null; if (JDFLayout.isNewLayout(layout)) { int n = 1 + numLayoutElements(layout, elementName, partitionKeyName); s = (JDFLayout)layout.addPartition(EnumPartIDKey.getEnum(partitionKeyName), partitionKeyName + Convert.ToString(n)); } else { s = (JDFLayout)layout.appendElement(elementName); } return(s); }
public virtual void testGetLink() { JDFDoc doc = new JDFDoc("JDF"); JDFNode n = doc.getJDFRoot(); JDFResource r = n.addResource("www.foo", EnumResourceClass.Parameter, EnumUsage.Input, null, null, "www.www.com", null); JDFResourceLink rl = n.getLink(r, null); VElement vRL = new VElement(); vRL.Add(rl); JDFAuditPool ap = n.getCreateAuditPool(); JDFPhaseTime pt = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); pt.appendComment().setText("foo"); pt.setLinks(vRL); pt.setStart(new JDFDate()); Assert.AreEqual(rl.ToString(), pt.getLink(0).ToString()); }
/// /// <summary> * get a specific layout element by name, creates it if it does not exist /// * </summary> /// * <param name="layout"> </param> /// * <param name="elementName"> </param> /// * <param name="partitionKeyName"> </param> /// * <param name="objectName"> </param> /// * <returns> JDFLayout: the element </returns> /// * <exception cref="JDFException"> if the location of a newly created element is not well defined </exception> /// protected internal static JDFLayout getCreateLayoutElement(JDFResource layout, string elementName, string partitionKeyName, string objectName) { JDFLayout s = getLayoutElement(layout, elementName, partitionKeyName, objectName); if (s != null) { return(s); } if (JDFLayout.isNewLayout(layout)) { s = (JDFLayout)layout.addPartition(EnumPartIDKey.getEnum(partitionKeyName), objectName); } else { s = (JDFLayout)layout.appendElement(elementName); s.setName(objectName); } return(s); }
/// /// <summary> * add a link to one of the resources /// * </summary> /// * <param name="bNew"> true - new link, false - original link </param> /// * <param name="r"> the resource that was valid before modification </param> /// * <param name="usage"> usage of the resource </param> /// * <returns> the ResourceLink object in the ResourceAudit that points to r </returns> /// public virtual JDFResourceLink addNewOldLink(bool bNew, JDFResource r, EnumUsage usage) { VElement v = getChildElementVector(null, null, null, true, 0, false); int iNew = bNew ? 0 : 1; for (int i = v.Count - 1; i >= 0; i--) { if (!(v[i] is JDFResourceLink)) { v.RemoveAt(i); } } if (v.Count != iNew) { throw new JDFException("JDFResourceLink::AddNewOldLink invalid ResourceAudit"); } JDFResourceLink l = (JDFResourceLink)appendElement(r.getLinkString(), JDFConstants.EMPTYSTRING); l.setTarget(r); l.setUsage(usage); return(l); }
public virtual JDFResourceLink addNewOldLink(bool bNew, JDFResource r, bool bInput) { return(addNewOldLink(bNew, r, bInput ? EnumUsage.Input : EnumUsage.Output)); }
public virtual JDFResourceLink addOldLink(JDFResource r, bool bInput) { return(addNewOldLink(false, r, bInput)); }
/// /// <summary> * get the number of layout elements /// * </summary> /// * <param name="layout"> </param> /// * <param name="elementName"> </param> /// * <param name="partitionKeyName"> </param> /// * <returns> int: number of layout elements </returns> /// protected internal static int numLayoutElements(JDFResource layout, string elementName, string partitionKeyName) { VElement v = getLayoutElementVector(layout, elementName, partitionKeyName); return(v == null ? 0 : v.Count); }