public virtual void testGetPartAmountMulti() { JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); n.setType(EnumType.ConventionalPrinting); JDFComponent comp = (JDFComponent)n.addResource("Component", null, EnumUsage.Output, null, null, null, null); JDFAttributeMap map = new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1"); JDFAttributeMap mapSig = new JDFAttributeMap(map); JDFAttributeMap map2 = new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1"); JDFResourceLink rl = n.getLink(comp, null); map.put(EnumPartIDKey.SheetName, "Sheet"); comp.getCreatePartition(map, new VString("SignatureName SheetName", " ")); map.put(EnumPartIDKey.Side, "Front"); map2.put(EnumPartIDKey.Side, "Back"); VJDFAttributeMap vMap = new VJDFAttributeMap(); vMap.Add(map); vMap.Add(map2); JDFAmountPool aplocal = rl.appendAmountPool(); JDFPartAmount pa = aplocal.appendPartAmount(vMap); Assert.AreEqual(pa.numChildElements_JDFElement(ElementName.PART, null), 2); rl.setActualAmount(42, map); rl.setActualAmount(21, map2); Assert.AreEqual(2, pa.numChildElements_JDFElement(ElementName.PART, null)); Assert.AreEqual(42.0, rl.getActualAmount(map), 0.0); Assert.AreEqual(42.0 + 21.0, rl.getActualAmount(mapSig), 0.0); Assert.AreEqual(aplocal.getPartAmount(vMap), pa); }
public virtual void testVirtualAmounts() { JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); n.setType(EnumType.ConventionalPrinting); JDFComponent comp = (JDFComponent)n.addResource("Component", null, EnumUsage.Output, null, null, null, null); JDFAttributeMap map = new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1"); JDFResourceLink rl = n.getLink(comp, null); for (int i = 0; i < 5; i++) { map.put(EnumPartIDKey.SheetName, "Sheet" + i); comp.getCreatePartition(map, new VString("SignatureName SheetName", " ")); rl.setAmount(500 + i, map); JDFAttributeMap map2 = new JDFAttributeMap(map); map2.put("Condition", "Good"); rl.setActualAmount(500 + i, map2); map2.put("Condition", "Waste"); rl.setActualAmount(50 + i, map2); map2.put("Condition", "Good"); Assert.AreEqual(500 + i, rl.getActualAmount(map2), 0.01); map2.put("Condition", "Waste"); Assert.AreEqual(50 + i, rl.getActualAmount(map2), 0.01); } }
public virtual void testReducePartAmounts() { JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); n.setType(EnumType.ConventionalPrinting); JDFComponent comp = (JDFComponent)n.addResource("Component", null, EnumUsage.Output, null, null, null, null); JDFAttributeMap map = new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1"); JDFResourceLink rl = n.getLink(comp, null); for (int i = 0; i < 5; i++) { map.put(EnumPartIDKey.SheetName, "Sheet" + i); comp.getCreatePartition(map, new VString("SignatureName SheetName", " ")); rl.setAmount(500 + i, map); JDFAttributeMap map2 = new JDFAttributeMap(map); map2.put("Condition", "Good"); rl.setActualAmount(500 + i, map2); map2.put("Condition", "Waste"); rl.setActualAmount(50 + i, map2); } VJDFAttributeMap v = new VJDFAttributeMap(); JDFAttributeMap testMap = new JDFAttributeMap(EnumPartIDKey.Condition, "Good"); v.Add(testMap); JDFAmountPool aplocal = rl.getAmountPool(); Assert.AreEqual(15, aplocal.numChildElements(ElementName.PARTAMOUNT, null), "15 pa entries"); aplocal.reducePartAmounts(v); Assert.AreEqual(5, aplocal.numChildElements(ElementName.PARTAMOUNT, null), "5 pa entries"); testMap.put("SheetName", "Sheet3"); aplocal.reducePartAmounts(v); Assert.AreEqual(1, aplocal.numChildElements(ElementName.PARTAMOUNT, null), "1 pa entries"); }
public virtual void testAmountPalletteCompleteManifest() { JDFElement.setLongID(false); JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); n.setType(EnumType.ProcessGroup); n.setTypes(new VString("Binding Stacking BoxPacking Palletizing", " ")); JDFComponent comp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null); JDFResourceLink rl = n.getLink(comp, null); rl.setAmount(2, null); rl.setDescriptiveName("The link point to 2 pallets with a total comtent of 10000 brochures in 200 boxes"); JDFComponent compBrochure = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Input, null, null, null, null); compBrochure.setResStatus(EnumResStatus.Available, true); compBrochure.setDescriptiveName("The individual Brochures"); JDFResourceLink rlB = n.getLink(compBrochure, null); rlB.setAmount(10000, null); rlB.setActualAmount(9700, null); for (int i = 0; i < 2; i++) { // create a pallet partition - may also use the root JDFComponent compPallet = (JDFComponent)comp.addPartition(EnumPartIDKey.DeliveryUnit0, "Pallet" + i); compPallet.setProductID("Pallet_" + i); JDFBundle bundlePallet = compPallet.getCreateBundle(); int nBox = i == 0 ? 100 : 94; bundlePallet.setDescriptiveName("Pallet Bundle describing " + nBox + " boxes with " + nBox * 50 + " Brochures Contents total"); bundlePallet.setTotalAmount(nBox * 50); bundlePallet.setBundleType(EnumBundleType.Pallet); for (int j = 0; j < nBox; j++) { JDFBundleItem biBoxes = bundlePallet.appendBundleItem(); JDFComponent compBox = (JDFComponent)compPallet.addPartition(EnumPartIDKey.DeliveryUnit1, "Box_" + i + "_" + j); compBox.setProductID("Box_" + i + "_" + j); biBoxes.refElement(compBox); biBoxes.setAmount(1); JDFBundle bundleBox = compBox.appendBundle(); bundleBox.setDescriptiveName("Bundle describing box #" + j + " with 50 Brochures Contents per box"); bundleBox.setTotalAmount(50); bundleBox.setBundleType(EnumBundleType.Box); JDFBundleItem biBrochures = bundleBox.appendBundleItem(); biBrochures.refElement(compBrochure); biBrochures.setAmount(50); } } d.write2File(sm_dirTestDataTemp + "MISFinAmountCompleteManifest.jdf", 2, false); }
/// /// <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); } } } }
public void testUsageCounter() { JDFElement.setLongID(false); JDFDoc doc = new JDFDoc("JDF"); JDFNode root = doc.getJDFRoot(); root.setType(EnumType.DigitalPrinting); JDFUsageCounter uc = (JDFUsageCounter)root.appendMatchingResource( ElementName.USAGECOUNTER, EnumProcessUsage.AnyInput, null); Assert.IsTrue(uc.isValid(EnumValidationLevel.Incomplete)); Assert.IsFalse(uc.isValid(EnumValidationLevel.Complete)); uc.setCounterID("c1"); uc.setScope(EnumScope.Job); uc.setCounterTypes(new VString( "NormalSize Black OneSided TwoSided Impressions", " ")); Assert.IsTrue(uc.isValid(EnumValidationLevel.Complete)); Assert.AreEqual(StringUtil.setvString(uc.getEnumCounterTypes()), StringUtil.setvString(uc.getCounterTypes())); JDFResourceLink rl = root.getLink(uc, null); rl.setActualAmount(10, null); JDFAuditPool ap = root.getCreateAuditPool(); JDFResourceAudit ra = (JDFResourceAudit)ap.addAudit( EnumAuditType.ResourceAudit, null); ra.updateLink(rl); JDFUsageCounter uc2 = (JDFUsageCounter)root.appendMatchingResource( ElementName.USAGECOUNTER, EnumProcessUsage.AnyInput, null); uc2.setCounterID("c2"); uc2.setScope(EnumScope.Job); uc2.setCounterTypes(new VString( "NormalSize Color OneSided TwoSided Impressions", " ")); Assert.IsTrue(uc2.isValid(EnumValidationLevel.Complete)); Assert.AreEqual(StringUtil.setvString(uc2.getEnumCounterTypes()), StringUtil.setvString(uc2.getCounterTypes())); rl = root.getLink(uc2, null); rl.setActualAmount(20, null); ra = (JDFResourceAudit)ap.addAudit(EnumAuditType.ResourceAudit, null); ra.updateLink(rl); JDFUsageCounter uc3 = (JDFUsageCounter)root.appendMatchingResource( ElementName.USAGECOUNTER, EnumProcessUsage.AnyInput, null); uc3.setCounterID("c3"); uc3.setScope(EnumScope.Job); uc3.setCounterTypes(new VString( "LargeSize Black OneSided TwoSided Impressions", " ")); Assert.IsTrue(uc3.isValid(EnumValidationLevel.Complete)); Assert.AreEqual(StringUtil.setvString(uc3.getEnumCounterTypes()), StringUtil.setvString(uc3.getCounterTypes())); rl = root.getLink(uc3, null); rl.setActualAmount(30, null); ra = (JDFResourceAudit)ap.addAudit(EnumAuditType.ResourceAudit, null); ra.updateLink(rl); JDFUsageCounter uc4 = (JDFUsageCounter)root.appendMatchingResource( ElementName.USAGECOUNTER, EnumProcessUsage.AnyInput, null); uc4.setCounterID("c4"); uc4.setScope(EnumScope.Job); uc4.setCounterTypes(new VString( "LargeSize Color OneSided TwoSided Impressions", " ")); Assert.IsTrue(uc4.isValid(EnumValidationLevel.Complete)); Assert.AreEqual(StringUtil.setvString(uc4.getEnumCounterTypes()), StringUtil.setvString(uc4.getCounterTypes())); rl = root.getLink(uc4, null); rl.setActualAmount(40, null); ra = (JDFResourceAudit)ap.addAudit(EnumAuditType.ResourceAudit, null); ra.updateLink(rl); Assert.IsTrue(root.isValid(EnumValidationLevel.Incomplete)); doc.write2File(sm_dirTestDataTemp + "UCList.jdf", 2, false); }