public virtual void testLinkResource() { JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); JDFResource r = n.addResource("Component", null, null, null, null, null, null); Assert.IsTrue(r is JDFComponent); Assert.IsFalse(n.hasChildElement("ResourceLinkPool", null)); JDFResourceLinkPool rlp = n.getCreateResourceLinkPool(); JDFResourceLink rl = rlp.linkResource(r, EnumUsage.Input, EnumProcessUsage.BookBlock); Assert.IsNotNull(rl); Assert.AreEqual(EnumProcessUsage.BookBlock, rl.getEnumProcessUsage()); Assert.AreEqual(EnumUsage.Input, rl.getUsage()); rl = rlp.linkResource(r, EnumUsage.Input, EnumProcessUsage.BookBlock); Assert.IsNotNull(rl, "no two"); rl = rlp.linkResource(r, EnumUsage.Input, EnumProcessUsage.Cover); Assert.IsNotNull(rl); Assert.AreEqual(EnumProcessUsage.Cover, rl.getEnumProcessUsage()); Assert.AreEqual(EnumUsage.Input, rl.getUsage()); rl = rlp.linkResource(r, EnumUsage.Output, EnumProcessUsage.Cover); Assert.IsNotNull(rl); Assert.AreEqual(EnumProcessUsage.Cover, rl.getEnumProcessUsage()); Assert.AreEqual(EnumUsage.Output, rl.getUsage()); JDFResource r2 = n.addResource("foo:bar", EnumResourceClass.Parameter, null, null, null, "www.foo.com", null); rl = rlp.linkResource(r2, EnumUsage.Input, null); Assert.IsNotNull(rl); Assert.AreEqual(EnumUsage.Input, rl.getUsage()); }
/// /// <summary> * sets all relevant parameters of this to the values specified in resourceLink or its linked resource or JDF node /// * </summary> /// * <param name="resourceLink"> the resourceLink to extract the information from </param> /// * <param name="rqp"> parameters </param> /// public virtual void setLink(JDFResourceLink resourceLink, JDFResourceQuParams rqp) { if (resourceLink == null) { return; } JDFAmountPool ap = resourceLink.getAmountPool(); if (ap != null) { copyElement(ap, null); } else { if (resourceLink.hasAttribute(AttributeName.ACTUALAMOUNT)) { setActualAmount(resourceLink.getActualAmount(null)); } if (resourceLink.hasAttribute(AttributeName.AMOUNT)) { setAmount(resourceLink.getAmount(null)); } } setProcessUsage(resourceLink.getEnumProcessUsage()); JDFResource r = resourceLink.getTarget(); if (r == null && rqp != null) { rqp.setExact(false); } bool bExact = rqp == null ? false : rqp.getExact(); if (!bExact || r == null) // if we do not have a resource let's limp // along and provide as much as we have { setResourceName(resourceLink.getLinkedResourceName()); setAttribute(AttributeName.RESOURCEID, resourceLink.getrRef()); EnumUsage usage = resourceLink.getUsage(); if (usage != null) { setAttribute(AttributeName.USAGE, usage.getName()); } if (r != null && r.hasAttribute(AttributeName.PRODUCTID)) { setProductID(r.getProductID()); } } else { // create a copy of the resource in the original jdf JDFResource rr = (JDFResource)r.getParentNode_KElement().copyElement(r, null); rr.inlineRefElements(null, null, true); // move resource copy from the original node into this document moveElement(rr, null); } }
/// /// <summary> * simulate makeReady of this node the internal node will be modified to reflect the makeready all required /// * resources should be available </summary> /// public virtual void makeReady() { if (bExpandGrayBox && EnumType.ProcessGroup.Equals(theNode.getEnumType()) && theNode.hasAttribute(AttributeName.TYPES)) { theExpandedNode = theNode.addCombined(theNode.getTypes()); VElement resLinks = theNode.getResourceLinks(null); if (resLinks != null) { int size = resLinks.Count; for (int i = 0; i < size; i++) { ((JDFResourceLink)resLinks[i]).removeAttribute(AttributeName.COMBINEDPROCESSINDEX); } } initAuditPool(theExpandedNode); theExpandedNode.copyElement(theNode.getResourceLinkPool(), null); } else { theExpandedNode = theNode; } VElement nodeLinks = getNodeLinks(); theStatusCounter.setActiveNode(theExpandedNode, null, nodeLinks); VElement vResLinks = theExpandedNode.getResourceLinks(null); if (vResLinks != null) { int siz = vResLinks.Count; for (int i = 0; i < siz; i++) { JDFResourceLink rl = (JDFResourceLink)vResLinks[i]; if (EnumUsage.Input.Equals(rl.getUsage())) { VElement vRes = rl.getTargetVector(-1); for (int j = 0; j < vRes.Count; j++) { VElement leaves = ((JDFResource)vRes[j]).getLeaves(false); for (int k = 0; k < leaves.Count; k++) { JDFResource r = (JDFResource)leaves[k]; r.setResStatus(EnumResStatus.Available, true); } } } } } }
public virtual void testAppendResourceLink() { JDFDoc doc = new JDFDoc(ElementName.PIPEPARAMS); JDFPipeParams pp = (JDFPipeParams)doc.getRoot(); JDFResourceLink rl = pp.appendResourceLink("Dummy", true); Assert.AreEqual(EnumUsage.Input, rl.getUsage()); try { rl = pp.appendResourceLink("Dummy2", true); Assert.Fail("max 1 rl"); } catch (Exception) { // nop } }
/// /// * <param name="good"> </param> /// * <param name="waste"> </param> /// protected internal void runSinglePhase(int pgood, int pwaste, bool bOutAvail, bool bFirst) { VElement vResLinks = theExpandedNode.getResourceLinks(null); if (vResLinks != null) { int siz = vResLinks.Count; for (int i = 0; i < siz; i++) { int _good = pgood; JDFResourceLink rl = (JDFResourceLink)vResLinks[i]; // only consume input for first set of runs if (!bFirst && EnumUsage.Input.Equals(rl.getUsage())) { _good = 0; } theStatusCounter.addPhase(rl.getrRef(), _good, pwaste, true); } } }
/// /// <summary> * sets all relevant parameters of <code>this</code> to the values specified in resourceLink or its linked resource /// * or JDF node /// * </summary> /// * <param name="resourceLink"> the resourceLink to extract the information from </param> /// public virtual void setLink(JDFResourceLink resourceLink) { if (resourceLink == null) { return; } JDFResource r = resourceLink.getTarget(); JDFNode parentJDF = resourceLink.getParentJDF(); setJDF(parentJDF); setProcessUsage(resourceLink.getEnumProcessUsage()); if (r.hasAttribute(AttributeName.PRODUCTID)) { setProductID(r.getProductID()); } setResourceID(r.getID()); setResourceName(r.LocalName); setUsage(resourceLink.getUsage()); setPartMapVector(resourceLink.getPartMapVector()); }
public virtual void testLinkResourcePartition() { JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); JDFResource r = n.addResource("Component", null, null, null, null, null, null); Assert.IsTrue(r is JDFComponent); r = r.addPartition(EnumPartIDKey.SignatureName, "Sig1"); r.addPartition(EnumPartIDKey.SheetName, "S1"); Assert.IsFalse(n.hasChildElement("ResourceLinkPool", null)); JDFResourceLinkPool rlp = n.getCreateResourceLinkPool(); JDFResourceLink rl = rlp.linkResource(r, EnumUsage.Input, EnumProcessUsage.BookBlock); Assert.IsNotNull(rl); Assert.AreEqual(EnumProcessUsage.BookBlock, rl.getEnumProcessUsage()); Assert.AreEqual(EnumUsage.Input, rl.getUsage()); VJDFAttributeMap v = new VJDFAttributeMap(); v.Add(new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1")); Assert.AreEqual(v, rl.getPartMapVector()); }