import edu.neu.ccs.demeter.dj.*; import java.lang.*; import java.util.*; import edu.neu.ccs.demeter.*; class FlattenVisitor extends Visitor { public FlattenVisitor() { super(); } public static FlattenVisitor parse(java.io.Reader in) throws ParseException { return new Parser(in)._FlattenVisitor(); } public static FlattenVisitor parse(java.io.InputStream in) throws ParseException { return new Parser(in)._FlattenVisitor(); } public static FlattenVisitor parse(String s) { try { return parse(new java.io.StringReader(s)); } catch (ParseException e) { throw new RuntimeException(e.toString()); } } private Neighbors trueId; void before (Adjacency host) { trueId = host.get_ns(); if (trueId instanceof Construct_ns) { // System.out.println("This is a Construct_ns object"); Set cycle_set = new HashSet(); Adjacency temp_parent = host.get_myparent(); while (temp_parent != null) { // temp_parent.print(); if (temp_parent == host || cycle_set.contains(temp_parent)) break; // System.out.println(temp_parent.get_source().get_vertex_name()); cycle_set.add(temp_parent); Any_vertex_List cp_list = temp_parent.get_common_parts(); Enumeration listPointer = cp_list.elements(); Any_vertex_List avl = host.get_construct_part(); while (listPointer.hasMoreElements()) { // avl.print(); // cp_list.print(); avl.addElement((Any_vertex) listPointer.nextElement()); } temp_parent = temp_parent.get_myparent(); } } /* if (trueId instanceof Alternat_ns) { System.out.println("This is an Alternat_ns object"); } */ } 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_); universal_trv0_aft(_v_); } }