// This file was generated by DAJ from Execute.trv. import edu.neu.ccs.demeter.*; public aspect Execute { public void ChineseWallPolicyChecker.execAutomata() { ExecVisitor v = new ExecVisitor(); eachAutomaton(v); } /* strategy: eachAutomaton: from ChineseWallPolicyChecker to * traversal: Start set: [ChineseWallPolicyChecker: {0}] Nodes: ChineseWallPolicyChecker: {0} ChineseWallAutomaton_List: {0} ChineseWallAutomaton: {0} AutomatonName: {0} java.lang.Object: {0} edu.neu.ccs.demeter.Ident: {0} java.io.Serializable: {0} State: {0} Group_List: {0} Group: {0} GroupName: {0} CIType: {0} CITypeName: {0} CIType_List: {0} Transition_List: {0} Transition: {0} Access: {0} ObjektId: {0} Access_List: {0} Edges: -> ChineseWallPolicyChecker,chineseWallAutomaton_List,ChineseWallAutomaton_List: {0} -> ChineseWallAutomaton_List,elements,ChineseWallAutomaton: {0} -> ChineseWallAutomaton,automatonName,AutomatonName: {0} :> AutomatonName,java.lang.Object: {0} -> AutomatonName,ident,edu.neu.ccs.demeter.Ident: {0} :> edu.neu.ccs.demeter.Ident,java.lang.Object: {0} :> edu.neu.ccs.demeter.Ident,java.io.Serializable: {0} -> ChineseWallAutomaton,currentState,State: {0} -> State,g_accesses,Group_List: {0} -> Group_List,elements,Group: {0} :> Group,java.lang.Object: {0} -> Group,groupName,GroupName: {0} :> GroupName,java.lang.Object: {0} -> GroupName,ident,edu.neu.ccs.demeter.Ident: {0} -> Group,cIType,CIType: {0} :> CIType,java.lang.Object: {0} -> CIType,cITypeName,CITypeName: {0} -> CITypeName,ident,edu.neu.ccs.demeter.Ident: {0} :> CITypeName,java.lang.Object: {0} :> Group_List,java.lang.Object: {0} -> State,t_accesses,CIType_List: {0} -> CIType_List,elements,CIType: {0} :> CIType_List,java.lang.Object: {0} :> State,java.lang.Object: {0} -> ChineseWallAutomaton,startState,State: {0} -> ChineseWallAutomaton,transition,Transition_List: {0} -> Transition_List,elements,Transition: {0} -> Transition,newAccess,Access: {0} -> Access,objektId,ObjektId: {0} :> ObjektId,java.lang.Object: {0} -> ObjektId,ident,edu.neu.ccs.demeter.Ident: {0} -> Access,group,Group: {0} :> Access,java.lang.Object: {0} :> Transition,java.lang.Object: {0} :> Transition_List,java.lang.Object: {0} -> ChineseWallAutomaton,groups,Group_List: {0} -> ChineseWallAutomaton,citypes,CIType_List: {0} -> ChineseWallAutomaton,history,Access_List: {0} -> Access_List,elements,Access: {0} :> Access_List,java.lang.Object: {0} :> ChineseWallAutomaton,java.lang.Object: {0} :> ChineseWallAutomaton_List,java.lang.Object: {0} :> ChineseWallPolicyChecker,java.lang.Object: {0} Finish set: [java.lang.Object: {0}, CITypeName: {0}, edu.neu.ccs.demeter.Ident: {0}, java.io.Serializable: {0}, Access: {0}, ObjektId: {0}, Group: {0}, Transition_List: {0}, Transition: {0}, Access_List: {0}, GroupName: {0}, CIType: {0}, ChineseWallAutomaton_List: {0}, ChineseWallAutomaton: {0}, Group_List: {0}, State: {0}, CIType_List: {0}, ChineseWallPolicyChecker: {0}, AutomatonName: {0}] */ void ChineseWallPolicyChecker.eachAutomaton() { java.util.BitSet[] tokens = { new java.util.BitSet() }; tokens[0].set(0); eachAutomaton(tokens); } void ChineseWallPolicyChecker.eachAutomaton(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 (chineseWallAutomaton_List != null) eachAutomaton_crossing_chineseWallAutomaton_List(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void ChineseWallPolicyChecker.eachAutomaton_crossing_chineseWallAutomaton_List(java.util.BitSet[] tokens) { this.chineseWallAutomaton_List.eachAutomaton(tokens); } void ChineseWallAutomaton_List.eachAutomaton(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();) eachAutomaton_crossing_elements((ChineseWallAutomaton) it.next(), newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void ChineseWallAutomaton_List.eachAutomaton_crossing_elements(ChineseWallAutomaton it, java.util.BitSet[] tokens) { it.eachAutomaton(tokens); } void ChineseWallAutomaton.eachAutomaton(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 (automatonName != null) eachAutomaton_crossing_automatonName(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (currentState != null) eachAutomaton_crossing_currentState(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (startState != null) eachAutomaton_crossing_startState(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (transition != null) eachAutomaton_crossing_transition(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (groups != null) eachAutomaton_crossing_groups(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (citypes != null) eachAutomaton_crossing_citypes(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (history != null) eachAutomaton_crossing_history(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void ChineseWallAutomaton.eachAutomaton_crossing_automatonName(java.util.BitSet[] tokens) { this.automatonName.eachAutomaton(tokens); } void ChineseWallAutomaton.eachAutomaton_crossing_currentState(java.util.BitSet[] tokens) { this.currentState.eachAutomaton(tokens); } void ChineseWallAutomaton.eachAutomaton_crossing_startState(java.util.BitSet[] tokens) { this.startState.eachAutomaton(tokens); } void ChineseWallAutomaton.eachAutomaton_crossing_transition(java.util.BitSet[] tokens) { this.transition.eachAutomaton(tokens); } void ChineseWallAutomaton.eachAutomaton_crossing_groups(java.util.BitSet[] tokens) { this.groups.eachAutomaton(tokens); } void ChineseWallAutomaton.eachAutomaton_crossing_citypes(java.util.BitSet[] tokens) { this.citypes.eachAutomaton(tokens); } void ChineseWallAutomaton.eachAutomaton_crossing_history(java.util.BitSet[] tokens) { this.history.eachAutomaton(tokens); } void AutomatonName.eachAutomaton(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void State.eachAutomaton(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 (g_accesses != null) eachAutomaton_crossing_g_accesses(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (t_accesses != null) eachAutomaton_crossing_t_accesses(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void State.eachAutomaton_crossing_g_accesses(java.util.BitSet[] tokens) { this.g_accesses.eachAutomaton(tokens); } void State.eachAutomaton_crossing_t_accesses(java.util.BitSet[] tokens) { this.t_accesses.eachAutomaton(tokens); } void Group_List.eachAutomaton(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();) eachAutomaton_crossing_elements((Group) it.next(), newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Group_List.eachAutomaton_crossing_elements(Group it, java.util.BitSet[] tokens) { it.eachAutomaton(tokens); } void Group.eachAutomaton(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (groupName != null) eachAutomaton_crossing_groupName(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (cIType != null) eachAutomaton_crossing_cIType(newTokens); } } void Group.eachAutomaton_crossing_groupName(java.util.BitSet[] tokens) { this.groupName.eachAutomaton(tokens); } void Group.eachAutomaton_crossing_cIType(java.util.BitSet[] tokens) { this.cIType.eachAutomaton(tokens); } void GroupName.eachAutomaton(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void CIType.eachAutomaton(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (cITypeName != null) eachAutomaton_crossing_cITypeName(newTokens); } } void CIType.eachAutomaton_crossing_cITypeName(java.util.BitSet[] tokens) { this.cITypeName.eachAutomaton(tokens); } void CITypeName.eachAutomaton(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void CIType_List.eachAutomaton(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();) eachAutomaton_crossing_elements((CIType) it.next(), newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void CIType_List.eachAutomaton_crossing_elements(CIType it, java.util.BitSet[] tokens) { it.eachAutomaton(tokens); } void Transition_List.eachAutomaton(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();) eachAutomaton_crossing_elements((Transition) it.next(), newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Transition_List.eachAutomaton_crossing_elements(Transition it, java.util.BitSet[] tokens) { it.eachAutomaton(tokens); } void Transition.eachAutomaton(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 (newAccess != null) eachAutomaton_crossing_newAccess(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Transition.eachAutomaton_crossing_newAccess(java.util.BitSet[] tokens) { this.newAccess.eachAutomaton(tokens); } void Access.eachAutomaton(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 (objektId != null) eachAutomaton_crossing_objektId(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } if (!newTokens[0].isEmpty()) if (group != null) eachAutomaton_crossing_group(newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Access.eachAutomaton_crossing_objektId(java.util.BitSet[] tokens) { this.objektId.eachAutomaton(tokens); } void Access.eachAutomaton_crossing_group(java.util.BitSet[] tokens) { this.group.eachAutomaton(tokens); } void ObjektId.eachAutomaton(java.util.BitSet[] tokens) { { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Access_List.eachAutomaton(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();) eachAutomaton_crossing_elements((Access) it.next(), newTokens); } { java.util.BitSet[] newTokens = { new java.util.BitSet() }; if (tokens[0].get(0)) { newTokens[0].set(0); } } } void Access_List.eachAutomaton_crossing_elements(Access it, java.util.BitSet[] tokens) { it.eachAutomaton(tokens); } void ChineseWallPolicyChecker.eachAutomaton(ExecVisitor v) { eachAutomaton(); } before(ExecVisitor v, ChineseWallAutomaton host): execution(void eachAutomaton(java.util.BitSet[])) && target(host) && cflow(execution(void eachAutomaton(ExecVisitor)) && args(v)) { v.before(host); } before(ExecVisitor v, Transition host): execution(void eachAutomaton(java.util.BitSet[])) && target(host) && cflow(execution(void eachAutomaton(ExecVisitor)) && args(v)) { v.before(host); } public CIType Group_List.findCIType(String groupName) { FindCIVisitor v = new FindCIVisitor(groupName); eachGroupName(v); return (CIType) v.getReturnValue(); } /* strategy: eachGroupName: from Group_List to GroupName traversal: Start set: [Group_List: {0}] Nodes: Group_List: {0} Group: {0} java.lang.Object: {0} GroupName: {0} Edges: -> Group_List,elements,Group: {0} -> Group,groupName,GroupName: {0} Finish set: [GroupName: {0}] */ void Group_List.eachGroupName() { java.util.BitSet[] tokens = { new java.util.BitSet() }; tokens[0].set(0); eachGroupName(tokens); } void Group_List.eachGroupName(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();) eachGroupName_crossing_elements((Group) it.next(), newTokens); } } void Group_List.eachGroupName_crossing_elements(Group it, java.util.BitSet[] tokens) { it.eachGroupName(tokens); } void Group.eachGroupName(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 (groupName != null) eachGroupName_crossing_groupName(newTokens); } } void Group.eachGroupName_crossing_groupName(java.util.BitSet[] tokens) { this.groupName.eachGroupName(tokens); } void GroupName.eachGroupName(java.util.BitSet[] tokens) { } void Group_List.eachGroupName(FindCIVisitor v) { eachGroupName(); } before(FindCIVisitor v, Group host): execution(void eachGroupName(java.util.BitSet[])) && target(host) && cflow(execution(void eachGroupName(FindCIVisitor)) && args(v)) { v.before(host); } before(FindCIVisitor v, GroupName host): execution(void eachGroupName(java.util.BitSet[])) && target(host) && cflow(execution(void eachGroupName(FindCIVisitor)) && args(v)) { v.before(host); } } // Execute