1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.wsmo.factory;
20
21 import java.util.*;
22
23 import org.omwg.logicalexpression.*;
24 import org.omwg.ontology.*;
25 import org.wsmo.common.*;
26 import org.wsmo.common.exception.InvalidModelException;
27 import org.wsmo.service.choreography.*;
28 import org.wsmo.service.choreography.rule.*;
29 import org.wsmo.service.rule.*;
30 import org.wsmo.service.signature.*;
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 public abstract class ChoreographyFactory {
62
63 public interface Containers {
64 public Choreography createChoreography(Identifier id);
65
66 public Choreography createChoreography(Identifier id, StateSignature signature, ChoreographyRules rules);
67
68 public StateSignature createStateSignature(Identifier id);
69
70 public StateSignature createStateSignature(Identifier id, Set<In> inMode, Set<Out> outMode,
71 Set<Shared> sharedMode, Set<Static> staticMode, Set<Controlled> controlledMode);
72
73 public ChoreographyRules createRules(Identifier id);
74
75 public ChoreographyRules createRules(Identifier id, Set<ChoreographyRule> rules);
76 }
77
78 public interface TransitionRules {
79
80 public Condition createConditionFromLogicalExpression(LogicalExpression e) throws InvalidModelException;
81
82 public ChoreographyIfThen createIfThen(Condition expression, ChoreographyRule rule);
83
84 public ChoreographyIfThen createIfThen(Condition expression, Set<ChoreographyRule> rules);
85
86 public ChoreographyForAll createForAll(Variable variable, Condition condition, ChoreographyRule rule);
87
88 public ChoreographyForAll createForAll(Set<Variable> variables, Condition condition, ChoreographyRule rule);
89
90 public ChoreographyForAll createForAll(Variable variable, Condition condition, Set<ChoreographyRule> rules);
91
92 public ChoreographyForAll createForAll(Set<Variable> variables, Condition condition, Set<ChoreographyRule> rules);
93
94 public ChoreographyChoose createChoose(Variable variable, Condition condition, ChoreographyRule rule);
95
96 public ChoreographyChoose createChoose(Set<Variable> variables, Condition condition, ChoreographyRule rule);
97
98 public ChoreographyChoose createChoose(Variable variable, Condition condition, Set<ChoreographyRule> rules);
99
100 public ChoreographyChoose createChoose(Set<Variable> variables, Condition condition, Set<ChoreographyRule> rules);
101 }
102
103 public interface UpdateRules {
104
105 public Add createAdd(CompoundFact fact);
106
107 public Delete createDelete(CompoundFact fact);
108
109 public Update createUpdate(CompoundFact newFact);
110
111 public Update createUpdate(CompoundFact newFact, CompoundFact oldFact)
112 throws InvalidModelException;
113 }
114
115 public interface Facts {
116 public MoleculeFact createMoleculeFact();
117
118 public MoleculeFact createMoleculeFact(Set<MembershipMolecule> memberMolecules,
119 Set<AttributeValueMolecule> attrValues);
120
121 public MoleculeFact createMoleculeFact(MembershipMolecule memberMolecule,
122 Set<AttributeValueMolecule> attrValues);
123
124 public MoleculeFact createMoleculeFact(Set<MembershipMolecule> memberMolecules,
125 AttributeValueMolecule attrValue);
126
127 public MoleculeFact createMoleculeFact(MembershipMolecule memberMolecule, AttributeValueMolecule attrValue);
128
129 public RelationFact createRelationFact();
130
131 public RelationFact createRelationFact(Atom atom);
132 }
133
134 public interface Modes {
135 public In createIn(Concept concept);
136
137 public In createIn(Concept concept, Set<Grounding> grounding);
138
139 public In createIn(Relation relation);
140
141 public In createIn(Relation relation, Set<Grounding> grounding);
142
143 public Out createOut(Concept concept);
144
145 public Out createOut(Concept concept, Set<Grounding> grounding);
146
147 public Out createOut(Relation relation);
148
149 public Out createOut(Relation relation, Set<Grounding> grounding);
150
151 public Shared createShared(Concept concept);
152
153 public Shared createShared(Concept concept, Set<Grounding> grounding);
154
155 public Shared createShared(Relation relation);
156
157 public Shared createShared(Relation relation, Set<Grounding> grounding);
158
159 public Controlled createControlled(Concept concept);
160
161 public Controlled createControlled(Relation relation);
162
163 public Static createStatic(Concept concept);
164
165 public Static createStatic(Relation relation);
166
167 public WSDLGrounding createWSDLGrounding(IRI iri);
168 }
169
170 public final Containers containers = createContainers();
171
172 public final TransitionRules transitionRules = createTransitionRules();
173
174 public final UpdateRules updateRules = createUpdateRules();
175
176 public final Facts facts = createFacts();
177
178 public final Modes modes = createModes();
179
180 protected abstract Containers createContainers();
181
182 protected abstract TransitionRules createTransitionRules();
183
184 protected abstract UpdateRules createUpdateRules();
185
186 protected abstract Facts createFacts();
187
188 protected abstract Modes createModes();
189 }
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216