~tapaal-developers/tapaal/trunk

« back to all changes in this revision

Viewing changes to src/dk/aau/cs/model/tapn/TimedArcPetriNetNetwork.java

  • Committer: srba.jiri at gmail
  • Date: 2019-03-09 17:40:57 UTC
  • mfrom: (978.3.12 MakeMultiShared)
  • Revision ID: srba.jiri@gmail.com-20190309174057-qfotipidayci6qff
merged in branch lp:~tapaal-contributor/tapaal/places-with-same-name-shared-1801728 that allows to share places/transitions with names that appear in several components

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
import java.util.Set;
9
9
 
10
10
import pipe.gui.MessengerImpl;
 
11
import pipe.gui.widgets.PlaceEditorPanel;
11
12
import dk.aau.cs.gui.undo.Command;
12
13
import dk.aau.cs.model.tapn.event.ConstantChangedEvent;
13
14
import dk.aau.cs.model.tapn.event.ConstantEvent;
60
61
                currentMarking.addMarking(tapn, marking);
61
62
                tapn.setMarking(currentMarking);
62
63
        }
63
 
        
64
64
        public void add(SharedTransition sharedTransition){
 
65
                add(sharedTransition, false);
 
66
        }
 
67
 
 
68
        
 
69
        public void add(SharedTransition sharedTransition, boolean multiAdd){
65
70
                Require.that(sharedTransition != null, "sharedTransition must not be null");
66
 
                Require.that(!isNameUsed(sharedTransition.name()), "There is already a transition or place with that name");
 
71
                if(!multiAdd) {
 
72
                        Require.that(!isNameUsed(sharedTransition.name()), "There is already a transition or place with that name");
 
73
                }
67
74
                
68
75
                sharedTransition.setNetwork(this);
69
 
                sharedTransitions.add(sharedTransition);
 
76
                if(!(sharedTransitions.contains(sharedTransition)))
 
77
                        sharedTransitions.add(sharedTransition);
70
78
        }
71
79
        
72
80
        public void add(SharedPlace sharedPlace) {
 
81
                add(sharedPlace, false);
 
82
        }
 
83
        
 
84
        public void add(SharedPlace sharedPlace, boolean multiremove) {
73
85
                Require.that(sharedPlace != null, "sharedPlace must not be null");
74
 
                Require.that(!isNameUsed(sharedPlace.name()), "There is already a transition or place with that name");
75
 
                
 
86
                if(multiremove == false) {
 
87
                        Require.that(!isNameUsed(sharedPlace.name()), "There is already a transition or place with that name");
 
88
                }
76
89
                sharedPlace.setNetwork(this);
77
90
                sharedPlace.setCurrentMarking(currentMarking);
78
 
                sharedPlaces.add(sharedPlace);          
 
91
                if(!(sharedPlaces.contains(sharedPlace)))
 
92
                        sharedPlaces.add(sharedPlace);
79
93
        }
80
94
 
81
95
        public boolean isNameUsedForShared(String name){
100
114
                }
101
115
                return false;
102
116
        }
 
117
        
 
118
        public boolean isNameUsedForPlacesOnly(String name) {
 
119
                for(TimedArcPetriNet net : tapns){
 
120
                        for(TimedTransition transition : net.transitions()) {
 
121
                                if(name.equalsIgnoreCase(transition.name()))
 
122
                                        return false;
 
123
                        }
 
124
                }
 
125
                return true;
 
126
        }
 
127
        public boolean isNameUsedForTransitionsOnly(String name) {
 
128
                for(TimedArcPetriNet net : tapns){
 
129
                        for(TimedPlace place : net.places()) {
 
130
                                if(name.equalsIgnoreCase(place.name()))
 
131
                                        return false;
 
132
                        }
 
133
                }
 
134
                return true;
 
135
        }
103
136
                
104
137
        public boolean isNameUsed(String name) {
105
138
                return isNameUsedForShared(name) || isNameUsedInTemplates(name);