/*
* Svjatoslav Commons - shared library of common functionality.
- * Copyright ©2012-2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
+ * Copyright ©2012-2020, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ *
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 3 of the GNU Lesser General Public License
* or later as published by the Free Software Foundation.
this.termination = termination;
}
+ public boolean matches(String source, int index) {
+ // boundary check
+ if (source.length() < (index + startSequence.length()))
+ return false;
+
+ // match check
+ for (int i = 0; i < startSequence.length(); i++)
+ if (startSequence.charAt(i) != source.charAt(index + i))
+ return false;
+
+ return true;
+ }
+
+ public boolean hasEndSequence() {
+ return endSequence != null;
+ }
+
+ @Override
+ public String toString() {
+ return "Terminator{" +
+ "startSequence='" + startSequence + '\'' +
+ ", endSequence='" + endSequence + '\'' +
+ ", termination=" + termination +
+ '}';
+ }
+
public enum TerminationStrategy {
PRESERVE,
DROP