private void createSignalSystem2Lights(
      Id<SignalSystem> signalSystemId,
      Id<Link> linkId1,
      Id<Link> linkId2,
      SignalSystemsData systems,
      SignalGroupsData groups) {

    SignalSystemData sys = systems.getFactory().createSignalSystemData(signalSystemId);
    systems.addSignalSystemData(sys);
    SignalData signal =
        systems
            .getFactory()
            .createSignalData(Id.create(signalSystemId.toString() + "S1", Signal.class));
    sys.addSignalData(signal);
    signal.setLinkId(linkId1);

    signal =
        systems
            .getFactory()
            .createSignalData(Id.create(signalSystemId.toString() + "S2", Signal.class));
    sys.addSignalData(signal);
    signal.setLinkId(linkId2);

    SignalUtils.createAndAddSignalGroups4Signals(groups, sys);
  }
  private void createSignalSystem4Lights(
      Id<SignalSystem> signalSystemId,
      Id<Link> linkWithLanesId,
      Id<Lane> laneId1,
      Id<Lane> laneId2,
      Id<Link> linkWoLanesId1,
      Id<Link> linkWoLanesId2,
      SignalSystemsData systems,
      SignalGroupsData groups) {

    SignalSystemData sys = systems.getFactory().createSignalSystemData(signalSystemId);
    systems.addSignalSystemData(sys);

    // create signals at the link with lanes
    SignalData signal =
        systems
            .getFactory()
            .createSignalData(Id.create(signalSystemId.toString() + "S1", Signal.class));
    sys.addSignalData(signal);
    signal.setLinkId(linkWithLanesId);
    signal.addLaneId(laneId1);

    signal =
        systems
            .getFactory()
            .createSignalData(Id.create(signalSystemId.toString() + "S2", Signal.class));
    sys.addSignalData(signal);
    signal.setLinkId(linkWithLanesId);
    signal.addLaneId(laneId2);

    // create signals at links without lanes
    signal =
        systems
            .getFactory()
            .createSignalData(Id.create(signalSystemId.toString() + "S3", Signal.class));
    sys.addSignalData(signal);
    signal.setLinkId(linkWoLanesId1);

    signal =
        systems
            .getFactory()
            .createSignalData(Id.create(signalSystemId.toString() + "S4", Signal.class));
    sys.addSignalData(signal);
    signal.setLinkId(linkWoLanesId2);

    SignalUtils.createAndAddSignalGroups4Signals(groups, sys);
  }