Author: jacopoc
Date: Fri Feb 9 01:21:18 2007
New Revision: 505230
URL: http://svn.apache.org/viewvc?view=rev&rev=505230
Log:
Formatting fixes.
Modified:
ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java
Modified:
ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java?view=diff&rev=505230&r1=505229&r2=505230
==============================================================================
---
ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java
(original)
+++
ofbiz/trunk/applications/product/src/org/ofbiz/product/feature/ProductFeatureServices.java
Fri Feb 9 01:21:18 2007
@@ -194,94 +194,99 @@
Map featuresResults =
dispatcher.runSync("getProductFeaturesByType", UtilMisc.toMap("productId",
productId));
Map features = new HashMap();
- if
(featuresResults.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_SUCCESS))
- features = (Map) featuresResults.get("productFeaturesByType");
- else
+ if
(featuresResults.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_SUCCESS))
{
+ features = (Map) featuresResults.get("productFeaturesByType");
+ } else {
return ServiceUtil.returnError((String)
featuresResults.get(ModelService.ERROR_MESSAGE_LIST));
-
- // need to keep 2 lists, oldCombinations and newCombinations, and
keep swapping them after each looping. Otherwise, you'll get a
+ }
+
+ // need to keep 2 lists, oldCombinations and newCombinations, and
keep swapping them after each looping. Otherwise, you'll get a
// concurrent modification exception
List oldCombinations = new LinkedList();
-
+
// loop through each feature type
for (Iterator fi = features.keySet().iterator(); fi.hasNext(); ) {
String currentFeatureType = (String) fi.next();
List currentFeatures = (List) features.get(currentFeatureType);
-
+
List newCombinations = new LinkedList();
List combinations;
-
+
// start with either existing combinations or from scratch
- if (oldCombinations.size() > 0)
+ if (oldCombinations.size() > 0) {
combinations = oldCombinations;
- else
+ } else {
combinations = new LinkedList();
-
+ }
+
// in both cases, use each feature of current feature type's
idCode and
// product feature and add it to the id code and product
feature applications
// of the next variant. just a matter of whether we're
starting with an
// existing list of features and id code or from scratch.
if (combinations.size()==0) {
- for (Iterator cFi = currentFeatures.iterator();
cFi.hasNext(); ) {
- GenericEntity currentFeature = (GenericEntity)
cFi.next();
- if
(currentFeature.getString("productFeatureApplTypeId").equals("SELECTABLE_FEATURE"))
{
- Map newCombination = new HashMap();
- List newFeatures = new LinkedList();
- List newFeatureIds = new LinkedList();
- if (currentFeature.getString("idCode") != null)
+ for (Iterator cFi = currentFeatures.iterator();
cFi.hasNext(); ) {
+ GenericEntity currentFeature = (GenericEntity)
cFi.next();
+ if
(currentFeature.getString("productFeatureApplTypeId").equals("SELECTABLE_FEATURE"))
{
+ Map newCombination = new HashMap();
+ List newFeatures = new LinkedList();
+ List newFeatureIds = new LinkedList();
+ if (currentFeature.getString("idCode") != null) {
newCombination.put("defaultVariantProductId",
productId + currentFeature.getString("idCode"));
- else
+ } else {
newCombination.put("defaultVariantProductId",
productId);
+ }
newFeatures.add(currentFeature);
newFeatureIds.add(currentFeature.getString("productFeatureId"));
newCombination.put("curProductFeatureAndAppls",
newFeatures);
newCombination.put("curProductFeatureIds",
newFeatureIds);
newCombinations.add(newCombination);
- }
- }
+ }
+ }
} else {
- for (Iterator comboIt = combinations.iterator();
comboIt.hasNext(); ) {
- Map combination = (Map) comboIt.next();
- for (Iterator cFi = currentFeatures.iterator();
cFi.hasNext(); ) {
- GenericEntity currentFeature = (GenericEntity)
cFi.next();
- if
(currentFeature.getString("productFeatureApplTypeId").equals("SELECTABLE_FEATURE"))
{
- Map newCombination = new HashMap();
- // .clone() is important, or you'll keep
adding to the same List for all the variants
- // have to cast twice: once from get() and
once from clone()
- List newFeatures = ((List) ((LinkedList)
combination.get("curProductFeatureAndAppls")).clone());
- List newFeatureIds = ((List) ((LinkedList)
combination.get("curProductFeatureIds")).clone());
- if (currentFeature.getString("idCode") !=
null)
-
newCombination.put("defaultVariantProductId",
combination.get("defaultVariantProductId") +
currentFeature.getString("idCode"));
- else
-
newCombination.put("defaultVariantProductId",
combination.get("defaultVariantProductId"));
- newFeatures.add(currentFeature);
-
newFeatureIds.add(currentFeature.getString("productFeatureId"));
-
newCombination.put("curProductFeatureAndAppls", newFeatures);
- newCombination.put("curProductFeatureIds",
newFeatureIds);
- newCombinations.add(newCombination);
- }
- }
- }
+ for (Iterator comboIt = combinations.iterator();
comboIt.hasNext(); ) {
+ Map combination = (Map) comboIt.next();
+ for (Iterator cFi = currentFeatures.iterator();
cFi.hasNext(); ) {
+ GenericEntity currentFeature = (GenericEntity)
cFi.next();
+ if
(currentFeature.getString("productFeatureApplTypeId").equals("SELECTABLE_FEATURE"))
{
+ Map newCombination = new HashMap();
+ // .clone() is important, or you'll keep
adding to the same List for all the variants
+ // have to cast twice: once from get() and
once from clone()
+ List newFeatures = ((List) ((LinkedList)
combination.get("curProductFeatureAndAppls")).clone());
+ List newFeatureIds = ((List) ((LinkedList)
combination.get("curProductFeatureIds")).clone());
+ if (currentFeature.getString("idCode") !=
null) {
+
newCombination.put("defaultVariantProductId",
combination.get("defaultVariantProductId") +
currentFeature.getString("idCode"));
+ } else {
+
newCombination.put("defaultVariantProductId",
combination.get("defaultVariantProductId"));
+ }
+ newFeatures.add(currentFeature);
+
newFeatureIds.add(currentFeature.getString("productFeatureId"));
+
newCombination.put("curProductFeatureAndAppls", newFeatures);
+ newCombination.put("curProductFeatureIds",
newFeatureIds);
+ newCombinations.add(newCombination);
+ }
+ }
+ }
+ }
+ if (newCombinations.size() >= oldCombinations.size()) {
+ oldCombinations = newCombinations; // save the newly
expanded list as oldCombinations
}
- if (newCombinations.size() >= oldCombinations.size())
- oldCombinations = newCombinations; // save the newly
expanded list as oldCombinations
}
-
- int defaultCodeCounter = 1;
- HashMap defaultVariantProductIds = new HashMap(); //
this map will contain the codes already used (as keys)
- defaultVariantProductIds.put(productId, null);
-
+
+ int defaultCodeCounter = 1;
+ HashMap defaultVariantProductIds = new HashMap(); // this map will
contain the codes already used (as keys)
+ defaultVariantProductIds.put(productId, null);
+
// now figure out which of these combinations already have
productIds associated with them
for (Iterator fCi = oldCombinations.iterator(); fCi.hasNext(); ) {
Map combination = (Map) fCi.next();
- // Verify if the default code is already used, if
so add a numeric suffix
- if
(defaultVariantProductIds.containsKey(combination.get("defaultVariantProductId")))
{
- combination.put("defaultVariantProductId",
combination.get("defaultVariantProductId") + (defaultCodeCounter < 10? "0" +
defaultCodeCounter: "" + defaultCodeCounter));
- defaultCodeCounter++;
- }
-
defaultVariantProductIds.put(combination.get("defaultVariantProductId"), null);
- results = dispatcher.runSync("getAllExistingVariants",
UtilMisc.toMap("productId", productId,
- "productFeatureAppls",
combination.get("curProductFeatureIds")));
+ // Verify if the default code is already used, if so add a
numeric suffix
+ if
(defaultVariantProductIds.containsKey(combination.get("defaultVariantProductId")))
{
+ combination.put("defaultVariantProductId",
combination.get("defaultVariantProductId") + (defaultCodeCounter < 10? "0" +
defaultCodeCounter: "" + defaultCodeCounter));
+ defaultCodeCounter++;
+ }
+
defaultVariantProductIds.put(combination.get("defaultVariantProductId"), null);
+ results = dispatcher.runSync("getAllExistingVariants",
UtilMisc.toMap("productId", productId,
+ "productFeatureAppls",
combination.get("curProductFeatureIds")));
combination.put("existingVariantProductIds",
results.get("variantProductIds"));
}
results = ServiceUtil.returnSuccess();