public virtual void testProcessUsage() { JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); n.setType("fnarf", false); EnumFitsValue testlists = EnumFitsValue.Allowed; EnumValidationLevel level = KElement.EnumValidationLevel.Complete; VElement vExecNodes = devicecap.getExecutableJDF(n, testlists, level); Assert.IsNull(vExecNodes, "missing resources"); JDFLayout lo = (JDFLayout)n.addResource(ElementName.LAYOUT, null, EnumUsage.Input, null, null, null, null); lo.appendContentObject().setCTM(new JDFMatrix("1 0 0 1 0 0")); lo.appendContentObject().setCTM(new JDFMatrix("1 0 0 1 10 20")); JDFRunList rlDoc = (JDFRunList)n.addResource(ElementName.RUNLIST, null, EnumUsage.Input, EnumProcessUsage.Document, null, null, null); vExecNodes = devicecap.getExecutableJDF(n, testlists, level); Assert.IsNotNull(vExecNodes, "no missing resources"); n.addResource(ElementName.RUNLIST, null, EnumUsage.Input, EnumProcessUsage.Marks, null, null, null); vExecNodes = devicecap.getExecutableJDF(n, testlists, level); Assert.IsNotNull(vExecNodes, "no missing resources"); JDFResourceLink rl = n.getLink(rlDoc, null); rl.setUsage(EnumUsage.Output); vExecNodes = devicecap.getExecutableJDF(n, testlists, level); Assert.IsNull(vExecNodes, "no required runlist doc"); rl.setUsage(EnumUsage.Input); vExecNodes = devicecap.getExecutableJDF(n, testlists, level); Assert.IsNotNull(vExecNodes, "no required runlist doc"); JDFDevCaps dcsRLDoc = devicecap.getDevCapsByName("RunList", null, null, EnumProcessUsage.Document, 0); JDFNameState ns = dcsRLDoc.getDevCap().appendNameState("RunTag"); ns.setRequired(true); vExecNodes = devicecap.getExecutableJDF(n, testlists, level); Assert.IsNull(vExecNodes, "incomplete required runlist doc"); ns.setRequired(false); vExecNodes = devicecap.getExecutableJDF(n, testlists, level); Assert.IsNotNull(vExecNodes, "incomplete required runlist doc"); JDFDevCaps dcsRLMarks = devicecap.getDevCapsByName("RunList", null, null, EnumProcessUsage.Marks, 0); JDFNameState nsMarks = dcsRLMarks.getDevCap().appendNameState("PageNames"); nsMarks.setRequired(true); vExecNodes = devicecap.getExecutableJDF(n, testlists, level); Assert.IsNull(vExecNodes, "incomplete required runlist marks"); }
/// /// <summary> * append ResourceLink /// * </summary> /// * <param name="linkName"> name of the ResourceLink to append a link for </param> /// * <param name="bInput"> if true, the link is an input link </param> /// * <returns> JDFResourceLink: the appended element </returns> /// public virtual JDFResourceLink appendResourceLink(string linkName, bool bInput) { string linkNameLocal = linkName; if (!linkNameLocal.EndsWith("Link")) { linkNameLocal += "Link"; } JDFResourceLink rl = null; if (getResourceLink() != null) { throw new JDFException("JDFpipeParams.appendResourceLink tried to append an additional link"); } KElement e = appendElement(linkNameLocal, null); if (e is JDFResourceLink) { rl = (JDFResourceLink)e; rl.setUsage(bInput ? EnumUsage.Input : EnumUsage.Output); } else { throw new JDFException("JDFpipeParams.appendResourceLink tried to return a JDFElement instead of a JDFResourceLink: " + linkNameLocal); } return(rl); }
/// /// <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); }