Ejemplo n.º 1
0
  private Connection createConnection(Element element, Network network) {
    String kind = element.getAttribute("kind");

    if (kind.equals("point2point")) {
      Point2PointConnection connection = IrFactory.eINSTANCE.createPoint2PointConnection();
      connection.setId(element.getAttribute("id"));
      doAnnotations(connection, element);
      doAttributes(connection, element);
      ActorInstance sourceInstance = (ActorInstance) findIrObject(element.getAttribute("src"));
      String portName = element.getAttribute("src-port");
      connection.setSource(findPortInstance(sourceInstance, portName, true));
      ActorInstance targetInstance = (ActorInstance) findIrObject(element.getAttribute("dst"));
      portName = element.getAttribute("dst-port");
      connection.setTarget(findPortInstance(targetInstance, portName, false));

      connection.getTarget().getConnections().add(connection);
      connection.getSource().getConnections().add(connection);

      return connection;
    } else if (kind.equals("fromSource")) {
      FromSource connection = IrFactory.eINSTANCE.createFromSource();
      connection.setId(element.getAttribute("id"));
      doAnnotations(connection, element);
      doAttributes(connection, element);
      String portName = element.getAttribute("src-port");
      connection.setSource(findPort(network, portName, false));
      ActorInstance targetInstance = (ActorInstance) findIrObject(element.getAttribute("dst"));
      portName = element.getAttribute("dst-port");
      connection.setTarget(findPortInstance(targetInstance, portName, false));

      connection.getTarget().getConnections().add(connection);

      return connection;
    } else if (kind.equals("toSink")) {
      ToSink connection = IrFactory.eINSTANCE.createToSink();
      connection.setId(element.getAttribute("id"));
      doAnnotations(connection, element);
      doAttributes(connection, element);
      ActorInstance sourceInstance = (ActorInstance) findIrObject(element.getAttribute("src"));
      String portName = element.getAttribute("src-port");
      connection.setSource(findPortInstance(sourceInstance, portName, true));
      portName = element.getAttribute("dst-port");
      connection.setSink(findPort(network, portName, true));

      connection.getSource().getConnections().add(connection);

      return connection;
    }

    assert (false);
    return null;
  }