// This file was generated by DAJ from statistics.trv. import edu.neu.ccs.demeter.*; public aspect statistics { public void Container.sum() { Summing v = new Summing(); _s0(v); } /* strategy: _s0: from Container to Weight traversal: Start set: [Container: {0}] Nodes: Container: {0} Item_List: {0} Item: {0} Simple: {0} java.lang.Object: {0} Weight: {0} Edges: -> Container,contents,Item_List: {0} -> Item_List,elements,Item: {0} => Item,Simple: {0} -> Simple,w,Weight: {0} => Item,Container: {0} Finish set: [Weight: {0}] */ void Container._s0() { java.util.BitSet[] tokens = { new java.util.BitSet() }; tokens[0].set(0); _s0(tokens); } void Container._s0(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (contents != null) _s0_crossing_contents(newTokens); } } void Container._s0_crossing_contents(java.util.BitSet[] tokens) { this.contents._s0(tokens); } void Item_List._s0(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) for (java.util.Iterator it = iterator(); it.hasNext();) _s0_crossing_elements((Item) it.next(), newTokens); } } void Item_List._s0_crossing_elements(Item it, java.util.BitSet[] tokens) { it._s0(tokens); } void Item._s0(java.util.BitSet[] tokens) { } void Simple._s0(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (w != null) _s0_crossing_w(newTokens); } } void Simple._s0_crossing_w(java.util.BitSet[] tokens) { this.w._s0(tokens); } void Weight._s0(java.util.BitSet[] tokens) { } void Container._s0(Summing v) { _s0(); } before(Summing v, Weight host): execution(void _s0(java.util.BitSet[])) && target(host) && cflow(execution(void _s0(Summing)) && args(v)) { v.before(host); } } // statistics