core: import edu.neu.ccs.demeter.dj.*; import java.util.*; import edu.neu.ccs.demeter.*; add: class FindPartVisitor extends Visitor { protected ClassInfo list; public ClassInfo get_list() {{ return list; }} public void set_list(ClassInfo new_list) {{ list = new_list; }} public constructor FindPartVisitor() {{ super(); }} public constructor FindPartVisitor(ClassInfo list) {{ super(); set_list(list); }} public static FindPartVisitor parse(java.io.Reader in) throws ParseException {{ return new Parser(in)._FindPartVisitor(); }} public static FindPartVisitor parse(java.io.InputStream in) throws ParseException {{ return new Parser(in)._FindPartVisitor(); }} public static FindPartVisitor parse(String s) {{ try { return parse(new java.io.StringReader(s)); } catch (ParseException e) { throw new RuntimeException(e.toString()); } }} {{ Ident partname; void before (Adjacency host){ partname = null; } void before (Vertex host){ Ident n = host.get_vertex_name(); ClassDefList comlist = list.get_parameter(); ClassInfo result; if(comlist != null){ FindUCVisitor cV = new FindUCVisitor(n); result = (ClassInfo)Cd_graph.tg_list.traverse(comlist,cV); if(result == null) result = Cd_graph.check_undefined(n); } else result = Cd_graph.check_undefined(n); if (result != null){ if(list.get_partclass() == null) list.set_partclass(new PartInfo_List()); PartInfo pi = new PartInfo(); PartName p = new PartName(); if(partname != null) p.set_ident(partname); else { String s = n.toString(); String ss = s.substring(0,1); ss = ss.toLowerCase(); s = s.substring(1); ss = ss + s ; Ident m = new Ident(ss); p.set_ident(m); } pi.set_partname(p); pi.set_classname(result); list.get_partclass().addElement(pi); } partname = null; } void before( Labeled host){ partname = host.get_label_name(); } }} {{ void universal_trv0_bef(UniversalVisitor _v_) { ((UniversalVisitor) _v_).before(this); } }} {{ void universal_trv0_aft(UniversalVisitor _v_) { ((UniversalVisitor) _v_).after(this); } }} {{ void universal_trv0(UniversalVisitor _v_) { universal_trv0_bef(_v_); ((UniversalVisitor) _v_).before_list(this, list); list.universal_trv0(_v_); ((UniversalVisitor) _v_).after_list(this, list); universal_trv0_aft(_v_); } }} }