package EDU.neu.ccs.demeter.tools.apstudio.graphedit;
import java.awt.*;
import java.io.*;
import java.util.*;
import EDU.neu.ccs.demeter.*;
import EDU.neu.ccs.demeter.common.tg.*;


import EDU.neu.ccs.demeter.*;
class ReadVertexVisitor extends UniversalVisitor {
  protected VertexContainer elements;
  public VertexContainer get_elements() { return elements; }
  public void set_elements(VertexContainer new_elements)
    { elements = new_elements; }
  ReadVertexVisitor() { super(); }
  public ReadVertexVisitor(VertexContainer elements) {
    super();
    set_elements(elements);
  }
  public void before(UAltVertex host) {
		String vertex_name=host.get_vertexname().get_name().toString();
		Integer vertex_x=host.get_position().get_x().get_x();
		Integer vertex_y=host.get_position().get_y().get_y();
		Point p = new Point(vertex_x.intValue(), vertex_y.intValue());
		UID uid=host.get_vid();
		VertexInfo vertexinfo = new VertexInfo (uid,vertex_name, p);
		elements.get_alternation().addElement(vertexinfo);
	}
  public void before(UConstVertex host) {
		String vertex_name=host.get_vertexname().get_name().toString();
		Integer vertex_x=host.get_position().get_x().get_x();
		Integer vertex_y=host.get_position().get_y().get_y();
		Point p = new Point(vertex_x.intValue(), vertex_y.intValue());
		UID uid=host.get_vid();
		String before,after;
		if(host.get_beFore()==null)
			before = null;
		else
			before=host.get_beFore().get_syntax();
		if(host.get_afTer()==null)
			after=null;
		else
			after=host.get_afTer().get_syntax();
		VertexInfo _vertexinfo = new VertexInfo (uid,vertex_name, p,before,after);
		elements.get_construction().addElement(_vertexinfo);
	}
  public void before(UTermConstVertex host) {
		String vertex_name=host.get_vertexname().get_name().toString();
		Integer vertex_x=host.get_position().get_x().get_x();
		Integer vertex_y=host.get_position().get_y().get_y();
		Point p = new Point(vertex_x.intValue(), vertex_y.intValue());
		UID uid=host.get_vid();
		VertexInfo _vertexinfo = new VertexInfo (uid,vertex_name, p);
		elements.get_construction().addElement(_vertexinfo);
	}
  void universal_trv0_bef(UniversalVisitor _v_) {
    super.universal_trv0_bef(_v_);
  }
  void universal_trv0_aft(UniversalVisitor _v_) {
    super.universal_trv0_aft(_v_);
  }
  void universal_trv0(UniversalVisitor _v_) {
    universal_trv0_bef(_v_);
    elements.universal_trv0(_v_);
    super.universal_trv0(_v_);
    universal_trv0_aft(_v_);
  }
}

