private void copyIndexCoding() { final ProductNodeGroup<IndexCoding> indexCodingGroup = sourceProduct.getIndexCodingGroup(); for (int i = 0; i < indexCodingGroup.getNodeCount(); i++) { IndexCoding sourceIndexCoding = indexCodingGroup.get(i); ProductUtils.copyIndexCoding(sourceIndexCoding, targetProduct); } }
/** * Copies the index codings from the source product to the target. * * @param source the source product * @param target the target product */ public static void copyIndexCodings(Product source, Product target) { Guardian.assertNotNull("source", source); Guardian.assertNotNull("target", target); int numCodings = source.getIndexCodingGroup().getNodeCount(); for (int n = 0; n < numCodings; n++) { IndexCoding sourceFlagCoding = source.getIndexCodingGroup().get(n); copyIndexCoding(sourceFlagCoding, target); } }
@Test public void testCopyIndexCoding() { final IndexCoding originalIndexCoding = new IndexCoding("sesame street characters"); originalIndexCoding.addIndex("erni", 0, "erni character"); originalIndexCoding.addIndex("bert", 1, "bert character"); final Product product = new Product("S", "S", 0, 0); ProductUtils.copyIndexCoding(originalIndexCoding, product); final ProductNodeGroup<IndexCoding> indexCodingGroup = product.getIndexCodingGroup(); assertNotNull(indexCodingGroup); assertEquals(1, indexCodingGroup.getNodeCount()); final IndexCoding actualIndexCoding = indexCodingGroup.get("sesame street characters"); assertNotNull(actualIndexCoding); assertNotSame(originalIndexCoding, actualIndexCoding); assertMetadataAttributeEqualityInt(originalIndexCoding.getIndex("erni"), actualIndexCoding.getIndex("erni")); assertMetadataAttributeEqualityInt(originalIndexCoding.getIndex("bert"), actualIndexCoding.getIndex("bert")); // try to copy the same coding a second time ProductUtils.copyIndexCoding(originalIndexCoding, product); assertEquals(1, indexCodingGroup.getNodeCount()); }
IndexCoding destIndexCoding = product.getIndexCodingGroup().get(indexCodingName); if (destIndexCoding == null) { destIndexCoding = ProductUtils.copyIndexCoding(sourceIndexCoding, product);
copyIndexCoding(srcIndexCoding, targetProduct); targetBand.setSampleCoding(targetProduct.getIndexCodingGroup().get(srcIndexCoding.getName()));