Beispiel #1
0
  /** @param tmpTickList */
  private static List<Sequence> structureCreator(List<Tick> tmpTickList) {

    /*
     * transform List of Ticks to Frames
     */
    List<Tick> tickList = new ArrayList<Tick>();
    List<Frame> frameList = new ArrayList<Frame>();
    List<Sequence> sequenceList = new ArrayList<Sequence>();

    for (int i = 0; i < tmpTickList.size(); i++) {
      Tick currentTick = tmpTickList.get(i);

      if (currentTick.getType().compareTo("########") == 0) { // currentTick equal to ########
        /*
         * add Frames to frameList
         */
        Tick[] tickArray = new Tick[tickList.size()];
        tickArray = tickList.toArray(tickArray);
        tickList.clear();
        Frame tmpFrame = new Frame(tickArray);
        frameList.add(tmpFrame);

      } else {

        tickList.add(currentTick);
      }
    }

    /*
     * Arrange Frames into Sequences and create a Scene with them
     */
    List<Frame> listOfFrames = new ArrayList<Frame>();

    Frame stopFrame = new Frame();
    listOfFrames.add(frameList.get(0)); // always start the listOfFrames with first frame
    for (int i = 0; i < frameList.size(); i++) {

      Frame frameA = frameList.get(i);
      Frame frameB;
      if (frameList.size() - 1 == i) {
        frameB = stopFrame;
      } else {
        frameB = frameList.get(i + 1);
      }

      if (frameA.equalTo(frameB)) {
        listOfFrames.add(frameB); // add duplicate frames to listOfFrames

      } else {

        int frameSize = frameA.getArrayLength();
        int sequenceLength = listOfFrames.size();
        int[][] timestampArray = new int[sequenceLength][frameSize];

        String[] typeArray = frameA.getConcatenatedTypes();

        for (int j = 0; j < sequenceLength; j++) { // for every Frame on the listOfFrames

          Frame tmpFrame = listOfFrames.get(j); // get the Frame
          timestampArray[j] = tmpFrame.getTimestamps(); // add every Timestamp in this Frame
        }

        Sequence prevSequence;
        if (sequenceList.isEmpty()) {
          prevSequence = new Sequence();
        } else {
          prevSequence = sequenceList.get(sequenceList.size() - 1);
        }
        Sequence tmpSequence =
            new Sequence(
                typeArray, timestampArray, prevSequence); // create Sequence out of Types and Times

        sequenceList.add(tmpSequence); // add Sequence to List

        listOfFrames.clear(); // rinse and repeat
        listOfFrames.add(frameB); // but add FrameB as a startingpoint for the next iteration
      }
    }

    return sequenceList;
  }