7878
7979public class AstFactoryImpl implements AstFactory
8080{
81- public static final AstFactory FACTORY = new AstFactoryImpl (); // FIXME: move somewhere else
81+ public static final AstFactory FACTORY = new AstFactoryImpl ();
8282
8383 @ Override
8484 public MessageSigNode MessageSigNode (OpNode op , PayloadElemList payload )
8585 {
8686 MessageSigNode msn = new MessageSigNode (op , payload );
87- msn = del (msn , createDefaultDelegate ()); // FIXME: does another shallow copy
87+ msn = del (msn , createDefaultDelegate ());
8888 return msn ;
8989 }
9090
@@ -107,14 +107,11 @@ public PayloadElem PayloadElement(PayloadElemNameNode name)
107107 @ Override
108108 public Module Module (
109109 ModuleDecl moddecl ,
110- //List<? extends ImportDecl> imports,
111- List <ImportDecl > imports ,
110+ List <ImportDecl <? extends Kind >> imports ,
112111 List <NonProtocolDecl <? extends Kind >> data ,
113- //List<? extends AbstractProtocolDecl<? extends ProtocolHeader, ? extends ProtocolDefinition<? extends ProtocolBlock<? extends InteractionSequence<? extends InteractionNode>>>>> protos)
114112 List <ProtocolDecl <? extends org .scribble .sesstype .kind .ProtocolKind >> protos )
115113 {
116114 Module module = new Module (moddecl , imports , data , protos );
117- //module = del(module, new ModuleDelegate(module.getFullModuleName()));
118115 module = del (module , new ModuleDel ());
119116 return module ;
120117 }
@@ -128,11 +125,9 @@ public ModuleDecl ModuleDecl(ModuleNameNode fullmodname)
128125 }
129126
130127 @ Override
131- //public ImportModule ImportModule(ModuleNameNode modname, SimpleProtocolNameNode alias)
132128 public ImportModule ImportModule (ModuleNameNode modname , ModuleNameNode alias )
133129 {
134130 ImportModule im = new ImportModule (modname , alias );
135- //im = del(im, createDefaultDelegate());
136131 im = del (im , new ImportModuleDel ());
137132 return im ;
138133 }
@@ -162,7 +157,6 @@ public GProtocolDecl GProtocolDecl(GProtocolHeader header, GProtocolDef def)
162157 }
163158
164159 @ Override
165- //public GProtocolHeader GlobalProtocolHeader(SimpleProtocolNameNode name, RoleDeclList roledecls, ParamDeclList paramdecls)
166160 public GProtocolHeader GProtocolHeader (GProtocolNameNode name , RoleDeclList roledecls , NonRoleParamDeclList paramdecls )
167161 {
168162 GProtocolHeader gph = new GProtocolHeader (name , roledecls , paramdecls );
@@ -171,8 +165,6 @@ public GProtocolHeader GProtocolHeader(GProtocolNameNode name, RoleDeclList role
171165 }
172166
173167 @ Override
174- //public RoleDeclList RoleDeclList(List<RoleDecl> rds)
175- //public RoleDeclList RoleDeclList(List<HeaderParamDecl<Role, RoleKind>> rds)
176168 public RoleDeclList RoleDeclList (List <RoleDecl > rds )
177169 {
178170 RoleDeclList rdl = new RoleDeclList (rds );
@@ -189,8 +181,6 @@ public RoleDecl RoleDecl(RoleNode namenode)
189181 }
190182
191183 @ Override
192- //public ParamDeclList ParameterDeclList(List<ParamDecl> pds)
193- //public ParamDeclList ParameterDeclList(List<HeaderParamDecl<Name<Kind>, Kind>> pds)
194184 public NonRoleParamDeclList NonRoleParamDeclList (List <NonRoleParamDecl <Kind >> pds )
195185 {
196186 NonRoleParamDeclList pdl = new NonRoleParamDeclList (pds );
@@ -199,12 +189,9 @@ public NonRoleParamDeclList NonRoleParamDeclList(List<NonRoleParamDecl<Kind>> pd
199189 }
200190
201191 @ Override
202- //public ParamDecl ParameterDecl(org.scribble2.model.ParamDecl.Kind kind, ParameterNode namenode)
203192 public <K extends Kind > NonRoleParamDecl <K > ParamDecl (K kind , NonRoleParamNode <K > namenode )
204- //public <K extends Kind> ParamDecl<K> ParameterDecl(ParameterNode<K> namenode)
205193 {
206194 NonRoleParamDecl <K > pd = new NonRoleParamDecl <K >(kind , namenode );
207- //ParamDecl<K> pd = new ParamDecl<K>(namenode);
208195 pd = del (pd , new ParamDeclDel ());
209196 return pd ;
210197 }
@@ -242,7 +229,6 @@ public GMessageTransfer GMessageTransfer(RoleNode src, MessageNode msg, List<Rol
242229 }
243230
244231 @ Override
245- //public GlobalChoice GlobalChoice(RoleNode subj, List<GlobalProtocolBlock> blocks)
246232 public GChoice GChoice (RoleNode subj , List <ProtocolBlock <Global >> blocks )
247233 {
248234 GChoice gc = new GChoice (subj , blocks );
@@ -251,7 +237,6 @@ public GChoice GChoice(RoleNode subj, List<ProtocolBlock<Global>> blocks)
251237 }
252238
253239 @ Override
254- //public GlobalRecursion GlobalRecursion(RecursionVarNode recvar, GlobalProtocolBlock block)
255240 public GRecursion GRecursion (RecVarNode recvar , ProtocolBlock <Global > block )
256241 {
257242 GRecursion gr = new GRecursion (recvar , block );
@@ -267,21 +252,11 @@ public GContinue GContinue(RecVarNode recvar)
267252 return gc ;
268253 }
269254
270- /*@Override
271- public GlobalDo GlobalDo(RoleInstantiationList roleinstans, ArgumentInstantiationList arginstans, ProtocolNameNode proto)
272- {
273- return GlobalDo(null, roleinstans, arginstans, proto);
274- }*/
275-
276255 @ Override
277- //public GlobalDo GlobalDo(ScopeNode scope, RoleInstantiationList roleinstans, ArgumentInstantiationList arginstans, ProtocolNameNode proto)
278- //public GDo GlobalDo(RoleInstantiationList roleinstans, ArgumentInstantiationList arginstans, ProtocolNameNode proto)
279256 public GDo GDo (RoleArgList roleinstans , NonRoleArgList arginstans , GProtocolNameNode proto )
280257 {
281- //GlobalDo gd = new GlobalDo(scope, roleinstans, arginstans, proto);
282258 GDo gd = new GDo (roleinstans , arginstans , proto );
283- //gd = del(gd, createDefaultDelegate()); // FIXME
284- gd = del (gd , new GDoDel ()); // FIXME
259+ gd = del (gd , new GDoDel ());
285260 return gd ;
286261 }
287262
@@ -318,28 +293,9 @@ public NonRoleArg NonRoleArg(NonRoleArgNode arg)
318293 }
319294
320295 @ Override
321- //public SimpleNameNode SimpleNameNode(SIMPLE_NAME kind, String identifier)
322- //public <K extends Kind> NameNode<? extends Name<K>, K> SimpleNameNode(K kind, String identifier)
323296 public <K extends Kind > NameNode <K > SimpleNameNode (K kind , String identifier )
324297 {
325- //SimpleNameNode snn;
326- //NameNode<? extends Name<? extends Kind>, ? extends Kind> snn;
327298 NameNode <? extends Kind > snn ;
328- /*switch(kind)
329- {
330- case AMBIG:
331- {
332- snn = new AmbiguousNameNode(identifier);
333- snn = (AmbiguousNameNode) snn.del(new AmbiguousNameDelegate());
334- return snn;
335- }
336- case OPERATOR: snn = new OperatorNode(identifier); break;
337- case PARAMETER: snn = new ParameterNode(identifier); break;
338- case RECURSIONVAR: snn = new RecursionVarNode(identifier); break;
339- case ROLE: snn = new RoleNode(identifier); break;
340- case PROTOCOL: snn = new SimpleProtocolNameNode(identifier); break;
341- default: throw new RuntimeException("Shouldn't get in here: " + kind);
342- }*/
343299 if (kind .equals (OpKind .KIND ))
344300 {
345301 snn = new OpNode (identifier );
@@ -354,46 +310,17 @@ else if (kind.equals(RoleKind.KIND))
354310 rn = (RoleNode ) del (rn , new RoleNodeDel ());
355311 return castNameNode (kind , rn );
356312 }
357- /*else if (kind.equals(ProtocolKind.KIND))
358- {
359- snn = new SimpleProtocolNameNode(identifier);
360- }*/
361313 else
362314 {
363315 throw new RuntimeException ("Shouldn't get in here: " + kind );
364316 }
365- //return castNameNode(kind, (NameNode<? extends Name<K>, K>) snn.del(createDefaultDelegate()));
366317 return castNameNode (kind , del (snn , createDefaultDelegate ()));
367318 }
368-
369- /*private static <T extends NameNode<? extends Name<? extends Kind>, K>, K extends Kind> T
370- castNameNode(K kind, NameNode<? extends Name<? extends Kind>, ? extends Kind> n)*/
371- private static <T extends NameNode <K >, K extends Kind > T
372- castNameNode (K kind , NameNode <? extends Kind > n )
373- {
374- if (!n .toName ().kind .equals (kind ))
375- {
376- throw new RuntimeException ("Shouldn't get in here: " + kind + ", " + n );
377- }
378- @ SuppressWarnings ("unchecked" )
379- T tmp = (T ) n ;
380- return tmp ;
381- }
382319
383320 @ Override
384- //public QualifiedNameNode QualifiedNameNode(QUALIFIED_NAME kind, String... elems)
385- //public <K extends Kind> QualifiedNameNode<? extends Name<K>, K> QualifiedNameNode(K kind, String... elems)
386321 public <K extends Kind > QualifiedNameNode <K > QualifiedNameNode (K kind , String ... elems )
387322 {
388- //QualifiedNameNode<? extends Name<? extends Kind>, ? extends Kind> qnn;
389323 QualifiedNameNode <? extends Kind > qnn ;
390- /*switch(kind)
391- {
392- case MESSAGESIGNATURE: qnn = new MessageSignatureNameNode(elems); break;
393- case MODULE: qnn = new ModuleNameNode(elems); break;
394- case PROTOCOL: qnn = new ProtocolNameNode(elems); break;
395- default: throw new RuntimeException("Shouldn't get in here: " + kind);
396- }*/
397324 if (kind .equals (ModuleKind .KIND ))
398325 {
399326 qnn = new ModuleNameNode (elems );
@@ -418,13 +345,10 @@ else if (kind.equals(DataTypeKind.KIND))
418345 {
419346 throw new RuntimeException ("Shouldn't get in here: " + kind );
420347 }
421- return castQualifiedNameNode (kind , del (qnn , createDefaultDelegate ()));
348+ return castNameNode (kind , del (qnn , createDefaultDelegate ()));
422349 }
423-
424- /*private static <T extends QualifiedNameNode<? extends Name<? extends Kind>, K>, K extends Kind> T
425- castQualifiedNameNode(K kind, QualifiedNameNode<? extends Name<? extends Kind>, ? extends Kind> n)*/
426- private static <T extends QualifiedNameNode <K >, K extends Kind > T
427- castQualifiedNameNode (K kind , QualifiedNameNode <? extends Kind > n )
350+
351+ private static <T extends NameNode <K >, K extends Kind > T castNameNode (K kind , NameNode <? extends Kind > n )
428352 {
429353 if (!n .toName ().kind .equals (kind ))
430354 {
@@ -460,7 +384,6 @@ public LProtocolDecl LProtocolDecl(LProtocolHeader header, LProtocolDef def)
460384 }
461385
462386 @ Override
463- //public LProtocolHeader LocalProtocolHeader(SimpleProtocolNameNode name, RoleDeclList roledecls, ParamDeclList paramdecls)
464387 public LProtocolHeader LProtocolHeader (LProtocolNameNode name , RoleDeclList roledecls , NonRoleParamDeclList paramdecls )
465388 {
466389 LProtocolHeader lph = new LProtocolHeader (name , roledecls , paramdecls );
@@ -493,7 +416,6 @@ public LProtocolBlock LProtocolBlock(LInteractionSeq seq)
493416 }
494417
495418 @ Override
496- //public LocalInteractionSequence LocalInteractionSequence(List<LocalInteractionNode> actions)
497419 public LInteractionSeq LInteractionSequence (List <? extends InteractionNode <Local >> actions )
498420 {
499421 LInteractionSeq lis = new LInteractionSeq (actions );
@@ -518,7 +440,6 @@ public LReceive LReceive(RoleNode src, MessageNode msg, List<RoleNode> dests)
518440 }
519441
520442 @ Override
521- //public LocalChoice LocalChoice(RoleNode subj, List<LocalProtocolBlock> blocks)
522443 public LChoice LChoice (RoleNode subj , List <ProtocolBlock <Local >> blocks )
523444 {
524445 LChoice lc = new LChoice (subj , blocks );
@@ -542,20 +463,10 @@ public LContinue LContinue(RecVarNode recvar)
542463 return lc ;
543464 }
544465
545- /*@Override
546- public LocalDo LocalDo(RoleInstantiationList roleinstans, ArgumentInstantiationList arginstans, ProtocolNameNode proto)
547- {
548- return LocalDo(null, roleinstans, arginstans, proto);
549- }*/
550-
551466 @ Override
552- //public LocalDo LocalDo(ScopeNode scope, RoleInstantiationList roleinstans, ArgumentInstantiationList arginstans, ProtocolNameNode proto)
553- //public LDo LocalDo(RoleInstantiationList roleinstans, ArgumentInstantiationList arginstans, ProtocolNameNode proto)
554467 public LDo LDo (RoleArgList roleinstans , NonRoleArgList arginstans , LProtocolNameNode proto )
555468 {
556- //LocalDo ld = new LocalDo(scope, roleinstans, arginstans, proto);
557469 LDo ld = new LDo (roleinstans , arginstans , proto );
558- //ld = del(ld, createDefaultDelegate());
559470 ld = del (ld , new LDoDel ());
560471 return ld ;
561472 }
@@ -568,7 +479,7 @@ private ScribDel createDefaultDelegate()
568479 @ SuppressWarnings ("unchecked" )
569480 private static <T extends ScribNodeBase > T del (T n , ScribDel del )
570481 {
571- ScribNodeBase ret = n .del (del );
482+ ScribNodeBase ret = n .del (del ); // FIXME: del makes another shallow copy of n
572483 if (ret .getClass () != n .getClass ())
573484 {
574485 throw new RuntimeException ("Shouldn't get in here: " + ret .getClass () + ", " + n .getClass ());
0 commit comments