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); }
/// /// <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); }
/// /// * <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); }
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); }
/// /// <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); }
/// /// <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); }
/// /// <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); }
/// /// <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); }
/// /// <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); }
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); }
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); }
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); }
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); }
/// /// <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); }
/// /// <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); }
/// /// <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); }
/// /// <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); }
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()); }
/// /// <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); }
/// /// <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); }
/// /// <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 }
/// /// <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); }
/// /// * <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); }
/// /// <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); }
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()); }
/// /// <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); }
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); } }
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); }
// // * (non-Javadoc) // * // * @see // * org.cip4.jdflib.util.QueueHotFolderListener#submitted(org.cip4.jdflib // * .jmf.JDFJMF) // public virtual void submitted(JDFJMF submissionJMF) { vJMF.Add(submissionJMF); }
/// /// <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); }