Exemple #1
0
        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);
        }
Exemple #2
0
        ///
        ///     <summary> *  </summary>
        ///
        protected internal virtual JDFColorIntent initColorIntent(JDFNode node, int front, int back, string coatings)
        {
            JDFColorIntent ci  = (JDFColorIntent)node.addResource(ElementName.COLORINTENT, EnumUsage.Input);
            VElement       vci = new VElement();

            nCols[0] = front;
            nCols[1] = back;
            if (front != back && back != 0)
            {
                vci.Add(ci.addPartition(EnumPartIDKey.Side, EnumSide.Front));
                vci.Add(ci.addPartition(EnumPartIDKey.Side, EnumSide.Back));
            }
            else
            {
                vci.Add(ci);
            }

            for (int i = 0; i < vci.Count; i++)
            {
                int     colors  = i == 0 ? front : back;
                VString newCols = new VString();
                for (int j = 0; j < colors; j++)
                {
                    newCols.Add(cols[j]);
                }
                JDFColorIntent cip = (JDFColorIntent)vci[i];
                cip.appendColorsUsed().setSeparations(newCols);
            }
            ci.setResStatus(EnumResStatus.Available, false);
            ci.preferredToActual();
            return(ci);
        }
Exemple #3
0
        ///
        ///	 * <param name="resLink">
        ///	 * @return </param>
        ///
        private VElement getVResLink(AmountBag[] amounts, int n)
        {
            if (amounts == null && vLinkAmount == null)
            {
                return(null);
            }
            if (vLinkAmount == null || amounts == null || vLinkAmount.Length != amounts.Length)
            {
                throw new JDFException("incoherent resLink sizes");
            }
            VElement vRet = new VElement();

            for (int i = 0; i < vLinkAmount.Length; i++)
            {
                LinkAmount la = vLinkAmount[i];
                if (n == 1)
                {
                    vRet.Add(la.getPhaseTimeLink(getBag(la.rl.getrRef(), amounts)));
                }
                if (n == 2)
                {
                    vRet.Add(la.updateNodeLink(getBag(la.rl.getrRef(), amounts)));
                }
                if (n == 3)
                {
                    vRet.Add(la.getResourceInfoLink(getBag(la.rl.getrRef(), amounts)));
                }
            }
            return(vRet);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        ///
        ///	 <summary> * get a specific layout element
        ///	 *  </summary>
        ///	 * <param name="layout"> </param>
        ///	 * <param name="elementName"> </param>
        ///	 * <param name="partitionKeyName"> </param>
        ///	 * <param name="iSkip"> the index of the element, negative values count backwards from the end </param>
        ///	 * <returns> JDFLayout: the element </returns>
        ///
        protected internal static JDFLayout getLayoutElement(JDFResource layout, string elementName, string partitionKeyName, int iSkip)
        {
            int iSkipLocal = iSkip;

            JDFLayout s = null;

            if (JDFLayout.isNewLayout(layout))
            {
                VElement v  = layout.getLeaves(true);
                VElement v2 = new VElement();
                for (int i = 0; i < v.Count; i++)
                {
                    if (v[i].hasAttribute_KElement(partitionKeyName, null, false))
                    {
                        v2.Add(v[i]);
                    }
                }
                v = v2;
                if (iSkipLocal < 0)
                {
                    iSkipLocal = v.Count + iSkipLocal;
                }

                if (iSkipLocal >= 0 && v.Count > iSkipLocal)
                {
                    s = (JDFLayout)v[iSkipLocal];
                }
            }
            else
            {
                s = (JDFLayout)layout.getElement(elementName, null, iSkipLocal);
            }
            return(s);
        }
Exemple #6
0
        ///
        ///	 <summary> * gets the matching elements in node that match this devcaps
        ///	 *  </summary>
        ///	 * <param name="node">
        ///	 *            the node to search in </param>
        ///	 * <returns> VElement - the element vector of matching elements,
        ///	 *         <code>null</code> if none were found </returns>
        ///
        public virtual VElement getMatchingElementsFromJMF(JDFMessage messageElement)
        {
            string      nam     = getName();
            EnumContext context = getContext();

            if (!EnumContext.JMF.Equals(context) && !EnumContext.Element.Equals(context))
            {
                return(null);
            }
            VElement vElem;

            if (ElementName.JMF.Equals(nam))
            {
                vElem = new VElement();
                vElem.Add(messageElement.getParentNode_KElement());
            }
            else if (messageElement.LocalName.Equals(nam))
            {
                vElem = new VElement();
                vElem.Add(messageElement);
            }
            else
            {
                vElem = messageElement.getChildElementVector(nam, null, null, true, 0, false);

                if (vElem != null && vElem.Count == 0)
                {
                    vElem = null;
                }
            }
            return(vElem);
        }
Exemple #7
0
        ///
        ///	 <summary> * @return </summary>
        ///
        protected internal virtual VElement getNodeLinks()
        {
            VElement nodeLinks = null;

            if (amountLinks != null)
            {
                nodeLinks = new VElement();
                VElement resLinks = theExpandedNode.getResourceLinks(null);
                if (resLinks != null)
                {
                    int resLinkSize = resLinks.Count;
                    for (int i = 0; i < amountLinks.Count; i++)
                    {
                        for (int j = 0; j < resLinkSize; j++)
                        {
                            JDFResourceLink rl = (JDFResourceLink)resLinks[j];
                            if (rl.matchesString(amountLinks[i]))
                            {
                                nodeLinks.Add(rl);
                            }
                        }
                    }
                }
            }

            return(nodeLinks);
        }
Exemple #8
0
        ///
        ///	 <summary> * Get the linked resources matching some conditions
        ///	 *  </summary>
        ///	 * <param name="mResAtt"> map of Resource attributes to search for </param>
        ///	 * <param name="bFollowRefs"> true if internal references shall be followed </param>
        ///	 * <returns> vector with all elements matching the conditions default: GetLinkedResources(new JDFAttributeMap(),
        ///	 *         false) </returns>
        ///
        public virtual VElement getLinkedResources(JDFAttributeMap mResAtt, bool bFollowRefs)
        {
            VElement vChild = getChildElementVector(null, null, null, true, 99999, false);
            VElement vElem  = new VElement();

            for (int i = 0; i < vChild.Count; i++)
            {
                JDFResource r    = null;
                object      elem = vChild[i];
                if ((elem is JDFRefElement))
                {
                    JDFRefElement l = (JDFRefElement)elem;
                    r = l.getLinkRoot(null);
                }
                else if (elem is JDFResource)
                {
                    r = (JDFResource)elem;
                }
                if (r != null && r.includesAttributes(mResAtt, true))
                {
                    vElem.Add(r); // vElem.push_back(r);
                    if (bFollowRefs)
                    {
                        vElem.appendUnique(r.getvHRefRes(bFollowRefs, true));
                    }
                }
            }

            return(vElem);
        }
Exemple #9
0
        ///
        ///	 <summary> * Get a vector of PartAmounts which are supersets of the filter defined by mPart<br>
        ///	 * i.e. mPart is a submap of all returned elements
        ///	 *  </summary>
        ///	 * <param name="mPart"> filter vector for the part to set the status
        ///	 *  </param>
        ///	 * <returns> VElement - the vector of PartAmount elements that fit, null if nothing matches </returns>
        ///
        public virtual VElement getMatchingPartAmountVector(JDFAttributeMap mPart)
        {
            VElement vPartAmount = getChildElementVector(ElementName.PARTAMOUNT, null, null, true, 0, false);
            int      size        = vPartAmount.Count;

            if (size == 0)
            {
                return(null);
            }
            VElement vPA = new VElement();

            for (int i = 0; i < size; i++)
            {
                JDFPartAmount    ps = (JDFPartAmount)vPartAmount[i];
                VJDFAttributeMap mm = ps.getPartMapVector();
                for (int j = 0; j < mm.Count; j++)
                {
                    JDFAttributeMap m = mm[j];
                    if (m.subMap(mPart))
                    {
                        vPA.Add(ps);
                        break;
                    }
                }
            }
            return(vPA.Count == 0 ? null : vPA);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        public virtual VElement getSurfaceVector(JDFAttributeMap mAttrib, bool bAnd)
        {
            VElement myResource = new VElement();
            VElement vElem      = getChildElementVector(ElementName.SURFACE, null, mAttrib, bAnd, 0, true);

            for (int i = 0; i < vElem.Count; i++)
            {
                JDFElement k            = (JDFElement)vElem[i];
                JDFSurface myJDFSurface = (JDFSurface)k;
                myResource.Add(myJDFSurface);
            }
            return(myResource);
        }
Exemple #12
0
        public virtual VElement getLocVector(JDFAttributeMap mAttrib, bool bAnd)
        {
            VElement myResource = new VElement();
            VElement vElem      = getChildElementVector("Loc", null, mAttrib, bAnd, 0, true);

            for (int i = 0; i < vElem.Count; i++)
            {
                JDFElement k        = (JDFElement)vElem[i];
                JDFLoc     myJDFLoc = (JDFLoc)k;
                myResource.Add(myJDFLoc);
            }
            return(myResource);
        }
Exemple #13
0
        public virtual VElement getPartAmountVector(VJDFAttributeMap vmPart, bool bCreate)
        {
            VElement vPartAmount = new VElement();

            for (int i = 0; i < vmPart.Count; i++)
            {
                JDFPartAmount ps = getPartAmount(vmPart[i], bCreate);
                if (ps != null)
                {
                    vPartAmount.Add(ps);
                }
            }
            return(vPartAmount);
        }
Exemple #14
0
        ///
        ///	 <summary> * gets the vector of all placed objects that reside directly in this
        ///	 * partition retains the order of marks and content
        ///	 *  </summary>
        ///	 * <returns> the vector of placedobjects, null if none were found </returns>
        ///
        public virtual VElement getPlacedObjectVector()
        {
            VElement v = new VElement();
            XmlNode  n = FirstChild;

            while (n != null)
            {
                if (n is IPlacedObject)
                {
                    v.Add((KElement)n);
                }
                n = n.NextSibling;
            }
            return(v.Count == 0 ? null : v);
        }
Exemple #15
0
        ///
        ///	 <summary> * return the ResourceLink in <code>this</code>, null if none exists
        ///	 *  </summary>
        ///	 * <param name="iSkip"> the n'th resourceLink to retrieve </param>
        ///	 * <returns> JDFResourceLink - this phaseTimes ResourceLink </returns>
        ///
        public virtual VElement getLinkVector()
        {
            KElement e    = getFirstChildElement();
            VElement vRet = new VElement();

            while (e != null)
            {
                if (e is JDFResourceLink)
                {
                    vRet.Add(e);
                }
                e = e.getNextSiblingElement();
            }
            return(vRet.Count == 0 ? null : vRet);
        }
Exemple #16
0
        ///
        ///	 <summary> * getCreatePartStatusVector - get a vector of PartStatus that fits to the filter defined by mPart
        ///	 *  </summary>
        ///	 * <param name="mPart"> the filter vector for the part to set the status
        ///	 *  </param>
        ///	 * <returns> VElement - vector of JDFPartStatus </returns>
        ///
        public virtual VElement getCreatePartStatusVector(ArrayList vmPart)
        {
            VElement vPartStatus = new VElement();

            for (int i = 0; i < vmPart.Count; i++)
            {
                JDFPartStatus ps = getCreatePartStatus((JDFAttributeMap)vmPart[i]);

                if (ps != null)
                {
                    vPartStatus.Add(ps);
                }
            }

            return(vPartStatus);
        }
Exemple #17
0
        ///
        ///	 <summary> * get matching part status vector
        ///	 *  </summary>
        ///	 * <param name="JDFAttributeMap"> mPart </param>
        ///	 * <returns> VElement - vector of JDFPartStatus </returns>
        ///
        public virtual VElement getMatchingPartStatusVector(JDFAttributeMap mPart)
        {
            VElement vPartStatus = getChildElementVector(ElementName.PARTSTATUS, null, null, true, 0, false);
            VElement vPS         = new VElement();

            for (int i = 0; i < vPartStatus.Count; i++)
            {
                JDFPartStatus   ps      = (JDFPartStatus)vPartStatus[i];
                JDFAttributeMap mapPart = ps.getPartMap();

                if (mapPart.subMap(mPart))
                {
                    vPS.Add(ps); // mPart is a subset of of mapPart
                }
            }
            return(vPS);
        }
Exemple #18
0
        public virtual void testGetLink()
        {
            JDFDoc          doc = new JDFDoc("JDF");
            JDFNode         n   = doc.getJDFRoot();
            JDFResource     r   = n.addResource("www.foo", EnumResourceClass.Parameter, EnumUsage.Input, null, null, "www.www.com", null);
            JDFResourceLink rl  = n.getLink(r, null);
            VElement        vRL = new VElement();

            vRL.Add(rl);

            JDFAuditPool ap = n.getCreateAuditPool();
            JDFPhaseTime pt = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null);

            pt.appendComment().setText("foo");
            pt.setLinks(vRL);
            pt.setStart(new JDFDate());
            Assert.AreEqual(rl.ToString(), pt.getLink(0).ToString());
        }
Exemple #19
0
        ///
        ///	 <summary> * finds all status messages in a jmf and fills the phaseTime with the appropriate data
        ///	 *  </summary>
        ///	 * <param name="jmf"> </param>
        ///	 * <returns> vector the vector of all modified phasetime elements </returns>
        ///
        public virtual VElement setPhase(JDFJMF jmf)
        {
            VElement vMessages = jmf.getMessageVector(null, EnumType.Status);

            if (vMessages == null)
            {
                return(null);
            }
            VElement vRet = new VElement();

            for (int i = 0; i < vMessages.Count; i++)
            {
                JDFMessage status   = (JDFMessage)vMessages[i];
                VElement   devInfos = status.getChildElementVector(ElementName.DEVICEINFO, null, null, true, 0, true);
                for (int j = 0; j < devInfos.Count; j++)
                {
                    JDFDeviceInfo devInfo = (JDFDeviceInfo)devInfos[j];
                    VElement      phases  = devInfo.getChildElementVector(ElementName.JOBPHASE, null, null, true, 0, true);
                    for (int k = 0; k < phases.Count; k++)
                    {
                        JDFJobPhase phase = (JDFJobPhase)phases[k];
                        string      jobID = phase.getJobID();
                        if (!jobID.Equals(getParentJDF().getJobID(true)))
                        {
                            continue;
                        }
                        string jobPartID = phase.getJobPartID();
                        if (!jobPartID.Equals(getParentJDF().getJobPartID(true)))
                        {
                            continue;
                        }

                        JDFPhaseTime pt = setPhase(phase.getStatus(), phase.getStatusDetails(), phase.getPartMapVector(), devInfo.getChildElementVector(ElementName.EMPLOYEE, null));
                        pt.copyElement(phase.getMISDetails(), null);
                        pt.setEnd(jmf.getTimeStamp());
                        pt.setStart(phase.getPhaseStartTime());
                        vRet.Add(pt);
                    }
                }
            }
            vRet.unify();
            return(vRet.Count == 0 ? null : vRet);
        }
Exemple #20
0
        ///
        ///	 <summary> * getPartStatusVector - get a vector of PartStatus that fits to the filter defined by mPart
        ///	 *  </summary>
        ///	 * <param name="mPart"> the filter vector for the part to set the status.If null, return all.
        ///	 *  </param>
        ///	 * <returns> VElement - the vector of PartStatus that fit </returns>
        ///
        public virtual VElement getPartStatusVector(ArrayList vmPart)
        {
            if (vmPart == null)
            {
                return(getChildElementVector(ElementName.PARTSTATUS, null, null, true, -1, false));
            }

            VElement vPartStatus = new VElement();

            for (int i = 0; i < vmPart.Count; i++)
            {
                JDFPartStatus ps = getPartStatus((JDFAttributeMap)vmPart[i]);

                if (ps != null)
                {
                    vPartStatus.Add(ps);
                }
            }
            return(vPartStatus);
        }
Exemple #21
0
        ///
        ///	 <summary> * gets a vector of all terms
        ///	 *  </summary>
        ///	 * <returns> VElement - vector of JDFTerm </returns>
        ///
        public virtual VElement getTermVector(EnumTerm term)
        {
            if (term != null)
            {
                return(getChildElementVector(term.getName(), null, null, true, 0, false));
            }

            VElement v = new VElement();
            KElement e = getFirstChildElement();

            while (e != null)
            {
                if (e is JDFTerm)
                {
                    v.Add(e);
                }
                e = e.getNextSiblingElement();
            }
            return(v); // if no subelements, then no context
        }
Exemple #22
0
        ///
        ///	 <summary> * return all deviceCap elements that correspond to testRoot
        ///	 *  </summary>
        ///	 * <param name="testRoot"> the JDF or JMF to test
        ///	 *  </param>
        ///	 * <returns> VElement - the list of matching devicecap nodes, null if none found
        ///	 *  </returns>
        ///
        public virtual VElement getMatchingDeviceCapVector(JDFNode testRoot, bool bLocal)
        {
            VElement vDeviceCap = getChildElementVector(ElementName.DEVICECAP, null, null, false, -1, false);

            if (vDeviceCap == null || vDeviceCap.IsEmpty())
            {
                return(null);
            }
            VElement vRet = new VElement();

            for (int i = 0; i < vDeviceCap.Count; i++)
            {
                JDFDeviceCap dc = (JDFDeviceCap)vDeviceCap[i];
                if (dc.matchesType(testRoot, bLocal))
                {
                    vRet.Add(dc);
                }
            }
            return(vRet.IsEmpty() ? null : vRet);
        }
Exemple #23
0
        ///
        ///	 * <param name="m_moduleid"> the list of module ids to add, if null: nop </param>
        ///	 * <returns> the list of ModulePhase element </returns>
        ///	 * <exception cref="IllegalArgumentException"> if the vectors have different lengths </exception>
        ///
        public virtual VElement setModules(VString moduleIDs, VString moduleTypes)
        {
            if (moduleIDs == null || moduleIDs.Count == 0)
            {
                return(null);
            }
            if (moduleTypes == null || moduleTypes.Count == 0 || moduleTypes.Count != moduleIDs.Count)
            {
                throw new ArgumentException("Inconsistent vector lengths");
            }
            VElement v = new VElement();

            for (int i = 0; i < moduleIDs.Count; i++)
            {
                JDFModulePhase modulePhase = getCreateModulePhase(i);
                v.Add(modulePhase);
                modulePhase.setModuleID(moduleIDs.stringAt(i));
                modulePhase.setModuleType(moduleTypes.stringAt(i));
            }
            return(v);
        }
Exemple #24
0
        ///
        ///	 <summary> * get the linked resources matching some conditions
        ///	 *  </summary>
        ///	 * <param name="mResAtt"> map of Resource attributes to search for </param>
        ///	 * <param name="bFollowRefs"> true if internal references shall be followed </param>
        ///	 * <returns> VElement vector with all elements matching the conditions
        ///	 *
        ///	 *         default: getLinkedResources(null, true) </returns>
        ///
        public virtual VElement getLinkedResources(JDFAttributeMap mResAtt, bool bFollowRefs)
        {
            VString refs = getHRefs(null, false, true);

            refs.unify();
            VElement v = new VElement();

            for (int i = 0; i < refs.Count; i++)
            {
                KElement e = getTarget(refs[i], AttributeName.ID);
                if (e != null && e.includesAttributes(mResAtt, true))
                {
                    v.Add(e);
                    if (bFollowRefs && (e is JDFElement))
                    {
                        v.appendUnique(((JDFElement)e).getvHRefRes(bFollowRefs, true));
                    }
                }
            }
            return(v);
        }
Exemple #25
0
        public virtual void testSetPhase()
        {
            JDFPhaseTime p1 = myAuditPool.setPhase(EnumNodeStatus.Setup, null, null, null);

            Assert.IsNotNull(p1);
            Assert.AreEqual(1, myAuditPool.getChildElementVector(ElementName.PHASETIME, null, null, true, 0, true).Count);
            JDFPhaseTime p2 = myAuditPool.setPhase(EnumNodeStatus.Setup, "foobar", null, null);

            Assert.IsNotNull(p2);
            Assert.AreNotEqual(p1, p2);
            Assert.AreEqual(2, myAuditPool.getChildElementVector(ElementName.PHASETIME, null, null, true, 0, true).Count);
            p2 = myAuditPool.setPhase(EnumNodeStatus.Setup, "foobar", null, null);
            Assert.IsNotNull(p2);
            Assert.AreEqual(2, myAuditPool.getChildElementVector(ElementName.PHASETIME, null, null, true, 0, true).Count);
            p2 = myAuditPool.setPhase(EnumNodeStatus.Ready, "foobar", null, null);
            Assert.IsNotNull(p2);
            Assert.AreEqual(3, myAuditPool.getChildElementVector(ElementName.PHASETIME, null, null, true, 0, true).Count);
            p1 = myAuditPool.setPhase(EnumNodeStatus.InProgress, null, null, null);
            Assert.IsNotNull(p1);
            Assert.AreEqual(4, myAuditPool.getChildElementVector(ElementName.PHASETIME, null, null, true, 0, true).Count);
            p2 = myAuditPool.setPhase(EnumNodeStatus.InProgress, null, null, null);
            Assert.IsNotNull(p2);
            Assert.AreEqual(p1, p2);
            Assert.AreEqual(4, myAuditPool.getChildElementVector(ElementName.PHASETIME, null, null, true, 0, true).Count);
            VElement    vEmpl = new VElement();
            JDFEmployee emp   = (JDFEmployee) new JDFDoc(ElementName.EMPLOYEE).getRoot();

            emp.setPersonalID("p1");
            vEmpl.Add(emp);
            p2 = myAuditPool.setPhase(EnumNodeStatus.InProgress, null, null, vEmpl);
            Assert.IsNotNull(p2);
            Assert.AreNotEqual(p1, p2);
            Assert.IsTrue(p2.getEmployee(0).isEqual(emp));
            emp.setPersonalID("p2");
            p2 = myAuditPool.setPhase(EnumNodeStatus.InProgress, null, null, vEmpl);
            Assert.IsNotNull(p2);
            Assert.AreNotEqual(p1, p2);
            Assert.AreEqual("p2", p2.getEmployee(0).getPersonalID());
        }
Exemple #26
0
        ///
        ///	 <summary> * generate a JDF 1.2 compatible Layout from this (1.3)
        ///	 *  </summary>
        ///	 * <returns> bool true if successful
        ///	 *  </returns>
        ///
        public virtual bool fromNewLayout()
        {
            // TODO: fix content object placement
            VElement vLO  = getChildElementVector_JDFElement(ElementName.LAYOUT, null, new JDFAttributeMap("SignatureName", ""), false, 0, false);
            VElement vSig = new VElement();

            if (vLO.IsEmpty())
            {
                JDFSignature signature = (JDFSignature)appendElement(ElementName.SIGNATURE);
                signature.setName("Sig_00");
                vSig.Add(signature);
                moveElementsTo((JDFLayout)signature);
            }
            else
            {
                JDFSignature sig = null;
                for (int i = 0; i < vLO.Count; i++)
                {
                    JDFElement lo = (JDFElement)vLO[i];
                    sig = null;
                    if (lo.hasAttribute(AttributeName.SIGNATURENAME))
                    {
                        lo.renameAttribute(AttributeName.SIGNATURENAME, AttributeName.NAME, null, null);
                        sig = (JDFSignature)lo.renameElement(ElementName.SIGNATURE, null);
                        sig.cleanResourceAttributes();
                        vSig.Add(sig);
                    }
                    else
                    {
                        if (vSig.IsEmpty())
                        {
                            JDFSignature signature = (JDFSignature)appendElement(ElementName.SIGNATURE);
                            signature.setName("Sig_00");
                            vSig.Add(sig);
                        }
                    }
                    if (sig != null)
                    {
                        moveElement(sig, null);
                    }
                }
            }
            int nSheet = 0;

            for (int iSig = 0; iSig < vSig.Count; iSig++)
            {
                JDFSignature sig = (JDFSignature)vSig[iSig];
                vLO = sig.getChildElementVector_JDFElement(ElementName.LAYOUT, null, new JDFAttributeMap("SheetName", ""), false, 0, false);
                VElement vSheet = new VElement();
                if (vLO.IsEmpty())
                {
                    nSheet++;
                    JDFSheet sheet = (JDFSheet)sig.appendElement(ElementName.SHEET);
                    sheet.setName("Sheet_" + Convert.ToString(nSheet));
                    vSheet.Add(sheet);
                    ((JDFLayout)sig).moveElementsTo((JDFLayout)sheet);
                }
                else
                {
                    JDFSheet sheet = null;
                    for (int i = 0; i < vLO.Count; i++)
                    {
                        sheet = null;
                        JDFElement lo = (JDFElement)vLO[i];
                        if (lo.hasAttribute(AttributeName.SHEETNAME))
                        {
                            lo.renameAttribute(AttributeName.SHEETNAME, AttributeName.NAME, null, null);
                            sheet = (JDFSheet)lo.renameElement(ElementName.SHEET, null);
                            sheet.cleanResourceAttributes();
                            vSheet.Add(sheet);
                            nSheet++;
                        }
                        else
                        {
                            if (vSheet.IsEmpty())
                            {
                                nSheet++;
                                sheet = (JDFSheet)sig.appendElement(ElementName.SHEET);
                                sheet.setName("Sheet_" + Convert.ToString(nSheet));
                                vSheet.Add(sheet);
                            }
                            if (sheet != null)
                            {
                                sheet.moveElement(lo, null);
                            }
                        }
                    }
                }

                for (int iSheet = 0; iSheet < vSheet.Count; iSheet++)
                {
                    JDFSheet sheet = (JDFSheet)vSheet[iSheet];
                    vLO = sheet.getChildElementVector_JDFElement(ElementName.LAYOUT, null, new JDFAttributeMap("Side", ""), false, 0, false);
                    if (vLO.IsEmpty())
                    {
                        JDFSurface surf = (JDFSurface)sheet.appendElement(ElementName.SURFACE);
                        surf.setSide(EnumSide.Front);
                        ((JDFLayout)sheet).moveElementsTo((JDFLayout)surf);
                    }
                    else
                    {
                        for (int i = 0; i < vLO.Count; i++)
                        {
                            JDFSurface surface = (JDFSurface)vLO[i];
                            //C# renameElement only returns the renamed element.
                            surface = (JDFSurface)surface.renameElement(ElementName.SURFACE, null);
                            EnumSide sid = surface.getSide();
                            surface.cleanResourceAttributes();
                            surface.setSide(sid);
                        }
                    }
                }
            }
            removeFromAttribute(AttributeName.PARTIDKEYS, AttributeName.SIGNATURENAME, null, JDFConstants.BLANK, -1);
            removeFromAttribute(AttributeName.PARTIDKEYS, AttributeName.SHEETNAME, null, JDFConstants.BLANK, -1);
            removeFromAttribute(AttributeName.PARTIDKEYS, AttributeName.SIDE, null, JDFConstants.BLANK, -1);
            return(true);
        }
Exemple #27
0
        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);
            }
        }
Exemple #28
0
        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);
        }
Exemple #29
0
 //
 //		 * (non-Javadoc)
 //		 *
 //		 * @see
 //		 * org.cip4.jdflib.util.QueueHotFolderListener#submitted(org.cip4.jdflib
 //		 * .jmf.JDFJMF)
 //
 public virtual void submitted(JDFJMF submissionJMF)
 {
     vJMF.Add(submissionJMF);
 }
Exemple #30
0
        ///
        ///	 <summary> * gets the matching elements in node that match this devcap
        ///	 *  </summary>
        ///	 * <param name="node">
        ///	 *            the node to search in </param>
        ///	 * <returns> VElement - the element vector of matching elements,
        ///	 *         <code>null</code> if none were found </returns>
        ///
        private VElement getMatchingElementsFromNode(JDFNode node)
        {
            VElement vElem = new VElement();

            string              nam         = getName();
            EnumContext         context     = getContext();
            JDFResourceLinkPool resLinkPool = node.getResourceLinkPool();

            if (context.Equals(EnumContext.Element))
            { // vElem - for a common return type in all cases
                if (nam.Equals(ElementName.JDF))
                {
                    vElem.Add(node);
                }
                else
                {
                    vElem = node.getChildElementVector(nam, null, null, true, 0, false);
                }
            }
            else if (context.Equals(EnumContext.Link) || context.Equals(EnumContext.Resource))
            {
                if (resLinkPool != null)
                {
                    EnumUsage linkUsage  = getLinkUsage();
                    string    procUsage  = getProcessUsage();
                    bool      bLink      = context.Equals(EnumContext.Link);
                    VElement  vElemLinks = resLinkPool.getInOutLinks(linkUsage, true, nam, null);
                    if (vElemLinks != null)
                    {
                        int linkSize = vElemLinks.Count - 1;
                        for (int j = linkSize; j >= 0; j--)
                        {
                            JDFResourceLink rl             = (JDFResourceLink)vElemLinks[j];
                            string          rlProcessUsage = rl.getProcessUsage();
                            if (!rlProcessUsage.Equals(procUsage))
                            {
                                vElemLinks.RemoveAt(j);
                            }
                        }
                    }

                    if (!bLink)
                    {
                        vElem = JDFResourceLinkPool.resourceVector(vElemLinks, null);
                    }
                    else
                    {
                        vElem = vElemLinks;
                    }
                }
            }
            else if (context.Equals(EnumContext.JMF))
            {
                // TODO __Lena__ ...
            }
            else
            { // Context_Unknown
                throw new JDFException("JDFDevCaps wrong attribute Context value");
            }

            if (vElem != null && vElem.Count == 0)
            {
                vElem = null;
            }

            return(vElem);
        }