コード例 #1
0
ファイル: StatusCounterTest.cs プロジェクト: cip4/JDFLibNet
        public virtual void testWasteAmount()
        {
            VJDFAttributeMap singleMap = new VJDFAttributeMap();

            singleMap.Add(xpMedia.getPartMapVector(false)[0]);

            MISCPGoldenTicket gt = new MISCPGoldenTicket(2, EnumVersion.Version_1_3, 2, 2, false, singleMap);

            gt.good  = 1000;
            gt.waste = 100;
            gt.assign(null);
            n = gt.getNode();
            JDFComponent    c       = (JDFComponent)n.getResource(ElementName.COMPONENT, null, 0);
            JDFMedia        m       = (JDFMedia)n.getResource(ElementName.MEDIA, null, 0);
            JDFResourceLink rl      = n.getLink(c, null);
            JDFResourceLink rlMedia = n.getLink(m, null);
            VElement        vRL     = new VElement();

            vRL.Add(rl);
            vRL.Add(rlMedia);
            sc = new StatusCounter(null, null, null);
            sc.setTrackWaste(rl.getrRef(), true);
            sc.setTrackWaste(rlMedia.getrRef(), true);
            sc.setActiveNode(n, c.getPartMapVector(false), vRL);
            Assert.AreEqual(100, sc.getPlannedWaste(rlMedia.getrRef()), 0);
            Assert.AreEqual(1000, sc.getPlannedAmount(rl.getrRef()), 0);
        }
コード例 #2
0
ファイル: DigiPrintTest.cs プロジェクト: cip4/JDFLibNet
        public virtual void testDirectProof()
        {
            n.setXMLComment("Example workflow with initioal warmup phase, one direct proof and 100 copies of 10 sheets each.\n" + "The direct proof is acceptable and included in the good output");
            digiParams.setDirectProofAmount(1);
            digiParams.setXMLComment("1 initial proof is requested");
            rlComp.setAmount(100, null);
            JDFAuditPool ap = n.getAuditPool();

            VElement vRL = new VElement();

            vRL.Add(rlComp);
            vRL.Add(rlMedia);

            StatusCounter stCounter = new StatusCounter(n, null, vRL);

            stCounter.setDeviceID("MyDevice");
            string mediaRef = rlMedia.getrRef();

            stCounter.setTrackWaste(mediaRef, true);
            string compRef = rlComp.getrRef();

            stCounter.setTrackWaste(compRef, false);

            doc.write2File(sm_dirTestDataTemp + "DigiPrintAmount_initial.jdf", 2, false);

            stCounter.setPhase(EnumNodeStatus.InProgress, "Waste", EnumDeviceStatus.Running, null);
            ap.getLastPhase(null, null).setXMLComment("Phase where warm up waste is produced");
            stCounter.addPhase(mediaRef, 0, 2, true);
            stCounter.addPhase(compRef, 0, 20, true);

            stCounter.setPhase(EnumNodeStatus.InProgress, "Waste", EnumDeviceStatus.Running, null);

            stCounter.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null);
            stCounter.addPhase(mediaRef, 1, 0, true);
            stCounter.addPhase(compRef, 10, 0, true);
            stCounter.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null);
            ap.getLastPhase(null, null).setXMLComment("Phase where 1 proof is produced");

            stCounter.setPhase(EnumNodeStatus.Stopped, "WaitForApproval", EnumDeviceStatus.Stopped, null);
            ap.getLastPhase(null, null).setXMLComment("Phase where the proof is evaluated while the device is stopped");
            stCounter.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null);

            stCounter.addPhase(mediaRef, 99, 0, true);
            stCounter.addPhase(compRef, 990, 0, true);
            stCounter.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null);
            ap.getLastPhase(null, null).setXMLComment("Phase where the 100 copies are produced");

            stCounter.setPhase(EnumNodeStatus.Completed, "Idle", EnumDeviceStatus.Idle, null);
            stCounter.setResourceAudit(mediaRef, EnumReason.ProcessResult);
            doc.write2File(sm_dirTestDataTemp + "DigiPrintProof_final.jdf", 2, false);
        }
コード例 #3
0
ファイル: RIPTest.cs プロジェクト: cip4/JDFLibNet
        public virtual void testReprintJMF()
        {
            testAuditsImageSetting();
            statCounter.setActiveNode(null, null, null);
            string           sheet        = vsSheet.stringAt(1);
            VJDFAttributeMap vmP          = new VJDFAttributeMap();
            JDFAttributeMap  attributeMap = new JDFAttributeMap(EnumPartIDKey.SheetName, sheet);

            attributeMap.put("SignatureName", "Sig1");
            attributeMap.put("Separation", vsCMYK.stringAt(3));
            attributeMap.put("Side", "Front");

            vmP.Add(attributeMap);
            statCounter.setActiveNode(n, vmP, vRL);
            string refXM    = rlXMOut.getrRef();
            string refMedia = rlMediaIn.getrRef();

            statCounter.setTrackWaste(refXM, true);
            statCounter.setTrackWaste(refMedia, false);

            statCounter.setActiveNode(n, vmP, vRL);
            statCounter.setWorkType(EnumWorkType.Rework);
            statCounter.setPhase(EnumNodeStatus.InProgress, "Imaging", EnumDeviceStatus.Running, null);
            statCounter.addPhase(refMedia, 1, 0, true);
            statCounter.addPhase(refXM, 1, 0, true);
            statCounter.setPhase(EnumNodeStatus.InProgress, "Imaging", EnumDeviceStatus.Running, null);
            JDFDoc d2  = statCounter.getDocJMFResource();
            JDFJMF jmf = d2.getJMFRoot();

            jmf.convertResponses(null);
            VElement vSigs = jmf.getMessageVector(JDFMessage.EnumFamily.Signal, JDFMessage.EnumType.Resource);

            d2.write2File(sm_dirTestDataTemp + "ImageSetResourceReprint_.jmf", 2, false);
            JDFDoc dStatusJMF = statCounter.getDocJMFPhaseTime();

            jmf = dStatusJMF.getJMFRoot();
            jmf.convertResponses(null);
            for (int i = 0; i < vSigs.Count; i++)
            {
                jmf.copyElement(vSigs.item(i), null);
            }
            dStatusJMF.write2File(sm_dirTestDataTemp + "ImageSetReprint_.jmf", 2, false);

            // JDFResourceAudit ra=
            statCounter.setResourceAudit(refMedia, EnumReason.ProcessResult);
            // JDFProcessRun pr=
            statCounter.setProcessResult(EnumNodeStatus.Completed);

            d.write2File(sm_dirTestDataTemp + "ImageSetAmount_Reprint.jdf", 2, false);
        }
コード例 #4
0
        ///
        ///	 * <param name="amounts"> </param>
        ///	 * <param name="jmfRes"> </param>
        ///
        private void generateResourceSignal(AmountBag[] amounts, JDFJMF jmfRes)
        {
            if (amounts != null)
            {
                VElement vResResourceInfo = getVResLink(amounts, 3);

                JDFSignal           sig = jmfRes.appendSignal(EnumType.Resource);
                JDFResourceQuParams rqp = sig.appendResourceQuParams();
                rqp.setJDF(m_Node);
                rqp.setExact(false);
                bool bAllExact = true;

                for (int i = 0; i < vResResourceInfo.Count; i++)
                {
                    JDFResourceInfo ri     = sig.appendResourceInfo();
                    JDFResourceLink rl     = (JDFResourceLink)vResResourceInfo[i];
                    LinkAmount      la     = getLinkAmount(rl.getrRef());
                    bool            bExact = la.bCopyResInfo;
                    bAllExact = bAllExact && bExact;
                    rqp.setExact(bExact);
                    ri.setLink(rl, rqp);
                }
                rqp.setExact(bAllExact);
            }
        }
コード例 #5
0
ファイル: JDFResourceInfo.cs プロジェクト: cip4/JDFLibNet
        ///
        ///	 <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);
            }
        }
コード例 #6
0
        ///
        ///	 <summary> * set copying the resource into resourceInfo on or off for the resourcelink rl
        ///	 *  </summary>
        ///	 * <param name="rl"> the resourcelink to the resource to copy </param>
        ///	 * <param name="b"> tracking on or off </param>
        ///
        public virtual void setCopyResInResInfo(JDFResourceLink rl, bool b)
        {
            LinkAmount la = getLinkAmount(rl.getrRef());

            if (la != null)
            {
                la.bCopyResInfo = b;
            }
        }
コード例 #7
0
        ///
        ///	 <summary> * set waste tracking on or off for the resourcelink rl
        ///	 *  </summary>
        ///	 * <param name="rl"> the resourcelink to the resource to track </param>
        ///	 * <param name="b"> tracking on or off </param>
        ///
        public virtual void setTrackWaste(JDFResourceLink rl, bool b)
        {
            LinkAmount la = getLinkAmount(rl.getrRef());

            if (la != null)
            {
                la.bTrackWaste = b;
            }
        }
コード例 #8
0
ファイル: RIPTest.cs プロジェクト: cip4/JDFLibNet
        public override void setUp()
        {
            base.setUp();
            JDFElement.setLongID(false);
            d = new JDFDoc("JDF");

            n = d.getJDFRoot();
            n.appendXMLComment("Example to illustrate JDF 1.3 Base and MIS compatible amount handling", null);
            n.setType(EnumType.Combined);
            inMedia = (JDFMedia)n.addResource(ElementName.MEDIA, null, EnumUsage.Input, null, null, null, null);
            outXM   = (JDFExposedMedia)n.addResource(ElementName.EXPOSEDMEDIA, EnumUsage.Output);
            outXM.refMedia(inMedia);
            n.addTypes(EnumType.Interpreting);
            n.addTypes(EnumType.Rendering);
            n.addTypes(EnumType.ImageSetting);
            n.setJobID("RIP-job");
            rlXMOut   = n.getLink(outXM, null);
            rlMediaIn = n.getLink(inMedia, null);
            inMedia.setProductID("Media-ProductID");
            inMedia.setMediaType(EnumMediaType.Plate);
            inMedia.setMediaTypeDetails("Aluminum");

            vRL = new VElement();
            vRL.Add(rlMediaIn);
            vRL.Add(rlXMOut);

            JDFExposedMedia xmPart = (JDFExposedMedia)outXM.addPartition(EnumPartIDKey.SignatureName, "Sig1");

            vsSheet = new VString("Cover Sheet1 Sheet2", " ");
            vsCMYK  = new VString("Cyan Magenta Yellow Black Spot1", " ");
            VElement v = xmPart.addPartitions(EnumPartIDKey.SheetName, vsSheet);

            for (int i = 0; i < v.Count; i++)
            {
                JDFResource xmPart2 = (JDFResource)v[i];
                xmPart2.getCreatePartition(EnumPartIDKey.Side, "Front", null).addPartitions(EnumPartIDKey.Separation, vsCMYK);
                // xmPart2.getCreatePartition(EnumPartIDKey.Side,"Back",null).
                // addPartitions(EnumPartIDKey.Separation, vsCMYK);
            }
            statCounter = new StatusCounter(n, null, vRL);
            statCounter.setDeviceID("Rip-DeviceID");
            statCounter.setCopyResInResInfo(rlMediaIn.getrRef(), true);
        }
コード例 #9
0
        ///
        ///	 * <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);
                }
            }
        }
コード例 #10
0
ファイル: AmountTest.cs プロジェクト: cip4/JDFLibNet
        public virtual void testAudits()
        {
            testPlannedWasteICS();
            VString vs = new VString("Cover Sheet1 Sheet2", " ");

            VElement vRL = new VElement();

            vRL.Add(rlOut);
            vRL.Add(rlMediaIn);

            for (int j = 0; j < 2; j++)
            {
                bool bMinimal = j == 0;

                for (int i = 0; i < vs.Count; i++)
                {
                    string           sheet = vs.stringAt(i);
                    VJDFAttributeMap vmP   = new VJDFAttributeMap();
                    vmP.Add(new JDFAttributeMap(EnumPartIDKey.SheetName, sheet));
                    StatusCounter stUtil = new StatusCounter(n, vmP, vRL);

                    string refComp  = rlOut.getrRef();
                    string refMedia = rlMediaIn.getrRef();

                    stUtil.setTrackWaste(refComp, true);
                    stUtil.setTrackWaste(refMedia, true);

                    if (i == 0)
                    {
                        stUtil.setPhase(EnumNodeStatus.Stopped, "PowerOn", EnumDeviceStatus.Stopped, "PowerOn");
                    }
                    stUtil.setPhase(EnumNodeStatus.Setup, "FormChange", EnumDeviceStatus.Setup, "FormChange");
                    stUtil.addPhase(refMedia, 0, 200, true);
                    stUtil.addPhase(refComp, 0, 200, true);
                    stUtil.setPhase(EnumNodeStatus.Setup, "FormChange", EnumDeviceStatus.Setup, "FormChange");

                    if (i >= 1 && !bMinimal)
                    {
                        JDFResourceAudit ra = stUtil.setResourceAudit(refMedia, EnumReason.ProcessResult);

                        stUtil.setResourceAudit(refComp, EnumReason.ProcessResult);

                        stUtil.clearAmounts(refMedia);
                        stUtil.addPhase(refMedia, 50, 0, true);
                        JDFResourceAudit ra2 = stUtil.setResourceAudit(refMedia, EnumReason.OperatorInput);
                        ra2.setRef(ra);
                        ra2.setDescriptiveName("manual reset to using only 50 sheets because 100 initially were wastes");
                    }
                    stUtil.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null);
                    stUtil.addPhase(refMedia, 4000, 0, true);
                    stUtil.addPhase(refComp, 4000, 0, true);
                    stUtil.setPhase(EnumNodeStatus.Cleanup, "Washup during processing", EnumDeviceStatus.Cleanup, "Washup");
                    stUtil.setPhase(EnumNodeStatus.InProgress, "Waste", EnumDeviceStatus.Running, null);

                    stUtil.addPhase(refMedia, 0, i == 0 ? 40 : 30, true);
                    stUtil.addPhase(refComp, 0, i == 0 ? 40 : 30, true);
                    stUtil.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null);

                    stUtil.addPhase(refMedia, 1000, 0, true);
                    stUtil.addPhase(refComp, 1000, 0, true);
                    stUtil.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null);
                    stUtil.addPhase(refMedia, i == 0 ? 5200 : 5400, 0, true);
                    stUtil.addPhase(refComp, i == 0 ? 5200 : 5400, 0, true);
                    stUtil.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null);

                    JDFResourceAudit ra_1 = stUtil.setResourceAudit(refMedia, EnumReason.ProcessResult);

                    if (!bMinimal)
                    {
                        stUtil.setResourceAudit(refComp, EnumReason.ProcessResult);

                        stUtil.clearAmounts(refMedia);
                        // Java to C# Conversion - Don't know the purpose of this unreachable code.  Default to the false value since 1 != 0
                        //stUtil.addPhase(refMedia, 1 == 0 ? 10100 : 10200, 0, true);
                        stUtil.addPhase(refMedia, 10200, 0, true);
                        JDFResourceAudit ra2 = stUtil.setResourceAudit(refMedia, EnumReason.OperatorInput);
                        ra2.setRef(ra_1);
                        ra2.setDescriptiveName("manual reset to using only 10200 sheets because 100 initially were  wates");
                    }
                    JDFProcessRun pr = stUtil.setProcessResult(EnumNodeStatus.Completed);
                    pr.setDescriptiveName("we even have the utterly useless ProcessRun");
                }
                if (bMinimal)
                {
                    JDFAuditPool ap     = n.getAuditPool();
                    VElement     audits = ap.getAudits(EnumAuditType.PhaseTime, null, null);
                    for (int i = 0; i < audits.Count; i++)
                    {
                        audits.item(i).deleteNode();
                    }
                }
                d.write2File(sm_dirTestDataTemp + "ConvPrintAmount_" + (bMinimal ? "min" : "full") + ".jdf", 2, false);
            }
        }
コード例 #11
0
ファイル: DigiPrintTest.cs プロジェクト: cip4/JDFLibNet
        public virtual void testAmount()
        {
            rlComp.setAmount(20, null);
            rlComp.setDescriptiveName("The link points to 20 planned and 20 good + 2 Waste brochures");

            JDFMiscConsumable mc = (JDFMiscConsumable)n.appendMatchingResource(ElementName.MISCCONSUMABLE, EnumProcessUsage.AnyInput, null);

            mc.setResStatus(EnumResStatus.Available, false);
            mc.setConsumableType("FooBar");
            mc.setUnit("Fnarfs");
            mc.setDescriptiveName("FooBars are always measured in Fnarfs");
            JDFResourceLink rlmc = n.getLink(mc, null);

            rlmc.setAmount(42, null);
            rlmc.setDescriptiveName("The link points to 42 actual FooBars");

            JDFUsageCounter uc = (JDFUsageCounter)n.appendMatchingResource(ElementName.USAGECOUNTER, EnumProcessUsage.AnyInput, null);

            uc.setResStatus(EnumResStatus.Available, false);
            uc.setCounterTypes(new VString("Click", " "));
            JDFResourceLink rlu = n.getLink(uc, null);

            rlu.setAmount(200, null);
            rlu.setDescriptiveName("The link points to 200 actual clicks");

            rlMedia.setAmount(100, null);
            rlMedia.setDescriptiveName("The link points to 100 actual sheets");

            Thread.Sleep(1000);
            comp.setResStatus(EnumResStatus.Available, true);

            VElement vRL = new VElement();

            vRL.Add(rlComp);
            vRL.Add(rlu);
            vRL.Add(rlMedia);
            vRL.Add(rlmc);
            StatusUtil stUtil = new StatusUtil(n, null, vRL);

            stUtil.setDeviceID("MyDevice");
            stUtil.setTrackWaste(rlMedia, true);
            stUtil.setTrackWaste(rlComp, true);
            stUtil.setCopyResInResInfo(rlu, true);

            doc.write2File(sm_dirTestDataTemp + "DigiPrintAmount_initial.jdf", 2, false);

            AmountBag[] bags = new AmountBag[vRL.Count];
            bags[0] = new AmountBag(rlComp.getrRef());
            bags[1] = new AmountBag(rlu.getrRef());
            bags[2] = new AmountBag(rlMedia.getrRef());
            bags[3] = new AmountBag(rlmc.getrRef());
            stUtil.setPhase(EnumNodeStatus.InProgress, "Waste", EnumDeviceStatus.Running, null, bags);
            JDFDoc docStatusJMF = stUtil.getDocJMFPhaseTime();

            docStatusJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountStatus0.jmf", 2, false);
            JDFDoc docResJMF = stUtil.getDocJMFResource();

            docResJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountResource0.jmf", 2, false);

            bags[0].addPhase(0, 2, true);
            bags[1].addPhase(0, 20, true);
            bags[2].addPhase(0, 10, true);
            bags[3].addPhase(0, 0, true);
            stUtil.setPhase(EnumNodeStatus.InProgress, "Waste", EnumDeviceStatus.Running, null, bags);
            docStatusJMF = stUtil.getDocJMFPhaseTime();
            docStatusJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountStatus1.jmf", 2, false);
            docResJMF = stUtil.getDocJMFResource();
            docResJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountResource1.jmf", 2, false);

            bags[0].addPhase(15, 0, true);
            bags[1].addPhase(150, 0, true);
            bags[2].addPhase(75, 0, true);
            bags[3].addPhase(32, 0, true);
            stUtil.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null, bags);
            docStatusJMF = stUtil.getDocJMFPhaseTime();
            docStatusJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountStatus2.jmf", 2, false);
            docResJMF = stUtil.getDocJMFResource();
            docResJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountResource2.jmf", 2, false);

            bags[0].addPhase(5, 0, false);
            bags[1].addPhase(50, 0, false);
            bags[2].addPhase(25, 0, false);
            bags[3].addPhase(11, 0, false);
            stUtil.setPhase(EnumNodeStatus.InProgress, "Good", EnumDeviceStatus.Running, null, bags);
            docStatusJMF = stUtil.getDocJMFPhaseTime();
            docStatusJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountStatus3.jmf", 2, false);
            docResJMF = stUtil.getDocJMFResource();
            docResJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountResource3.jmf", 2, false);

            bags[0].addPhase(0, 0, true);
            bags[1].addPhase(0, 0, true);
            bags[2].addPhase(0, 0, true);
            bags[3].addPhase(0, 0, true);
            stUtil.setPhase(EnumNodeStatus.Completed, "Idle", EnumDeviceStatus.Idle, null, bags);
            docStatusJMF = stUtil.getDocJMFPhaseTime();
            docStatusJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountStatus4.jmf", 2, false);
            docResJMF = stUtil.getDocJMFResource();
            docResJMF.write2File(sm_dirTestDataTemp + "DigiPrintAmountResource4.jmf", 2, false);

            doc.write2File(sm_dirTestDataTemp + "DigiPrintAmount_final.jdf", 2, false);
        }
コード例 #12
0
ファイル: JDFPipeParams.cs プロジェクト: cip4/JDFLibNet
        ///
        ///	 <summary> * apply the parameters in this to all appropriate resources in parentNode or one of parentNode's children
        ///	 *  </summary>
        ///	 * <param name="parentNode"> the node to search in TODO implement resource handling </param>
        ///
        public virtual void applyPipeToNode(JDFNode parentNode)
        {
            if (parentNode == null)
            {
                return;
            }
            VElement vNodes = parentNode.getvJDFNode(null, null, false);

            int size = vNodes.Count;

            for (int i = 0; i < size; i++)
            {
                JDFNode node = (JDFNode)vNodes[i];
                if (!matchesNode(node))
                {
                    continue;
                }
                JDFElement.EnumNodeStatus status = getStatus(); // TODO: set
                // Status
                node.setStatus(status);

                // final boolean isIncremental = (getUpdateMethod () ==
                // EnumUpdateMethod.Incremental);
                double          dAmount = -1.0;
                JDFResourceLink rl      = getResourceLink();

                if (rl != null)
                {
                    JDFResourceLink rlNode = node.getLink(0, rl.Name, new JDFAttributeMap(AttributeName.RREF, rl.getrRef()), null);
                    if (rlNode == null)
                    {
                        throw new JDFException("Applying pipeparams to inconsistent node: missing resourcelink: " + rl.Name);
                    }

                    VJDFAttributeMap vMap = rl.getPartMapVector();
                    if (vMap == null)
                    {
                        vMap = new VJDFAttributeMap();
                        vMap.Add(null);
                    }
                    for (int j = 0; j < vMap.Count; j++)
                    {
                        JDFAttributeMap map = vMap[j];
                        dAmount = rl.getActualAmount(map);
                        rlNode.setActualAmount(dAmount, map);
                    }
                }
            }
        }
コード例 #13
0
            ///
            ///		 * <param name="bag">
            ///		 * @return </param>
            ///
            public virtual JDFResourceLink updateNodeLink(AmountBag bag)
            {
                JDFResourceLink nodeLink = enclosingInstance.m_Node.getLink(0, null, new JDFAttributeMap(AttributeName.RREF, rl.getrRef()), null);

                if (bag != null)
                {
                    VJDFAttributeMap vMap = new VJDFAttributeMap(enclosingInstance.m_vPartMap);
                    if (vMap.Count == 0)
                    {
                        vMap.Add(new JDFAttributeMap());
                    }
                    if (nodeLink != null)
                    {
                        if (bTrackWaste)
                        {
                            vMap.put(EnumPartIDKey.Condition, "Good");
                            nodeLink.setAmountPoolAttribute(AttributeName.ACTUALAMOUNT, StringUtil.formatDouble(bag.totalAmount), null, vMap);
                            vMap.put(EnumPartIDKey.Condition, "Waste");
                            nodeLink.setAmountPoolAttribute(AttributeName.ACTUALAMOUNT, StringUtil.formatDouble(bag.totalWaste), null, vMap);
                        }
                        else
                        {
                            nodeLink.setAmountPoolAttribute(AttributeName.ACTUALAMOUNT, StringUtil.formatDouble(bag.totalAmount + bag.totalWaste), null, vMap);
                        }
                    }
                }
                return(nodeLink);
            }
コード例 #14
0
 ///
 ///		 <summary> *  </summary>
 ///		 * <param name="rl"> resourceLink to the resource that is being counted </param>
 ///
 public AmountBag(JDFResourceLink rl)
     : this(rl.getrRef())
 {
 }