Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        ///
        ///	 <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);
                            }
                        }
                    }
                }
            }
        }