[jboss-cvs] JBossCache/old/tests-50/org/jboss/cache/aop/test/propagation/impl ...

Ben Wang bwang at jboss.com
Tue Oct 31 03:01:14 EST 2006


  User: bwang   
  Date: 06/10/31 03:01:14

  Added:       old/tests-50/org/jboss/cache/aop/test/propagation/impl      
                        StateItemImpl.java PropagationManagerImpl.java
                        AbstractPropagtionRule.java NodeImpl.java
                        PropagationRuleFactory.java ORSummaryRule.java
  Log:
  Deprecated files moved to old dir.
  
  Revision  Changes    Path
  1.1      date: 2006/10/31 08:01:14;  author: bwang;  state: Exp;JBossCache/old/tests-50/org/jboss/cache/aop/test/propagation/impl/StateItemImpl.java
  
  Index: StateItemImpl.java
  ===================================================================
  package org.jboss.cache.aop.test.propagation.impl;
  
  import org.jboss.cache.aop.test.propagation.PropagationRule;
  import org.jboss.cache.aop.test.propagation.StateItem;
  
  public class StateItemImpl implements StateItem {
     private long itemId_;
     private long state_;
  
     public StateItemImpl()
     {
     }
  
     public StateItemImpl(long itemId) {
        this.itemId_ = itemId;
        this.state_ = PropagationRule.STATE_CLEAR;
     }
  
     public long getState() {
        return this.state_;
     }
  
     public boolean setState(long state) {
        if (this.state_ != state) {
           state_ = state;
           return STATE_CHANGED;
        } else {
           return STATE_NOT_CHANGED;
        }
     }
  
     public long getItemId() {
        return this.itemId_;
     }
  
     public String toString() {
        return "Id: " + itemId_ + " state: " + state_ + "\n";
     }
  }
  
  
  
  1.1      date: 2006/10/31 08:01:14;  author: bwang;  state: Exp;JBossCache/old/tests-50/org/jboss/cache/aop/test/propagation/impl/PropagationManagerImpl.java
  
  Index: PropagationManagerImpl.java
  ===================================================================
  package org.jboss.cache.aop.test.propagation.impl;
  
  import org.jboss.cache.aop.test.propagation.Node;
  import org.jboss.cache.aop.test.propagation.PropagationManager;
  import org.jboss.cache.aop.test.propagation.PropagationRule;
  import org.jboss.cache.aop.test.propagation.StateItem;
  
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  
  public class PropagationManagerImpl implements PropagationManager {
     private Node rootNode_;
  
     private Map nodeMap_ = new HashMap();
  
     private transient PropagationRule orRule_;
  
     public PropagationManagerImpl() {
        orRule_ = PropagationRuleFactory.getPropagationRule();
     }
  
     public void setRootNode(String rdn) {
        this.rootNode_ = new NodeImpl();
        rootNode_.setNodeFDN(rdn);
        rootNode_.setNodeRDN(rdn);
        rootNode_.setPropagationRule(orRule_);
  
        StateItem summary = new StateItemImpl(0);
        summary.setState(PropagationRule.STATE_CLEAR);
        rootNode_.setSummaryStateItem(summary);
  
        registMap(rootNode_);
     }
  
     public void addNode(String parentFdn, String rdn) {
        Node parent = findNode(parentFdn);
        if (parent != null) {
           Node node = new NodeImpl();
           node.setNodeFDN(parentFdn + "." + rdn);
           node.setNodeRDN(rdn);
           node.setPropagationRule(orRule_);
  
           node.setParentNode(parent);
           parent.addChildNode(node);
  
           StateItem summary = new StateItemImpl(0);
           summary.setState(PropagationRule.STATE_CLEAR);
           node.setSummaryStateItem(summary);
  
           registMap(node);
  
           PropagationRule rule = node.getPropagationRule();
           rule.summaryUpperPropagate(node);
        }
     }
  
     public void addStateItem(String parentFdn, long itemId, long defaultState) {
        Node node = findNode(parentFdn);
        if (node != null) {
           StateItem item = new StateItemImpl(itemId);
           item.setState(defaultState);
  
           node.addStateItem(item);
  
           PropagationRule rule = node.getPropagationRule();
           rule.summaryUpperPropagate(node);
        }
     }
  
     public void stateChange(String parentFdn, long itemId, long newState) {
        Node node = findNode(parentFdn);
        if (node != null) {
           PropagationRule rule = node.getPropagationRule();
           rule.changeState(node, itemId, newState);
        }
     }
  
     public Node findNode(String fdn) {
        return (Node) nodeMap_.get(fdn);
     }
  
     private void registMap(Node node) {
        this.nodeMap_.put(node.getNodeFDN(), node);
     }
  
     public void printNodes() {
        printNode(rootNode_, "");
     }
  
     private void printNode(Node node, String prefix) {
        System.out.println(prefix + node.getNodeRDN() + " (Summary : "
                + node.getSummaryStateItem().getState() + ")");
  
        String itemPrefix = prefix + " | ";
        List items = node.getStateItems();
        int size = items.size();
        for (int idx = 0; idx < size; idx++) {
           StateItem item = (StateItem) items.get(idx);
           printStateItem(item, itemPrefix);
        }
  
        String childPrefix = prefix + " + ";
        List children = node.getChildren();
        size = children.size();
        for (int idx = 0; idx < size; idx++) {
           Node child = (Node) children.get(idx);
           printNode(child, childPrefix);
        }
     }
  
     private void printStateItem(StateItem item, String prefix) {
        System.out.println(prefix + "(" + item.getItemId() + " : "
                + item.getState() + ")");
     }
  
     private String toNodeString(Node node, String prefix) {
        StringBuffer buf = new StringBuffer();
  
        buf.append(prefix + node.getNodeRDN() + " (Summary : "
                + node.getSummaryStateItem().getState() + ")");
  
        String itemPrefix = prefix + " | ";
        List items = node.getStateItems();
        int size = items.size();
        for (int idx = 0; idx < size; idx++) {
           StateItem item = (StateItem) items.get(idx);
           buf.append(toStateItemString(item, itemPrefix));
        }
  
        String childPrefix = prefix + " + ";
        List children = node.getChildren();
        size = children.size();
        for (int idx = 0; idx < size; idx++) {
           Node child = (Node) children.get(idx);
           buf.append(toNodeString(child, childPrefix));
        }
  
        return buf.toString();
     }
  
     private String toStateItemString(StateItem item, String prefix) {
        return (prefix + "(" + item.getItemId() + " : "
                + item.getState() + ")");
     }
  
     public String toString() {
        return toNodeString(rootNode_, "+");
     }
  }
  
  
  
  1.1      date: 2006/10/31 08:01:14;  author: bwang;  state: Exp;JBossCache/old/tests-50/org/jboss/cache/aop/test/propagation/impl/AbstractPropagtionRule.java
  
  Index: AbstractPropagtionRule.java
  ===================================================================
  package org.jboss.cache.aop.test.propagation.impl;
  
  import org.jboss.cache.aop.test.propagation.Node;
  import org.jboss.cache.aop.test.propagation.PropagationRule;
  import org.jboss.cache.aop.test.propagation.StateItem;
  
  public abstract class AbstractPropagtionRule implements PropagationRule {
     public void changeState(Node node, long itemId, long state) {
        StateItem target = node.findStateItem(itemId);
        if (target == null) {
           System.out.println("[Error] StateItem not found. : " + node + ":"
                   + itemId);
           return;
        }
  
        if (StateItem.STATE_CHANGED == target.setState(state)) {
           summaryUpperPropagate(node);
        }
     }
  
     protected void upperPropagate(Node node) {
        Node parentNode = (Node) node.getParentNode();
        if (parentNode != null) {
           PropagationRule parentRule = parentNode.getPropagationRule();
           parentRule.summaryUpperPropagate(parentNode);
        }
     }
  
     protected boolean isClear(StateItem item) {
        long state = item.getState();
        if ((state % 10) == 0) {
           return true;
        } else {
           return false;
        }
     }
  
     protected long getSeverity(StateItem item) {
        long state = item.getState();
        long severity = 0;
        if (true == isSummaryItem(item)) {
           severity = state % 1000;
        } else {
           severity = (state % 1000) / 10;
        }
  
        return severity;
     }
  
     protected boolean isSummaryItem(StateItem item) {
        long state = item.getState();
        long summaryDigit = (state / 1000) % 10;
  
        if (summaryDigit == 2) {
           return true;
        } else {
           return false;
        }
     }
  
     protected long updateMaxSeverity(long maxSeverity, StateItem stateItem) {
        if (false == isClear(stateItem)) {
           long severity = getSeverity(stateItem);
           if (severity > maxSeverity) {
              maxSeverity = severity;
           }
        }
  
        return maxSeverity;
     }
  }
  
  
  
  1.1      date: 2006/10/31 08:01:14;  author: bwang;  state: Exp;JBossCache/old/tests-50/org/jboss/cache/aop/test/propagation/impl/NodeImpl.java
  
  Index: NodeImpl.java
  ===================================================================
  package org.jboss.cache.aop.test.propagation.impl;
  
  import org.jboss.cache.aop.test.propagation.Node;
  import org.jboss.cache.aop.test.propagation.PropagationRule;
  import org.jboss.cache.aop.test.propagation.StateItem;
  
  import java.util.ArrayList;
  import java.util.List;
  
  public class NodeImpl implements Node {
     private String rdn_;
  
     private String fdn_;
  
     private List childNodes_ = new ArrayList();
  
     private Node parentNode_;
  
     private List stateItems_ = new ArrayList();
  
     private StateItem summaryItem_;
  
     private transient PropagationRule rule_;
  
     public NodeImpl() {
        rule_ = PropagationRuleFactory.getPropagationRule();
     }
  
     public void setNodeRDN(String rdn) {
        this.rdn_ = rdn;
     }
  
     public String getNodeRDN() {
        return this.rdn_;
     }
  
     public void setNodeFDN(String fdn) {
        this.fdn_ = fdn;
     }
  
     public String getNodeFDN() {
        return this.fdn_;
     }
  
     public void addChildNode(Node child) {
        childNodes_.add(child);
     }
  
     public List getChildren() {
        return childNodes_;
     }
  
     public void setParentNode(Node parent) {
        parentNode_ = parent;
     }
  
     public Node getParentNode() {
        return this.parentNode_;
     }
  
     public void addStateItem(StateItem stateItem) {
        stateItems_.add(stateItem);
     }
  
     public void setSummaryStateItem(StateItem stateItem) {
        this.summaryItem_ = stateItem;
     }
  
     public StateItem getSummaryStateItem() {
        return this.summaryItem_;
     }
  
     public void setPropagationRule(PropagationRule rule) {
        this.rule_ = rule;
     }
  
     public PropagationRule getPropagationRule() {
        return rule_;
     }
  
  
     public List getStateItems() {
        return this.stateItems_;
     }
  
     public StateItem findStateItem(long itemId) {
        StateItem retItem = null;
        int size = stateItems_.size();
        for (int idx = 0; idx < size; idx++) {
           StateItem stateItem = (StateItem) stateItems_.get(idx);
           if (stateItem.getItemId() == itemId) {
              retItem = stateItem;
              break;
           }
        }
  
        return retItem;
     }
  
     public String toString() {
        return getNodeFDN();
     }
  }
  
  
  
  1.1      date: 2006/10/31 08:01:14;  author: bwang;  state: Exp;JBossCache/old/tests-50/org/jboss/cache/aop/test/propagation/impl/PropagationRuleFactory.java
  
  Index: PropagationRuleFactory.java
  ===================================================================
  package org.jboss.cache.aop.test.propagation.impl;
  
  import org.jboss.cache.aop.test.propagation.PropagationRule;
  
  public class PropagationRuleFactory {
     public static PropagationRule getPropagationRule() {
        return new ORSummaryRule();
     }
  }
  
  
  
  1.1      date: 2006/10/31 08:01:14;  author: bwang;  state: Exp;JBossCache/old/tests-50/org/jboss/cache/aop/test/propagation/impl/ORSummaryRule.java
  
  Index: ORSummaryRule.java
  ===================================================================
  package org.jboss.cache.aop.test.propagation.impl;
  
  import org.jboss.cache.aop.test.propagation.Node;
  import org.jboss.cache.aop.test.propagation.StateItem;
  
  import java.util.List;
  
  public class ORSummaryRule extends AbstractPropagtionRule {
     private static final String RULE_NAME = "OR-Rule";
  
     public void summaryUpperPropagate(Node node) {
        long maxSeverity = 0;
  
        List stateItems = node.getStateItems();
        int size = stateItems.size();
        for (int idx = 0; idx < size; idx++) {
           StateItem stateItem = (StateItem) stateItems.get(idx);
  
           maxSeverity = updateMaxSeverity(maxSeverity, stateItem);
        }
  
        List childNodes = node.getChildren();
        size = childNodes.size();
        for (int idx = 0; idx < size; idx++) {
           Node child = (Node) childNodes.get(idx);
           StateItem childSummary = child.getSummaryStateItem();
  
           maxSeverity = updateMaxSeverity(maxSeverity, childSummary);
        }
  
        long summaryState = STATE_CLEAR + maxSeverity;
        StateItem summaryItem = node.getSummaryStateItem();
        boolean isSummaryChanged = summaryItem.setState(summaryState);
  
        if (StateItem.STATE_CHANGED == isSummaryChanged) {
           upperPropagate(node);
        }
     }
  
     public String toString() {
        return RULE_NAME;
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list