public virtual void testGetTargetVectorSparse() { JDFNode n = new JDFDoc("JDF").getJDFRoot(); JDFExposedMedia xm = (JDFExposedMedia)n.getCreateResource("ExposedMedia", EnumUsage.Input, 0); JDFExposedMedia xmb = (JDFExposedMedia)xm.addPartition(EnumPartIDKey.Separation, "Black"); JDFExposedMedia xmbe = (JDFExposedMedia)xmb.addPartition(EnumPartIDKey.PartVersion, "EN"); JDFExposedMedia xmbd = (JDFExposedMedia)xmb.addPartition(EnumPartIDKey.PartVersion, "DE"); JDFExposedMedia xmc = (JDFExposedMedia)xm.addPartition(EnumPartIDKey.Separation, "Cyan"); xm.setPartUsage(EnumPartUsage.Sparse); JDFResourceLink rl = n.getLink(xm, null); rl.setPartMap(new JDFAttributeMap("PartVersion", "DE")); VElement v = rl.getTargetVector(-1); Assert.AreEqual(2, v.Count, "DE/Black + Cyan"); Assert.AreEqual(xmbd, v[0]); Assert.AreEqual(xmc, v[1]); rl.setPartMap(new JDFAttributeMap("PartVersion", "EN")); v = rl.getTargetVector(-1); Assert.AreEqual(2, v.Count); Assert.AreEqual(xmbe, v[0]); Assert.AreEqual(xmc, v[1]); rl.setPartMap(new JDFAttributeMap("PartVersion", "FR")); v = rl.getTargetVector(-1); Assert.AreEqual(1, v.Count); Assert.AreEqual(xmc, v[0]); xm.setPartUsage(EnumPartUsage.Implicit); v = rl.getTargetVector(-1); Assert.AreEqual(2, v.Count); // TODO should be xmb? Assert.AreEqual(xm, v[0]); Assert.AreEqual(xmc, v[1]); }
public virtual void testGetTarget() { JDFDoc d = JDFTestCaseBase.creatXMDoc(); JDFNode n = d.getJDFRoot(); JDFExposedMedia xm = (JDFExposedMedia)n.getMatchingResource("ExposedMedia", JDFNode.EnumProcessUsage.AnyInput, null, 0); JDFAttributeMap mPart = new JDFAttributeMap("SignatureName", "Sig1"); mPart.put("SignatureName", "S12234"); mPart.put("SheetName", "S12"); mPart.put("Side", "Front"); JDFAttributeMap mPart2 = new JDFAttributeMap("SignatureName", "Sig1"); mPart2.put("SignatureName", "Sig1"); mPart2.put("SheetName", "S1"); mPart2.put("Side", "Front"); JDFExposedMedia xmPart = (JDFExposedMedia)xm.getPartition(mPart2, null); Assert.IsNotNull(xmPart); JDFResourceLink rl = n.getMatchingLink("ExposedMedia", EnumProcessUsage.Plate, 0); rl.setPartMap(mPart); Assert.IsNull(rl.getTarget()); Assert.AreEqual(0, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Explicit); Assert.IsNull(rl.getTarget()); Assert.AreEqual(0, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Implicit); Assert.AreEqual(xm, rl.getTarget()); Assert.AreEqual(1, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Sparse); Assert.AreEqual(null, rl.getTarget()); Assert.AreEqual(0, rl.getTargetVector(0).Count); rl.setPartMap(mPart2); xm.removeAttribute("PartUsage"); Assert.AreEqual(xmPart, rl.getTarget()); Assert.AreEqual(1, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Explicit); Assert.AreEqual(xmPart, rl.getTarget()); Assert.AreEqual(1, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Implicit); Assert.AreEqual(xmPart, rl.getTarget()); Assert.AreEqual(1, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Sparse); Assert.AreEqual(xmPart, rl.getTarget()); Assert.AreEqual(1, rl.getTargetVector(0).Count); mPart2.put("PartVersion", "Fnarf"); rl.setPartMap(mPart2); xm.removeAttribute("PartUsage"); Assert.AreEqual(null, rl.getTarget()); Assert.AreEqual(0, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Explicit); Assert.AreEqual(null, rl.getTarget()); Assert.AreEqual(0, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Implicit); Assert.AreEqual(xmPart, rl.getTarget()); Assert.AreEqual(1, rl.getTargetVector(0).Count); xm.setPartUsage(EnumPartUsage.Sparse); Assert.AreEqual(xmPart, rl.getTarget()); Assert.AreEqual(1, rl.getTargetVector(0).Count); }
/// /// * <param name="icsLevel"> </param> /// protected internal virtual void initPlateXM(EnumUsage usage) { JDFResourceLink rl = null; if (thePreviousNode != null) // either input (for cp, or output for // plateset) { rl = theNode.linkResource(thePreviousNode.getResource(ElementName.EXPOSEDMEDIA, null, 0), usage, null); } if (rl == null && theParentNode != null) { rl = theNode.ensureLink(theParentNode.getResource(ElementName.EXPOSEDMEDIA, null, 0), usage, null); } JDFExposedMedia xm = (JDFExposedMedia)theNode.getCreateResource(ElementName.EXPOSEDMEDIA, usage, 0); xm.setPartUsage(EnumPartUsage.Explicit); rl = theNode.getLink(xm, null); JDFMedia m = ((JDFExposedMedia)xm.getLeaves(false)[0]).getMedia(); if (m == null) { m = initPlateMedia(); } else { m = (JDFMedia)m.getResourceRoot(); if (theParentNode != null) { theNode.ensureLink(theParentNode.getResource("Media", EnumUsage.Input, 0), EnumUsage.Input, null); } } xm.setResStatus(EnumResStatus.Unavailable, false); if (!bPartitionedPlateMedia && xm.getMedia() == null) { xm.refElement(m); } if (EnumUsage.Input.Equals(usage)) { rl.setProcessUsage(EnumProcessUsage.Plate); JDFResourceLink link = theNode.getLink(m, null); if (link != null) { link.deleteNode(); } } if (vParts != null) { for (int i = 0; i < vParts.Count; i++) { JDFAttributeMap part = new JDFAttributeMap(vParts[i]); JDFResource xmp = xm.getCreatePartition(part, partIDKeys); int ncols = "Front".Equals(part.get("Side")) ? nCols[0] : nCols[1]; for (int j = 0; j < ncols; j++) { part.put(EnumPartIDKey.Separation, cols.stringAt(j)); xmp.getCreatePartition(part, partIDKeys); } } if (bPartitionedPlateMedia) { VJDFAttributeMap vSheets = getReducedMap(new VString("Side Separation PartVersion", null)); for (int i = 0; i < vSheets.Count; i++) { JDFAttributeMap part = new JDFAttributeMap(vSheets[i]); JDFExposedMedia xmp = (JDFExposedMedia)xm.getCreatePartition(part, partIDKeys); if (xmp.getMedia() == null) { xmp.refMedia((JDFMedia)m.getCreatePartition(part, null)); } } } } }