📄 itemconfigurationnode.java
字号:
GenericValue oneChild = null;
ItemConfigurationNode oneChildNode = null;
while(childrenIterator.hasNext()) {
oneChild = (GenericValue)childrenIterator.next();
oneChildNode = new ItemConfigurationNode(oneChild.getString("productId"), delegator);
// Configurator
//oneChildNode = configurator(oneChild, productFeatures, getRootNode().getProductForRules(), delegator);
// If the node is null this means that the node has been discarded by the rules.
if (oneChildNode != null) {
oneChildNode.setParentNode(this);
oneChildNode.loadParents(partBomTypeId, inDate, productFeatures);
}
childrenNodes.add(oneChildNode);
}
}
/** Getter for property parentNode.
* @return Value of property parentNode.
*
*/
public ItemConfigurationNode getParentNode() {
return parentNode;
}
public ItemConfigurationNode getRootNode() {
return (parentNode != null? getParentNode(): this);
}
/** Setter for property parentNode.
* @param parentNode New value of property parentNode.
*
*/
public void setParentNode(ItemConfigurationNode parentNode) {
this.parentNode = parentNode;
}
// ------------------------------------
// Method used for TEST and DEBUG purposes
public void print(StringBuffer sb, float quantity, int depth) {
for (int i = 0; i < depth; i++) {
sb.append("<b> * </b>");
}
sb.append(part.get("productId"));
sb.append(" - ");
sb.append("" + quantity);
GenericValue oneChild = null;
ItemConfigurationNode oneChildNode = null;
depth++;
for (int i = 0; i < children.size(); i++) {
oneChild = (GenericValue)children.get(i);
float bomQuantity = 0;
try {
bomQuantity = oneChild.getDouble("quantity").floatValue();
} catch(Exception exc) {
bomQuantity = 1;
}
oneChildNode = (ItemConfigurationNode)childrenNodes.get(i);
sb.append("<br>");
if (oneChildNode != null) {
oneChildNode.print(sb, (quantity * bomQuantity), depth);
}
}
}
public void print(ArrayList arr, float quantity, int depth) {
// Now we set the depth and quantity of the current node
// in this breakdown.
this.depth = depth;
this.quantity = quantity * quantityMultiplier;
// First of all we visit the corrent node.
arr.add(this);
// Now (recursively) we visit the children.
GenericValue oneChild = null;
ItemConfigurationNode oneChildNode = null;
depth++;
for (int i = 0; i < children.size(); i++) {
oneChild = (GenericValue)children.get(i);
// float bomQuantity = 0;
// try {
// bomQuantity = oneChild.getDouble("quantity").floatValue();
// } catch(Exception exc) {
// bomQuantity = 1;
// }
oneChildNode = (ItemConfigurationNode)childrenNodes.get(i);
if (oneChildNode != null) {
// oneChildNode.print(arr, (quantity * bomQuantity), depth);
oneChildNode.print(arr, this.quantity, depth);
}
}
}
// Method used for TEST and DEBUG purposes
public void sumQuantity(HashMap nodes) {
// First of all, we try to fetch a node with the same partId
ItemConfigurationNode sameNode = (ItemConfigurationNode)nodes.get(part.getString("productId"));
// If the node is not found we create a new node for the current part
if (sameNode == null) {
sameNode = new ItemConfigurationNode(part);
nodes.put(part.getString("productId"), sameNode);
}
// Now we add the current quantity to the node
sameNode.setQuantity(sameNode.getQuantity() + quantity);
// Now (recursively) we visit the children.
ItemConfigurationNode oneChildNode = null;
for (int i = 0; i < childrenNodes.size(); i++) {
oneChildNode = (ItemConfigurationNode)childrenNodes.get(i);
if (oneChildNode != null) {
oneChildNode.sumQuantity(nodes);
}
}
}
protected boolean isVirtual() {
return (part.get("isVirtual") != null? part.get("isVirtual").equals("Y"): false);
}
public void isConfigured(ArrayList arr) {
// First of all we visit the corrent node.
if (isVirtual()) {
arr.add(this);
}
// Now (recursively) we visit the children.
GenericValue oneChild = null;
ItemConfigurationNode oneChildNode = null;
for (int i = 0; i < children.size(); i++) {
oneChild = (GenericValue)children.get(i);
oneChildNode = (ItemConfigurationNode)childrenNodes.get(i);
if (oneChildNode != null) {
oneChildNode.isConfigured(arr);
}
}
}
/** Getter for property quantity.
* @return Value of property quantity.
*
*/
public float getQuantity() {
return quantity;
}
public void setQuantity(float quantity) {
this.quantity = quantity;
}
/** Getter for property depth.
* @return Value of property depth.
*
*/
public int getDepth() {
return depth;
}
public GenericValue getPart() {
return part;
}
/** Getter for property substitutedNode.
* @return Value of property substitutedNode.
*
*/
public ItemConfigurationNode getSubstitutedNode() {
return substitutedNode;
}
/** Setter for property substitutedNode.
* @param substitutedNode New value of property substitutedNode.
*
*/
public void setSubstitutedNode(ItemConfigurationNode substitutedNode) {
this.substitutedNode = substitutedNode;
}
public String getRootProductForRules() {
return getParentNode().getProductForRules();
}
/** Getter for property productForRules.
* @return Value of property productForRules.
*
*/
public String getProductForRules() {
return productForRules;
}
/** Setter for property productForRules.
* @param productForRules New value of property productForRules.
*
*/
public void setProductForRules(String productForRules) {
this.productForRules = productForRules;
}
/** Getter for property bomTypeId.
* @return Value of property bomTypeId.
*
*/
public java.lang.String getBomTypeId() {
return bomTypeId;
}
/** Getter for property quantityMultiplier.
* @return Value of property quantityMultiplier.
*
*/
public float getQuantityMultiplier() {
return quantityMultiplier;
}
/** Setter for property quantityMultiplier.
* @param quantityMultiplier New value of property quantityMultiplier.
*
*/
public void setQuantityMultiplier(float quantityMultiplier) {
this.quantityMultiplier = quantityMultiplier;
}
/** Getter for property ruleApplied.
* @return Value of property ruleApplied.
*
*/
public org.ofbiz.entity.GenericValue getRuleApplied() {
return ruleApplied;
}
/** Setter for property ruleApplied.
* @param ruleApplied New value of property ruleApplied.
*
*/
public void setRuleApplied(org.ofbiz.entity.GenericValue ruleApplied) {
this.ruleApplied = ruleApplied;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -