private static void combineWithAttribute( IProductDefinitionUpdate product, IAttributeDefinition attribute) throws Exception { List currentConfigurationList = product.getProductConfiguration(); List newConfigurationList = new Vector(); for (Iterator confIterator = currentConfigurationList.iterator(); confIterator.hasNext(); ) { IProductConfiguration productConfiguration = (IProductConfiguration) confIterator.next(); for (Iterator attValIt = attribute.getAllowedValue().iterator(); attValIt.hasNext(); ) { IProductConfiguration configuration = ProductConfigurationFactory.createFacade(); // Set static info configuration.setDescription(productConfiguration.getDescription()); configuration.setGlobalPLI(productConfiguration.getGlobalPLI()); configuration.setPermissioningSystem(productConfiguration.getPermissioningSystem()); // Copy the source attribute configuration configuration.setAttribute(productConfiguration.getAttribute()); // Add new attribute Attribute a = AttributeFactory.createFacade(); a.setAttributeID(attribute.getAttributeID()); a.setValueID(((IAllowedAttributeValue) attValIt.next()).getValueID()); configuration.addAttribute(a); newConfigurationList.add(configuration); } } // Replace configuration list product.setProductConfiguration(newConfigurationList); currentConfigurationList = null; }