public virtual void testIsExecutable() { JDFDoc d = new JDFDoc(ElementName.JDF); JDFNode n = d.getJDFRoot(); JDFResource r = n.addResource(ElementName.SCREENINGINTENT, null, EnumUsage.Input, null, null, null, null); JDFResourceLink rl = n.getLink(r, null); r.setResStatus(EnumResStatus.Available, true); Assert.IsTrue(rl.isExecutable(null, true)); r.setResStatus(EnumResStatus.Unavailable, true); Assert.IsFalse(rl.isExecutable(null, true)); r.setResStatus(EnumResStatus.Draft, true); Assert.IsFalse(rl.isExecutable(null, true)); rl.setDraftOK(true); Assert.IsTrue(rl.isExecutable(null, true)); rl.setUsage(EnumUsage.Output); r.setResStatus(EnumResStatus.Available, true); Assert.IsTrue(rl.isExecutable(null, true)); r.setResStatus(EnumResStatus.Unavailable, true); Assert.IsFalse(rl.isExecutable(null, true)); r.setResStatus(EnumResStatus.Draft, true); Assert.IsTrue(rl.isExecutable(null, true)); rl.setDraftOK(true); Assert.IsTrue(rl.isExecutable(null, true)); JDFResource rSig = r.addPartition(EnumPartIDKey.SignatureName, "sig1"); JDFResource rSheet = rSig.addPartition(EnumPartIDKey.SheetName, "sh1"); rSheet.setResStatus(EnumResStatus.Available, false); r.setResStatus(EnumResStatus.Unavailable, true); rSheet.setResStatus(EnumResStatus.Available, true); rl.setUsage(EnumUsage.Input); JDFAttributeMap map = new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig1"); Assert.IsFalse(rl.isExecutable(map, false)); Assert.IsTrue(rl.isExecutable(map, true)); JDFResource rSheet2 = rSig.addPartition(EnumPartIDKey.SheetName, "sh2"); rSheet2.setResStatus(EnumResStatus.Unavailable, false); Assert.IsFalse(rl.isExecutable(map, false)); Assert.IsFalse(rl.isExecutable(map, true)); map.put(EnumPartIDKey.SheetName, "sh1"); Assert.IsTrue(rl.isExecutable(map, false)); Assert.IsTrue(rl.isExecutable(map, true)); rl.appendPart().setPartMap(map); map.put(EnumPartIDKey.SheetName, "sh2"); rl.appendPart().setPartMap(map); map = new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig1"); rSheet2.setResStatus(EnumResStatus.Available, false); Assert.IsTrue(rl.isExecutable(map, false)); Assert.IsTrue(rl.isExecutable(map, true)); }
/// /// <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); } } } } } }