public virtual void createHDCity() { initCustomerInfo(null, null, "Heidelberger Druckmaschinen AG", "Heidelberg A4 brochure"); theNode.setDescriptiveName("7.5.5 A4 brochure with spot colors, 4pg Cover 6c/4c, 32 pg Text 4c/4c"); JDFNode cover = addJDFNode(theNode, EnumType.Product); cover.setDescriptiveName("HD Brochure Cover"); initMediaIntent(cover, 200, EnumSpanCoatings.Glossy, null); JDFLayoutIntent li = initLayoutIntent(cover, 21, 29.7, 4, 2); initColorIntent(cover, 6, 4, null); JDFComponent cCover = initOutputComponent(cover, li, "Cover"); cCover.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet); JDFNode body = addJDFNode(theNode, EnumType.Product); body.setDescriptiveName("HD Brochure Body"); initColorIntent(body, 4, 4, null); initMediaIntent(body, 135, EnumSpanCoatings.Coated, null); initLayoutIntent(body, 21, 29.7, 32, 2); JDFComponent cBody = initOutputComponent(body, li, "Body"); cBody.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet); initBindingIntent(cCover, cBody, 2); initOutputComponent(theNode, li, null); initDeliveryIntent(5000); }
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 testPartAmountVirtual() { JDFDoc d = new JDFDoc(ElementName.JDF); JDFNode n = d.getJDFRoot(); n.setVersion(JDFElement.EnumVersion.Version_1_3); n.setType("ConventionalPrinting", true); JDFComponent comp = (JDFComponent)n.appendMatchingResource(ElementName.COMPONENT, EnumProcessUsage.AnyOutput, null); JDFResourceLink cpLink = n.getLink(comp, null); JDFAttributeMap mapBad = new JDFAttributeMap("Condition", "Waste"); cpLink.setActualAmount(42, mapBad); Assert.AreEqual(42.0, cpLink.getActualAmount(mapBad), 0); Assert.IsTrue(n.isValid(EnumValidationLevel.Incomplete), "allow part amounts to non-existing partitions"); cpLink.removeChild(ElementName.AMOUNTPOOL, null, 0); comp.addPartition(EnumPartIDKey.SheetName, "Sheet1"); mapBad.put(EnumPartIDKey.SheetName.getName(), "Sheet1"); cpLink.setActualAmount(42, mapBad); Assert.AreEqual(42.0, cpLink.getActualAmount(mapBad), 0); Assert.IsTrue(n.isValid(EnumValidationLevel.Incomplete), "allow partamounts to non-existing partitions"); mapBad.put(EnumPartIDKey.SheetName.getName(), "Sheet2"); Assert.AreEqual(0.0, cpLink.getActualAmount(mapBad), 0); JDFAttributeMap m2 = new JDFAttributeMap("Condition", "Waste"); Assert.AreEqual(42.0, cpLink.getActualAmount(m2), 0); m2.put("SheetName", "Sheet1"); Assert.AreEqual(42.0, cpLink.getActualAmount(m2), 0); m2.put("Side", "Front"); Assert.AreEqual(0.0, cpLink.getActualAmount(m2), 0); }
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 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); }
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 testIsPresentPartition() { JDFAction act = devicecap.appendActionPool().appendActionTest(EnumTerm.IsPresentEvaluation, true); JDFTest tst = act.getTest(); tst.setContext("//Component"); JDFIsPresentEvaluation ipe = (JDFIsPresentEvaluation)tst.getTerm(); ipe.setRefTarget(ptState); Assert.AreEqual(ptState.getID(), ipe.getrRef()); JDFDoc doc = new JDFDoc("JDF"); JDFNode node = doc.getJDFRoot(); node.setType("fnarf", false); JDFComponent comp = (JDFComponent)node.addResource("Component", null, EnumUsage.Input, null, null, null, null); comp.setProductType("Cover"); XMLDoc rep = new XMLDoc("root", null); KElement eRep = rep.getRoot(); bool fitsJDF = tst.fitsJDF(comp, eRep); Assert.IsTrue(fitsJDF); comp = (JDFComponent)comp.addPartition(EnumPartIDKey.SheetName, "s1"); fitsJDF = tst.fitsJDF(comp, eRep); Assert.IsTrue(fitsJDF, "also partition leaves "); }
public virtual void createAddressBook() { initCustomerInfo(null, null, "Art Point", "Address Pocketbook"); theNode.setDescriptiveName("7.5.2 A5 brochure 4c/4c, 4pg Cover, 32 pg Text"); JDFNode cover = addJDFNode(theNode, EnumType.Product); cover.setDescriptiveName("Address Book Cover"); initMediaIntent(cover, 200, EnumSpanCoatings.Glossy, null); JDFLayoutIntent li = initLayoutIntent(cover, 14.8, 21, 4, 2); JDFColorIntent ci = initColorIntent(cover, 4, 4, null); JDFComponent cCover = initOutputComponent(cover, li, "Cover"); cCover.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet); JDFNode body = addJDFNode(theNode, EnumType.Product); body.setDescriptiveName("Address Book Body"); body.linkResource(ci, EnumUsage.Input, null); initMediaIntent(body, 135, EnumSpanCoatings.Coated, null); initLayoutIntent(body, 14.8, 21, 32, 2); JDFComponent cBody = initOutputComponent(body, li, "Body"); cBody.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet); initBindingIntent(cCover, cBody, 2); initOutputComponent(theNode, li, null); initDeliveryIntent(5000); }
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); }
/// /// * <param name="icsLevel"> </param> /// protected internal virtual JDFComponent initOutputComponent() { if (thePreviousNode != null) { JDFResource parentOutComp = thePreviousNode.getResource(ElementName.COMPONENT, EnumUsage.Output, 0); if (parentOutComp != null) { theNode.linkResource(parentOutComp, EnumUsage.Input, null); } } JDFComponent outComp = (JDFComponent)(theParentNode != null ? theParentNode.getResource(ElementName.COMPONENT, EnumUsage.Output, 0) : null); if (outComp == null) { outComp = (JDFComponent)theNode.getCreateResource(ElementName.COMPONENT, EnumUsage.Output, 0); outComp.setComponentType(EnumComponentType.FinalProduct, EnumComponentType.Sheet); outComp.setProductType("Unknown"); } else { theNode.linkResource(outComp, EnumUsage.Output, null); } JDFResourceLink rl = theNode.getLink(outComp, EnumUsage.Output); if (vParts != null) { VJDFAttributeMap reducedMap = getReducedMap(new VString("Side Separation", " ")); if (reducedMap != null) { int size = reducedMap.Count; for (int i = 0; i < size; i++) { JDFAttributeMap part = reducedMap[i]; JDFResource partComp = outComp.getCreatePartition(part, partIDKeys); partComp.setDescriptiveName("Description for Component part# " + i); JDFAttributeMap newMap = new JDFAttributeMap(part); newMap.put(AttributeName.CONDITION, "Good"); rl.setAmount(good, newMap); } } } else { outComp.setDescriptiveName("MIS-CP output Component"); } // outComp.getCreateLayout(); JDFMedia inMedia = (JDFMedia)theNode.getResource(ElementName.MEDIA, EnumUsage.Input, 0); if (inMedia != null) { outComp.setDimensions(inMedia.getDimension()); } return(outComp); }
public virtual void testPlannedWasteICS() { JDFAmountPool ap = rlOut.getCreateAmountPool(); JDFAmountPool apIn = rlMediaIn.getCreateAmountPool(); JDFComponent cover = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Cover"); JDFAttributeMap map = cover.getPartMap(); ap.appendXMLComment("Want 10000-10400 good cover sheets and allow for 500 waste cover sheets", null); map.put(EnumPartIDKey.Condition, "Good"); rlOut.setAmount(10000, map); rlOut.setMaxAmount(10400, map); apIn.appendXMLComment("Amount[Good]: planned consumption for good production\n" + "MaxAmount[Good]: planned maximum consumption for good production\n" + "MaxAmount[Waste]: planned Media for waste", null); rlMediaIn.setAmount(10500, map); map.put(EnumPartIDKey.Condition, "Waste"); rlMediaIn.setMaxAmount(500, map); ap.appendXMLComment("Want 20000 good first insert sheets and allow for 200 waste insert sheets", null); JDFComponent sheet1 = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Sheet1"); map = sheet1.getPartMap(); map.put(EnumPartIDKey.Condition, "Good"); rlOut.setAmount(20000, map); rlOut.setMaxAmount(20800, map); rlMediaIn.setAmount(21000, map); map.put(EnumPartIDKey.Condition, "Waste"); rlMediaIn.setMaxAmount(200, map); ap.appendXMLComment("Want 20000 good second insert sheets and allow for 100 waste insert sheets", null); JDFComponent sheet2 = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Sheet2"); map = sheet2.getPartMap(); map.put(EnumPartIDKey.Condition, "Good"); rlOut.setAmount(20000, map); rlOut.setMaxAmount(20800, map); rlMediaIn.setAmount(20900, map); map.put(EnumPartIDKey.Condition, "Waste"); rlMediaIn.setMaxAmount(100, map); d.write2File(sm_dirTestDataTemp + "plannedWasteICS.jdf", 2, true); // // * map=cover.getPartMap(); map.put(EnumPartIDKey.Condition, "Good"); // * rl.getAmountPool().getPartAmount(map,0).appendXMLComment( // * "Actually produced covers: 10200\nWaste put on output stack:100"); // * rlIn.getAmountPool().getPartAmount(map,0).appendXMLComment( // * "Total consumed sheets: 10400\nOf that: sheets wasted: 200"); // * rl.setActualAmount(10200, map); rlIn.setActualAmount(10200, map); // * map.put(EnumPartIDKey.Condition, "Waste"); rl.setActualAmount(100, // * map); rlIn.setActualAmount(200, map); // * // * d.write2File(sm_dirTestDataTemp+"actualWasteICS.jdf", 2, true); // }
public virtual void testContentDataFinishing() { testContentData(); JDFComponent c = (JDFComponent)n.addResource(ElementName.COMPONENT, EnumUsage.Output); JDFComponent c1 = (JDFComponent)c.addPartition(EnumPartIDKey.BlockName, "Stack1"); JDFComponent c2 = (JDFComponent)c.addPartition(EnumPartIDKey.BlockName, "Stack2"); c.refElement(pl); c1.setPageListIndex(new JDFIntegerRangeList("0~8")); c2.setPageListIndex(new JDFIntegerRangeList("9~16")); c.setXMLComment("this is the output component with two stacks\n the imposition engine is aware of the pagelist index and can set it appropriately"); d.write2File(sm_dirTestDataTemp + "ContentMetaDataStack.jdf", 2, false); }
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.ConventionalPrinting); outComp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null); inMedia = (JDFMedia)n.addResource(ElementName.MEDIA, null, EnumUsage.Input, null, null, null, null); rlOut = n.getLink(outComp, null); rlMediaIn = n.getLink(inMedia, null); }
public virtual void testAction() { JDFAction act = devicecap.appendActionPool().appendActionTest(EnumTerm.or, false); JDFTest tst = act.getTest(); tst.setContext("/JDF/ResourcePool/Component"); JDFor or = (JDFor)((JDFnot)tst.getTerm()).getTerm(EnumTerm.or, 0); JDFIsPresentEvaluation ipe = (JDFIsPresentEvaluation)or.appendTerm(EnumTerm.IsPresentEvaluation); ipe.setRefTarget(ptState); Assert.AreEqual(ptState.getID(), ipe.getrRef()); JDFEnumerationEvaluation enev = (JDFEnumerationEvaluation)or.appendTerm(EnumTerm.EnumerationEvaluation); enev.setRefTarget(compState); enev.setRegExp("(.+ )*FinalProduct( .+)*"); JDFDoc doc = new JDFDoc("JDF"); JDFNode node = doc.getJDFRoot(); node.setType("fnarf", false); JDFComponent comp = (JDFComponent)node.addResource("Component", null, EnumUsage.Input, null, null, null, null); XMLDoc rep = new XMLDoc("root", null); KElement eRep = rep.getRoot(); bool fitsJDF = tst.fitsJDF(comp, eRep); Assert.IsTrue(fitsJDF); comp.setProductType("foobar"); fitsJDF = tst.fitsJDF(comp, eRep); Assert.IsFalse(fitsJDF, "have pt"); List <ValuedEnum> v = new List <ValuedEnum>(); v.Add(EnumComponentType.FinalProduct); comp.setComponentType(v); fitsJDF = tst.fitsJDF(comp, eRep); Assert.IsFalse(fitsJDF, "have both"); comp.removeAttribute("ProductType"); fitsJDF = tst.fitsJDF(comp, eRep); Assert.IsFalse(fitsJDF, "have final"); v = new List <ValuedEnum>(); v.Add(EnumComponentType.PartialProduct); comp.setComponentType(v); fitsJDF = tst.fitsJDF(comp, eRep); Assert.IsTrue(fitsJDF, "have no final"); }
/// /// <summary> * initializes this node to a given ICS version /// * </summary> /// * <param name="icsLevel"> the level to init to (1,2 or 3) </param> /// public override void init() { initColsFromParent(); initAmountsFromParent(); if (partIDKeys == null) { partIDKeys = new VString("SignatureName SheetName Side Separation", null); } // put level methods? int ncols = getNCols(); while (cols.Count > ncols && ncols > 0) { cols.RemoveAt(ncols); } if (icsLevel < 0) { return; } string icsTag = "MISCPS_L" + icsLevel + "-" + theVersion.getName(); theNode.appendAttribute(AttributeName.ICSVERSIONS, icsTag, null, " ", true); if (!theNode.hasAttribute(AttributeName.DESCRIPTIVENAME)) { theNode.setDescriptiveName("MISCPS Golden Ticket Example Job - version: " + JDFAudit.software()); } if (!grayBox) { theNode.setType(EnumType.ConventionalPrinting); } initColorantControl(); initConventionalPrintingParams(); JDFMedia m = initPaperMedia(); initPlateXM(EnumUsage.Input); initDevice(thePreviousNode); JDFComponent c = initOutputComponent(); initInk(); base.init(); initPreview(); setActivePart(vParts, true); theStatusCounter.setTrackWaste(c.getID(), true); theStatusCounter.setTrackWaste(m.getID(), true); }
/// /// * <param name="cover"> </param> /// * <param name="body"> /// * @return </param> /// protected internal virtual JDFBindingIntent initBindingIntent(JDFComponent cover, JDFComponent body, int numStitches) { JDFBindingIntent bi = (JDFBindingIntent)theNode.addResource(ElementName.BINDINGINTENT, EnumUsage.Input); if (numStitches > 0) { bi.appendSaddleStitching().appendStitchNumber().setActual(numStitches); bi.appendBindingType().setActual(EnumSpanBindingType.SaddleStitch); } theNode.linkResource(cover, EnumUsage.Input, EnumProcessUsage.Cover); theNode.linkResource(body, EnumUsage.Input, null); bi.setResStatus(EnumResStatus.Available, false); bi.preferredToActual(); return(bi); }
/// /// <summary> * Get all Component from the current element /// * </summary> /// * <returns> Collection<JDFComponent> </returns> /// public virtual ICollection <JDFComponent> getAllComponent() { List <JDFComponent> v = new List <JDFComponent>(); JDFComponent kElem = (JDFComponent)getFirstChildElement(ElementName.COMPONENT, null); while (kElem != null) { v.Add(kElem); kElem = (JDFComponent)kElem.getNextSiblingElement(ElementName.COMPONENT, null); } return(v); }
public virtual void testAmount() { 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"); // create a pallet partition - may also use the root JDFComponent compPallet = (JDFComponent)comp.addPartition(EnumPartIDKey.DeliveryUnit0, "Pallet"); JDFComponent compBox = (JDFComponent)compPallet.addPartition(EnumPartIDKey.DeliveryUnit1, "Box"); JDFBundle bundlePallet = compPallet.appendBundle(); bundlePallet.setDescriptiveName("Bundle describing 100 boxes with 5000 Brochures Contents total"); bundlePallet.setTotalAmount(5000); bundlePallet.setBundleType(EnumBundleType.Pallet); JDFBundleItem biBoxes = bundlePallet.appendBundleItem(); biBoxes.refElement(compBox); biBoxes.setAmount(100); JDFComponent compBrochure = (JDFComponent)compBox.addPartition(EnumPartIDKey.DeliveryUnit2, "Brochure"); JDFBundle bundleBox = compBox.appendBundle(); bundleBox.setDescriptiveName("Bundle describing 1 boxes with 50 Brochures Contents per box"); bundleBox.setTotalAmount(50); bundleBox.setBundleType(EnumBundleType.Box); JDFBundleItem biBrochures = bundleBox.appendBundleItem(); biBrochures.refElement(compBrochure); biBrochures.setAmount(50); JDFBundle bundleBrochure = compBrochure.appendBundle(); bundleBrochure.setDescriptiveName("Dummy Bundle to inhibit inheritence of the box Bundle"); d.write2File(sm_dirTestDataTemp + "MISFinAmount.jdf", 2, false); }
public virtual void testDraftOK() { JDFDoc d = new JDFDoc(ElementName.JDF); JDFNode n = d.getJDFRoot(); n.setVersion(JDFElement.EnumVersion.Version_1_3); n.setType("ProcessGroup", true); JDFCustomerInfo ci = (JDFCustomerInfo)n.addResource(ElementName.CUSTOMERINFO, null, EnumUsage.Input, null, null, null, null); JDFComponent co = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null); JDFResourceLink rl = n.getLink(ci, null); Assert.AreEqual(JDFResource.EnumResStatus.Available, rl.getMinStatus(), "available"); rl.setDraftOK(true); Assert.AreEqual(JDFResource.EnumResStatus.Draft, rl.getMinStatus(), "draft"); Assert.IsTrue(!rl.hasAttribute(AttributeName.DRAFTOK), "has no draft"); Assert.IsTrue(rl.getMinLateStatus() == JDFResource.EnumResStatus.Draft, "late draft"); Assert.IsTrue(rl.isValid(EnumValidationLevel.Complete), "1.3 valid"); rl.setDraftOK(false); Assert.AreEqual(JDFResource.EnumResStatus.Available, rl.getMinStatus(), "draft"); Assert.IsTrue(!rl.hasAttribute(AttributeName.DRAFTOK), "has no draft"); Assert.IsTrue(rl.getMinLateStatus() == JDFResource.EnumResStatus.Available, "late draft"); Assert.IsTrue(rl.isValid(EnumValidationLevel.Complete), "1.3 valid"); rl.removeAttribute(AttributeName.MINSTATUS); n.setVersion(JDFElement.EnumVersion.Version_1_2); rl.setDraftOK(true); Assert.IsTrue(rl.getMinStatus() == JDFResource.EnumResStatus.Draft, "draft"); Assert.IsTrue(rl.hasAttribute(AttributeName.DRAFTOK), "has draft"); Assert.IsTrue(!rl.hasAttribute(AttributeName.MINSTATUS), "has no MinStatus"); Assert.AreEqual(rl.getMinLateStatus(), JDFResource.EnumResStatus.Draft, "late draft"); Assert.IsTrue(rl.isValid(EnumValidationLevel.Complete), "1.2 valid"); rl.setDraftOK(false); Assert.IsTrue(rl.getMinStatus() == JDFResource.EnumResStatus.Available, "draft"); Assert.IsTrue(rl.hasAttribute(AttributeName.DRAFTOK), "has draft"); Assert.IsTrue(!rl.hasAttribute(AttributeName.MINSTATUS), "has no MinStatus"); Assert.AreEqual(rl.getMinLateStatus(), JDFResource.EnumResStatus.Available, "late draft"); Assert.IsTrue(rl.isValid(EnumValidationLevel.Complete), "1.2 valid"); rl = n.getLink(co, null); Assert.AreEqual(JDFResource.EnumResStatus.Unavailable, rl.getMinStatus(), "unavailable"); }
/// <summary> /// All the setUp calls except for base.setUp. /// Use when you want to redo a setup without doign a teardown. /// </summary> public void reSetUp() { JDFElement.setLongID(false); JDFAudit.setStaticAgentName(null); JDFAudit.setStaticAgentVersion(null); JDFAudit.setStaticAuthor(null); doc = new JDFDoc("JDF"); n = doc.getJDFRoot(); n.setJobID("JobID"); n.setType(EnumType.Combined); n.setTypes(new VString("Interpreting Rendering DigitalPrinting Stitching", " ")); comp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null); rlComp = n.getLink(comp, null); digiParams = (JDFDigitalPrintingParams)n.addResource(ElementName.DIGITALPRINTINGPARAMS, null, EnumUsage.Input, null, null, null, null); med = (JDFMedia)n.appendMatchingResource(ElementName.MEDIA, EnumProcessUsage.AnyInput, null); med.setResStatus(EnumResStatus.Available, false); rlMedia = n.getLink(med, null); ruli = (JDFRunList)n.appendMatchingResource(ElementName.RUNLIST, EnumProcessUsage.AnyInput, null); }
/// /// <summary> * initialize deliveryintent and also output component /// * </summary> /// * <param name="amount"> </param> /// protected internal virtual JDFDeliveryIntent initDeliveryIntent(int amount) { JDFDeliveryIntent di = (JDFDeliveryIntent)theNode.addResource(ElementName.DELIVERYINTENT, EnumUsage.Input); JDFDate d = new JDFDate(); d.addOffset(0, 0, 0, 7); di.appendRequired().setPreferred(d); if (amount > 0) { JDFComponent outComp = (JDFComponent)theNode.getCreateResource(ElementName.COMPONENT, EnumUsage.Output, 0); JDFDropItemIntent dit = di.appendDropIntent().appendDropItemIntent(); dit.refElement(outComp); dit.setAmount(amount); JDFResourceLink rl = theNode.getLink(outComp, null); rl.setAmount(amount, null); } di.setResStatus(EnumResStatus.Available, false); di.preferredToActual(); return(di); }
/// /// <summary> * recalculate ncols from parent color intent if it exists </summary> /// private void initAmountsFromParent() { if (theParentProduct == null) { return; } JDFComponent c = (JDFComponent)theParentProduct.getResource(ElementName.COMPONENT, EnumUsage.Output, 0); JDFResourceLink cl = theParentProduct.getLink(c, EnumUsage.Output); if (cl == null) { return; } double amount = cl.getAmount(null); if (amount > 0) { good = (int)amount; waste = (int)(good * 0.1); } }
public virtual void testPlannedWaste() { JDFElement.setLongID(false); d = new JDFDoc("JDF"); n = d.getJDFRoot(); n.setType(EnumType.ConventionalPrinting); outComp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null); rlOut = n.getLink(outComp, null); JDFAmountPool ap = rlOut.getCreateAmountPool(); JDFComponent cover = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Cover"); JDFAttributeMap map = cover.getPartMap(); ap.appendXMLComment("Want 10000-10500 good cover sheets and allow for 500 waste cover sheets", null); map.put(EnumPartIDKey.Condition, "Good"); rlOut.setAmount(10000, map); rlOut.setMaxAmount(10500, map); map.put(EnumPartIDKey.Condition, "Waste"); rlOut.setMaxAmount(500, map); ap.appendXMLComment("Want 20000 good first insert sheets and allow for 200 waste insert sheets", null); JDFComponent sheet1 = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Sheet1"); map = sheet1.getPartMap(); map.put(EnumPartIDKey.Condition, "Good"); rlOut.setAmount(20000, map); map.put(EnumPartIDKey.Condition, "Waste"); rlOut.setMaxAmount(200, map); ap.appendXMLComment("Want 20000 good second insert sheets and allow for 200 waste insert sheets", null); JDFComponent sheet2 = (JDFComponent)outComp.addPartition(EnumPartIDKey.SheetName, "Sheet2"); map = sheet2.getPartMap(); map.put(EnumPartIDKey.Condition, "Good"); rlOut.setAmount(20000, map); map.put(EnumPartIDKey.Condition, "Waste"); rlOut.setMaxAmount(100, map); d.write2File(sm_dirTestDataTemp + "plannedWaste.jdf", 2, true); }
public virtual void testExpandAmountPool() { JDFDoc d = new JDFDoc(ElementName.JDF); JDFNode n = d.getJDFRoot(); n.setVersion(JDFElement.EnumVersion.Version_1_3); n.setType("ConventionalPrinting", true); JDFComponent comp = (JDFComponent)n.addResource(ElementName.COMPONENT, null, EnumUsage.Output, null, null, null, null); comp.addPartitions(EnumPartIDKey.SheetName, new VString("S1 S2 S3", null)); JDFResourceLink rl = n.getLink(comp, null); rl.setAmount(42, null); rl.setPipeProtocol("JDF"); Assert.AreEqual(42.0, rl.getAmount(null), 0.1); Assert.IsNull(rl.getAmountPool()); rl.expandAmountPool(); Assert.IsNull(rl.getAttribute("Amount", null, null)); Assert.AreEqual(42.0, rl.getAmount(new JDFAttributeMap(EnumPartIDKey.SheetName, "S2")), 0.1); Assert.IsNotNull(rl.getAmountPool()); Assert.AreEqual("JDF", rl.getPipeProtocol()); }
/// /// <summary> * product intent for the drupa flower job /// * </summary> /// * <exception cref="Exception"> </exception> /// public virtual void createDrupaFlower() { initCustomerInfo("Jane", "Customer", "Messe Düsseldorf", "CIP4 Drupa Flower Demo Job"); theNode.setDescriptiveName("Drupa Flower Brochure, 4pg Cover 5c5c, 48 pg Text 5c5c"); JDFNode cover = addJDFNode(theNode, EnumType.Product); cover.setDescriptiveName("Drupa Flower Brochure Cover"); initMediaIntent(cover, 200, EnumSpanCoatings.Glossy, "Luxocard 2 SB"); JDFLayoutIntent li = initLayoutIntent(cover, 23.3, 21.6, 4, 2); initColorIntent(cover, 5, 5, null); JDFComponent cCover = initOutputComponent(cover, li, "Cover"); cCover.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet); JDFNode body = addJDFNode(theNode, EnumType.Product); body.setDescriptiveName("Drupa Flower Brochure Body"); initColorIntent(body, 5, 5, "Cyan Magenta Yellow Black Blue"); initMediaIntent(body, 150, EnumSpanCoatings.Glossy, "Scheufelen BVS dull BB"); initLayoutIntent(body, 23.3, 21.6, 48, 2); JDFComponent cBody = initOutputComponent(body, li, "Body"); cBody.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet); initBindingIntent(cCover, cBody, 2); initOutputComponent(theNode, li, null); initDeliveryIntent(5000); JDFPackingIntent pi = (JDFPackingIntent)theNode.getCreateResource(ElementName.PACKINGINTENT, EnumUsage.Input, 0); pi.setDescriptiveName("want cartons of products"); JDFIntegerSpan @is = pi.appendCartonQuantity(); @is.setRange(new JDFIntegerRangeList(new JDFIntegerRange(50, 500))); }
/// /// * <param name="icsLevel"> </param> /// protected internal virtual JDFComponent initOutputComponent(JDFNode node, JDFLayoutIntent li, string productType) { JDFComponent outComp = (JDFComponent)node.getCreateResource(ElementName.COMPONENT, EnumUsage.Output, 0); if (productType == null) { outComp.setComponentType(EnumComponentType.FinalProduct, EnumComponentType.Sheet); } else { outComp.setComponentType(EnumComponentType.PartialProduct, EnumComponentType.Sheet); outComp.setProductType(productType); } theNode.getResource(ElementName.LAYOUTINTENT, null, 0); JDFShape s = li.getFinishedDimensions().getActual(); outComp.setDimensions(s); if (theNode != node) { theNode.getResourcePool().moveElement(outComp, null); theNode.linkResource(outComp, EnumUsage.Output, null); } return(outComp); }
public virtual void testTaggedAutomatedBooklet() { n.setXMLComment("This is a simple Automated Booklet using negative ords and meta data tags\n" + "New Attribute @OrdsConsumed limits the number of ords consumed by an automated Layout\n" + "Negative Ord values are assumed to flow backwards\n" + "New Attribute @OrdReset defines the scope of ords\n" + "MaxOrd is not specified and must be calculated by counting the number of different ord values\n" + "If we want to keep maxord, it would have to be replaced by an xypair that specifies hom many are consumed from back and from front\n" + "If the number of pages is not mod 4, blank pages are retained at the back of the layout"); n.setType(EnumType.Combined); n.setTypes(new VString("Interpreting Rendering DigitalPrinting Inserting Stitching", null)); setUpAutomatedInputRunList(); rl.setDescriptiveName("This is any RunList..."); lo = (JDFLayout)n.appendMatchingResource(ElementName.LAYOUT, EnumProcessUsage.AnyInput, null); lo.setResStatus(EnumResStatus.Available, true); JDFMedia media = (JDFMedia)n.addResource("Media", EnumUsage.Input); JDFMedia mediaC = (JDFMedia)media.addPartition(EnumPartIDKey.SheetName, "TheCover"); JDFMedia mediaCMale = (JDFMedia)mediaC.addPartition(EnumPartIDKey.SetTags, "Male"); JDFMedia mediaCFemale = (JDFMedia)mediaC.addPartition(EnumPartIDKey.SetTags, "Female"); JDFComponent insert = (JDFComponent)n.addResource("Component", null, EnumUsage.Input, EnumProcessUsage.Child, null, null, null); // JDFComponent insertExist=(JDFComponent) insert.addPartition(EnumPartIDKey.DocTags, "Exist"); // JDFComponent insertProspect=(JDFComponent) insert.addPartition(EnumPartIDKey.DocTags, "Prospect"); JDFLayout cover = (JDFLayout)lo.addPartition(EnumPartIDKey.SheetName, "TheCover"); cover.setAutomated(false); JDFLayout coverMale = (JDFLayout)cover.addPartition(EnumPartIDKey.SetTags, "Male"); coverMale.refMedia(mediaCMale); JDFLayout coverMaleHi = (JDFLayout)coverMale.addPartition(EnumPartIDKey.PageTags, "Hi"); JDFLayout coverMaleLo = (JDFLayout)coverMale.addPartition(EnumPartIDKey.PageTags, "Low"); JDFLayout coverFemale = (JDFLayout)cover.addPartition(EnumPartIDKey.SetTags, "Female"); coverFemale.refMedia(mediaCFemale); JDFLayout coverFemaleHi = (JDFLayout)coverFemale.addPartition(EnumPartIDKey.PageTags, "Hi"); JDFLayout coverFemaleLo = (JDFLayout)coverFemale.addPartition(EnumPartIDKey.PageTags, "Low"); JDFLayout[] lo4 = new JDFLayout[4]; lo4[0] = coverMaleHi; lo4[1] = coverFemaleHi; lo4[2] = coverMaleLo; lo4[3] = coverFemaleLo; JDFContentObject co; for (int i = 0; i < 4; i++) { JDFLayout lolo = lo4[i]; JDFLayout coverFront = (JDFLayout)lolo.addPartition(EnumPartIDKey.Side, "Front"); co = coverFront.appendContentObject(); co.setCTM(new JDFMatrix(1, 0, 0, 1, 0, 0)); co.setOrd(0); co.setDescriptiveName("Front Cover Page Outside"); co = coverFront.appendContentObject(); co.setCTM(new JDFMatrix(1, 0, 0, 8.5 * 72, 0, 0)); co.setOrd(-1); co.setDescriptiveName("Back Cover Page Outside"); if (i < 2) { JDFLayout coverBack = (JDFLayout)lolo.addPartition(EnumPartIDKey.Side, "Back"); co = coverBack.appendContentObject(); co.setCTM(new JDFMatrix(1, 0, 0, 1, 0, 0)); co.setOrd(0); co.setDescriptiveName("Front Cover Page Inside"); co = coverBack.appendContentObject(); co.setCTM(new JDFMatrix(1, 0, 0, 8.5 * 72, 0, 0)); co.setOrd(-1); co.setDescriptiveName("Back Cover Page Inside"); } } JDFLayout sheet = (JDFLayout)lo.addPartition(EnumPartIDKey.SheetName, "TheSheet"); sheet.setAutomated(true); sheet.setAttribute("OrdReset", "Set Doc"); sheet.setAttribute("OrdsConsumed", "0 -1"); sheet = (JDFLayout)sheet.addPartition(EnumPartIDKey.SetTags, "Male Female").addPartition(EnumPartIDKey.PageTags, "Hi Lo"); JDFLayout sheetFront = (JDFLayout)sheet.addPartition(EnumPartIDKey.Side, EnumSide.Front); co = sheetFront.appendContentObject(); co.setCTM(new JDFMatrix(1, 0, 0, 1, 0, 0)); co.setOrd(0); co.setDescriptiveName("Front left Page 0,2,4..."); co = sheetFront.appendContentObject(); co.setCTM(new JDFMatrix(1, 0, 0, 1, 8.5 * 72, 0)); co.setOrd(-1); co.setDescriptiveName("Back right page after folding -1 -3 -5 ... (Front sheet)"); JDFLayout sheetBack = (JDFLayout)sheet.addPartition(EnumPartIDKey.Side, EnumSide.Back); co = sheetBack.appendContentObject(); co.setCTM(new JDFMatrix(1, 0, 0, 1, 8.5 * 72, 0)); co.setOrd(1); co.setDescriptiveName("Back left Page 1,3,5"); co = sheetBack.appendContentObject(); co.setCTM(new JDFMatrix(1, 0, 0, 1, 0, 0)); co.setOrd(-2); co.setDescriptiveName("Front Right Page Page -2 -4 -6"); string s = doc.write2String(2); s = StringUtil.replaceString(s, "SetTags", "Meta0"); s = StringUtil.replaceString(s, "DocTags", "Meta1"); s = StringUtil.replaceString(s, "PageTags", "Meta2"); FileInfo f = new FileInfo(sm_dirTestDataTemp + "TaggedAutomatedBooklet.jdf"); Stream os = new FileStream(f.FullName, FileMode.Append); byte[] ba = Encoding.ASCII.GetBytes(s); os.Write(ba, 0, ba.Length); }
/// /// <summary> * (31) create inter-resource link to refTarget </summary> /// * <param name="refTarget"> the element that is referenced </param> /// public virtual void refComponent(JDFComponent refTarget) { refElement(refTarget); }
public virtual void testVariableManifests() { ruli.setXMLComment("the set / doc / ... structure is transferred from the pre-impositioning pdl"); JDFPageList pl = (JDFPageList)n.addResource(ElementName.PAGELIST, null); pl.setResStatus(EnumResStatus.Available, false); JDFContentList cl = (JDFContentList)pl.appendContentList().makeRootResource(null, null, true); cl.setResStatus(EnumResStatus.Available, false); cl.setXMLComment("Should we allow for content-data cross references to forther contentdata fields?"); ruli.refPageList(pl); comp.refPageList(pl); int pageCount = 0; digiParams.setSides(EnumSides.TwoSidedFlipY); digiParams.setXMLComment("the sides attribute may be overridden by explicitly or implicitly missing runlist input elements"); VString vRun = new VString("Letter BrochureMale BrochureFemale", null); JDFStitchingParams sp = (JDFStitchingParams)n.addResource(ElementName.STITCHINGPARAMS, EnumUsage.Input); med.setXMLComment("Media Partitioning is convenience only- the actual media selection is done by the digitalprintingparams MediaRef"); for (int i = 0; i < vRun.Count; i++) { string part = vRun[i]; JDFMedia partMedia = (JDFMedia)med.addPartition(EnumPartIDKey.Run, part); partMedia.setProductID(part + "Media"); JDFDigitalPrintingParams digiPart = (JDFDigitalPrintingParams)digiParams.addPartition(EnumPartIDKey.Run, part); digiPart.refMedia(partMedia); sp.setXMLComment("how are multiple runs stitched together e.g. cover + body?"); JDFStitchingParams spPart = (JDFStitchingParams)sp.addPartition(EnumPartIDKey.Run, part); if (i == 0) { spPart.setNoOp(true); spPart.setDescriptiveName("The letter is a loose leaf collection"); } else { spPart.setNumberOfStitches(3); spPart.setStitchType(EnumStitchType.Saddle); } } // loop over records for (int i = 0; i < 10; i++) { JDFContentData letter = cl.appendContentData(); letter.setContentType("Letter"); JDFContentData brochure = cl.appendContentData(); brochure.setContentType("Brochure"); KElement lMeta = letter.appendElement("ContentMetadata"); // TODO apply new example lMeta.setAttribute("Record", "" + i); string gender = i % 2 == 0 ? "Male" : "Female"; lMeta.setAttribute("Gender", gender); lMeta.setXMLComment("Note that the final format of the metadata element is open"); KElement bMeta = brochure.appendElement("Metadata"); bMeta.setAttribute("Record", "" + i); bMeta.setAttribute("Gender", gender); JDFRunList runSet = (JDFRunList)ruli.addPartition(EnumPartIDKey.RunSet, "Record" + i); JDFRunList run = runSet.addRun("file://server/tifs/testLetter" + i + ".tif", 0, -1); run.setRun("Letter"); JDFComponent compSet = (JDFComponent)comp.addPartition(EnumPartIDKey.RunSet, runSet.getRunSet()); JDFComponent co = (JDFComponent)compSet.addPartition(EnumPartIDKey.Run, run.getRun()); int page = (3 * i) % 7 + 1; run.setPageListIndex(new JDFIntegerRangeList(new JDFIntegerRange(pageCount, pageCount + page - 1))); co.setPageListIndex(new JDFIntegerRangeList(new JDFIntegerRange(pageCount, pageCount + page - 1))); co.setSurfaceCount(2 * ((page + 1) / 2)); run.setPages(new JDFIntegerRangeList("0~" + (page - 1))); run.setXMLComment("Cover Letter - record " + i); run.setEndOfDocument(true); JDFPageData pd = pl.appendPageData(); pd.refContentData(letter); pd.setAttribute("PageIndex", pageCount + " ~ " + (pageCount + page - 1)); pageCount += page; run = runSet.addRun("file://server/tifs/testBrochure" + i + ".tif", 0, -1); run.setRun("Brochure" + gender); co = (JDFComponent)compSet.addPartition(EnumPartIDKey.Run, run.getRun()); page = 2 * ((7 * i) % 13) + 2; run.setPageListIndex(new JDFIntegerRangeList(new JDFIntegerRange(pageCount, pageCount + page - 1))); co.setPageListIndex(new JDFIntegerRangeList(new JDFIntegerRange(pageCount, pageCount + page - 1))); co.setSurfaceCount(2 * ((page + 1 + 1) / 2)); // the 2nd +1 is for // the blank inside // cover run.setPages(new JDFIntegerRangeList("0~" + (page - 1))); run.setXMLComment("Brochure - record " + i); run.setEndOfDocument(true); runSet.setEndOfSet(true); run.setAttribute("SkipBlankOrds", "1"); run.setNPage(page + 1); run.setXMLComment("SkipBlankOrds specifies the relative position of pages to skip\n1 specifies that the first back sheet is skipped\nNPage MUST be incremented by the # of skipped pages."); pd = pl.appendPageData(); pd.refContentData(brochure); pd.setAttribute("PageIndex", pageCount + " ~ " + (pageCount + page - 1)); pageCount += page; } doc.write2File(sm_dirTestDataTemp + "RunlistManifest.jdf", 2, false); }
protected internal static JDFDoc creatXMDoc() { JDFElement.setDefaultJDFVersion(EnumVersion.Version_1_3); JDFDoc doc = new JDFDoc("JDF"); JDFNode n = doc.getJDFRoot(); n.setJobPartID("P1"); n.setJobID("J1"); n.setType("ConventionalPrinting", true); n.appendElement("NS:Foobar", "www.foobar.com"); n.appendMatchingResource("Layout", JDFNode.EnumProcessUsage.AnyInput, null); JDFComponent comp = (JDFComponent)n.appendMatchingResource("Component", JDFNode.EnumProcessUsage.AnyOutput, null); JDFExposedMedia xm = (JDFExposedMedia)n.appendMatchingResource("ExposedMedia", JDFNode.EnumProcessUsage.Plate, null); JDFNodeInfo ni = n.appendNodeInfo(); JDFMedia m = xm.appendMedia(); m.appendElement("NS:FoobarMedia", "www.foobar.com"); Assert.AreEqual(EnumResourceClass.Consumable, m.getResourceClass(), "m Class"); VString vs = new VString(); vs.Add("SignatureName"); vs.Add("SheetName"); vs.Add("Side"); JDFAttributeMap mPart1 = new JDFAttributeMap("SignatureName", "Sig1"); mPart1.put("SheetName", "S1"); mPart1.put("Side", "Front"); xm.getCreatePartition(mPart1, vs); ni.getCreatePartition(mPart1, vs); comp.getCreatePartition(mPart1, vs); mPart1.put("Side", "Back"); xm.getCreatePartition(mPart1, vs); ni.getCreatePartition(mPart1, vs); comp.getCreatePartition(mPart1, vs); mPart1.put("SheetName", "S2"); mPart1.put("Side", "Front"); xm.getCreatePartition(mPart1, vs); ni.getCreatePartition(mPart1, vs); comp.getCreatePartition(mPart1, vs); mPart1.put("Side", "Back"); xm.getCreatePartition(mPart1, vs); ni.getCreatePartition(mPart1, vs); comp.getCreatePartition(mPart1, vs); mPart1.put("SignatureName", "Sig2"); mPart1.put("SheetName", "S1"); mPart1.put("Side", "Front"); xm.getCreatePartition(mPart1, vs); ni.getCreatePartition(mPart1, vs); comp.getCreatePartition(mPart1, vs); comp.appendElement("foo:bar", "www.foobar.com"); mPart1.put("Side", "Back"); xm.getCreatePartition(mPart1, vs); ni.getCreatePartition(mPart1, vs); comp.getCreatePartition(mPart1, vs); mPart1.put("SheetName", "S2"); mPart1.put("Side", "Front"); xm.getCreatePartition(mPart1, vs); ni.getCreatePartition(mPart1, vs); comp.getCreatePartition(mPart1, vs); mPart1.put("Side", "Back"); xm.getCreatePartition(mPart1, vs); ni.getCreatePartition(mPart1, vs); comp.getCreatePartition(mPart1, vs); return(doc); }