2d193a9835f17818f36a2c74540a15ede51e2f4f
[pingpong.git] / Code / Projects / SmartPlugDetector / src / main / java / edu / uci / iotproject / comparison / seqalignment / ExtractedSequence.java
1 package edu.uci.iotproject.comparison.seqalignment;
2
3 import edu.uci.iotproject.trafficreassembly.layer3.Conversation;
4 import org.pcap4j.core.PcapPacket;
5
6 import java.util.List;
7
8 /**
9  * TODO add class documentation.
10  *
11  * @author Janus Varmarken
12  */
13 public class ExtractedSequence {
14
15     private final Conversation mRepresentativeSequence;
16
17     private final int mMaxAlignmentCost;
18
19     private final String mSequenceString;
20
21     public ExtractedSequence(Conversation sequence, int maxAlignmentCost, boolean tlsAppDataAlignment) {
22         mRepresentativeSequence = sequence;
23         mMaxAlignmentCost = maxAlignmentCost;
24         StringBuilder sb = new StringBuilder();
25         List<PcapPacket> pkts = tlsAppDataAlignment ? sequence.getTlsApplicationDataPackets() : sequence.getPackets();
26         pkts.forEach(p -> {
27             if (sb.length() != 0) sb.append(" ");
28             sb.append(p.getOriginalLength());
29         });
30         mSequenceString = sb.toString();
31     }
32
33     public Conversation getRepresentativeSequence() {
34         return mRepresentativeSequence;
35     }
36
37     public int getMaxAlignmentCost() {
38         return mMaxAlignmentCost;
39     }
40
41 }