private void exportProductsToDest(List products, ProductType type)
throws Exception {
if (products != null && products.size() > 0) {
for (Iterator i = products.iterator(); i.hasNext();) {
Product p = (Product) i.next();
if (ensureUnique) {
boolean hasProduct = safeHasProductTypeByName(p
.getProductName());
if (hasProduct) {
LOG.log(Level.INFO, "Skipping product: ["
+ p.getProductName()
+ "]: ensure unique enabled: "
+ "product exists in dest catalog");
continue;
}
}
p.setProductType(type);
if (sourceClient != null) {
p
.setProductReferences(sourceClient
.getProductReferences(p));
} else
p.setProductReferences(srcCatalog.getProductReferences(p));
Metadata met = null;
if (sourceClient != null) {
met = sourceClient.getMetadata(p);
} else {
met = srcCatalog.getMetadata(p);
}
LOG
.log(
Level.INFO,
"Source Product: ["
+ p.getProductName()
+ "]: Met Extraction and "
+ "Reference Extraction successful: writing to dest file manager");
// remove the default CAS fields for metadata
met.removeMetadata("CAS.ProductId");
met.removeMetadata("CAS.ProductReceivedTime");
met.removeMetadata("CAS.ProductName");
Product destProduct = new Product();
// copy through
destProduct.setProductName(p.getProductName());
destProduct.setProductStructure(p.getProductStructure());
destProduct.setProductType((destClient != null) ? destClient
.getProductTypeById(type.getProductTypeId()) : type);
destProduct.setTransferStatus(p.getTransferStatus());
LOG.log(Level.INFO, "Cataloging Product: ["
+ p.getProductName() + "]");
String destProductId = null;
if (destCatalog != null) {
destCatalog.addProduct(destProduct);
destProductId = destProduct.getProductId();
} else
destProductId = destClient.catalogProduct(destProduct);
LOG.log(Level.INFO, "Catalog successful: dest product id: ["
+ destProductId + "]");
destProduct.setProductId(destProductId);
LOG.log(Level.INFO, "Adding references for dest product: ["
+ destProductId + "]");
destProduct.setProductReferences(p.getProductReferences());
if (destCatalog != null) {
destCatalog.addProductReferences(destProduct);
} else
destClient.addProductReferences(destProduct);
LOG.log(Level.INFO,