summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2022-01-07 10:47:51 +0100
committerGitHub <noreply@github.com>2022-01-07 10:47:51 +0100
commit7f0beb86fe8a571575aa220ce3dfd0061de9ece2 (patch)
tree0fdc4b1ba5075e7f48c41a85f66f52b9e9d95d5c
parent46f6734372751c52b70b005e6ae25316525e554b (diff)
parent2280ab60210f37c525f83a332dad9acb8d537741 (diff)
Merge pull request #20689 from vespa-engine/arnej/modernize-fsa
Arnej/modernize fsa
-rw-r--r--fsa/pom.xml10
-rw-r--r--fsa/src/main/java/com/yahoo/fsa/FSA.java12
-rw-r--r--fsa/src/main/java/com/yahoo/fsa/segmenter/Segmenter.java6
-rw-r--r--fsa/src/main/java/com/yahoo/fsa/segmenter/Segments.java27
-rw-r--r--fsa/src/main/java/com/yahoo/fsa/topicpredictor/TopicPredictor.java6
-rw-r--r--fsa/src/test/java/com/yahoo/fsa/test/FSADataTestCase.java1
-rw-r--r--fsa/src/test/java/com/yahoo/fsa/test/FSAIteratorTestCase.java6
7 files changed, 31 insertions, 37 deletions
diff --git a/fsa/pom.xml b/fsa/pom.xml
index 25e1167a240..db863ba5522 100644
--- a/fsa/pom.xml
+++ b/fsa/pom.xml
@@ -44,16 +44,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <compilerArgs>
- <arg>-Xlint:all</arg>
- <arg>-Xlint:-fallthrough</arg>
- <arg>-Xlint:-serial</arg>
- <arg>-Xlint:-rawtypes</arg>
- <arg>-Xlint:-unchecked</arg>
- <arg>-Werror</arg>
- </compilerArgs>
- </configuration>
</plugin>
<plugin>
<groupId>com.yahoo.vespa</groupId>
diff --git a/fsa/src/main/java/com/yahoo/fsa/FSA.java b/fsa/src/main/java/com/yahoo/fsa/FSA.java
index a964b32c54a..fcc940a335c 100644
--- a/fsa/src/main/java/com/yahoo/fsa/FSA.java
+++ b/fsa/src/main/java/com/yahoo/fsa/FSA.java
@@ -188,10 +188,10 @@ public class FSA implements Closeable {
*/
public Item(FSA fsa, int state) {
this.fsa = fsa;
- this.string = new java.util.Stack();
+ this.string = new java.util.Stack<>();
this.symbol = 0;
this.state = state;
- this.stack = new java.util.Stack();
+ this.stack = new java.util.Stack<>();
}
/**
@@ -199,7 +199,7 @@ public class FSA implements Closeable {
*/
public Item(Item item) {
this.fsa = item.fsa;
- this.string = new java.util.Stack();
+ this.string = new java.util.Stack<>();
for (java.util.Iterator<Byte> itr = item.string.iterator(); itr.hasNext(); ) {
byte b = itr.next();
this.string.push(b);
@@ -415,7 +415,7 @@ public class FSA implements Closeable {
if ((mmap == null) || !mmap.isDirect()) return;
try {
- Class unsafeClass;
+ Class<?> unsafeClass;
try {
unsafeClass = Class.forName("sun.misc.Unsafe");
} catch (Exception ex) {
@@ -468,8 +468,8 @@ public class FSA implements Closeable {
* @return the loaded FSA
* @throws RuntimeException if the class could not be loaded
*/
- public static FSA loadFromResource(String resourceFileName,Class loadingClass) {
- URL fsaUrl=loadingClass.getResource(resourceFileName);
+ public static FSA loadFromResource(String resourceFileName, Class<?> loadingClass) {
+ URL fsaUrl = loadingClass.getResource(resourceFileName);
if ( ! "file".equals(fsaUrl.getProtocol())) {
throw new RuntimeException("Could not open non-file url '" + fsaUrl + "' as a file input stream: " +
"The classloader of " + loadingClass + "' does not return file urls");
diff --git a/fsa/src/main/java/com/yahoo/fsa/segmenter/Segmenter.java b/fsa/src/main/java/com/yahoo/fsa/segmenter/Segmenter.java
index 7c3e76996bb..4edac362131 100644
--- a/fsa/src/main/java/com/yahoo/fsa/segmenter/Segmenter.java
+++ b/fsa/src/main/java/com/yahoo/fsa/segmenter/Segmenter.java
@@ -60,7 +60,7 @@ public class Segmenter {
public Segments segment(String[] tokens) {
Segments segments = new Segments(tokens);
- LinkedList detectors = new LinkedList();
+ LinkedList<Detector> detectors = new LinkedList<>();
int i=0;
@@ -68,9 +68,9 @@ public class Segmenter {
while(i<tokens.length){
detectors.add(new Detector(fsa.getState(), i));
- ListIterator det_it = detectors.listIterator();
+ ListIterator<Detector> det_it = detectors.listIterator();
while(det_it.hasNext()){
- Detector d = (Detector)det_it.next();
+ Detector d = det_it.next();
d.state().deltaWord(tokens[i]);
if(d.state().isFinal()){
segments.add(new Segment(d.index(),i+1,d.state().data().getInt(0)));
diff --git a/fsa/src/main/java/com/yahoo/fsa/segmenter/Segments.java b/fsa/src/main/java/com/yahoo/fsa/segmenter/Segments.java
index 89368e2bf8f..e3bfe956a5c 100644
--- a/fsa/src/main/java/com/yahoo/fsa/segmenter/Segments.java
+++ b/fsa/src/main/java/com/yahoo/fsa/segmenter/Segments.java
@@ -8,7 +8,7 @@ import java.util.LinkedList;
*
* @author Peter Boros
*/
-public class Segments extends LinkedList {
+public class Segments extends LinkedList<Segment> {
public final static int SEGMENTATION_WEIGHTED = 0;
public final static int SEGMENTATION_WEIGHTED_BIAS10 = 1;
@@ -43,10 +43,12 @@ public class Segments extends LinkedList {
}
}
- public void add(Segment s)
+ @Override
+ public boolean add(Segment s)
{
- super.add(s);
+ var result = super.add(s);
_map[s.beg()][s.end()]=super.size()-1;
+ return result;
}
private void addMissingSingles()
@@ -76,8 +78,8 @@ public class Segments extends LinkedList {
if(idx<0 || idx>=super.size()){
return null;
}
- String s = new String(_tokens[((Segment)(super.get(idx))).beg()]);
- for(int i=((Segment)(super.get(idx))).beg()+1;i<((Segment)(super.get(idx))).end();i++){
+ String s = new String(_tokens[super.get(idx).beg()]);
+ for(int i = super.get(idx).beg() + 1; i < super.get(idx).end(); i++){
s += " " + _tokens[i];
}
return s;
@@ -88,7 +90,7 @@ public class Segments extends LinkedList {
if(idx<0 || idx>=super.size()){
return -1;
}
- return ((Segment)(super.get(idx))).beg();
+ return super.get(idx).beg();
}
public int end(int idx)
@@ -96,7 +98,7 @@ public class Segments extends LinkedList {
if(idx<0 || idx>=super.size()){
return -1;
}
- return ((Segment)(super.get(idx))).end();
+ return super.get(idx).end();
}
public int len(int idx)
@@ -104,7 +106,7 @@ public class Segments extends LinkedList {
if(idx<0 || idx>=super.size()){
return -1;
}
- return ((Segment)(super.get(idx))).len();
+ return super.get(idx).len();
}
public int conn(int idx)
@@ -112,9 +114,10 @@ public class Segments extends LinkedList {
if(idx<0 || idx>=super.size()){
return -1;
}
- return ((Segment)(super.get(idx))).conn();
+ return super.get(idx).conn();
}
+ @SuppressWarnings("fallthrough")
public Segments segmentation(int method)
{
Segments smnt = new Segments(_tokens);
@@ -170,7 +173,7 @@ public class Segments extends LinkedList {
}
id = bestid;
while(id!=-1){
- smnt.add(((Segment)(super.get(id))));
+ smnt.add(super.get(id));
id=nextid[id];
}
break;
@@ -189,7 +192,7 @@ public class Segments extends LinkedList {
next = i;
}
}
- smnt.add((Segment)(super.get(bestid)));
+ smnt.add(super.get(bestid));
pos=next;
}
break;
@@ -302,7 +305,7 @@ public class Segments extends LinkedList {
}
// add segment
- smnt.add((Segment)(super.get(bestid)));
+ smnt.add(super.get(bestid));
// check right side
if(e>end(bestid)){
diff --git a/fsa/src/main/java/com/yahoo/fsa/topicpredictor/TopicPredictor.java b/fsa/src/main/java/com/yahoo/fsa/topicpredictor/TopicPredictor.java
index 7049ad5495d..52dae951165 100644
--- a/fsa/src/main/java/com/yahoo/fsa/topicpredictor/TopicPredictor.java
+++ b/fsa/src/main/java/com/yahoo/fsa/topicpredictor/TopicPredictor.java
@@ -59,7 +59,7 @@ public class TopicPredictor extends MetaData {
* as opposed to the two-argument version.
* @param segment The segment string to find (all) topics for.
* @return (Linked)List of PredictedTopic objects. */
- public List getPredictedTopics(String segment) {
+ public List<PredictedTopic> getPredictedTopics(String segment) {
return getPredictedTopics(segment, 0);
}
@@ -70,8 +70,8 @@ public class TopicPredictor extends MetaData {
* @param segment The segment string to find topics for.
* @param maxTopics The max number of topics to return, 0 for all topics
* @return (Linked)List of PredictedTopic objects. */
- public List getPredictedTopics(String segment, int maxTopics) {
- List predictedTopics = new LinkedList();
+ public List<PredictedTopic> getPredictedTopics(String segment, int maxTopics) {
+ List<PredictedTopic> predictedTopics = new LinkedList<>();
int segIdx = getSegmentIndex(segment);
int[][] topicArr = getTopicArray(segIdx, maxTopics);
diff --git a/fsa/src/test/java/com/yahoo/fsa/test/FSADataTestCase.java b/fsa/src/test/java/com/yahoo/fsa/test/FSADataTestCase.java
index 3e9efc68558..28faaea1373 100644
--- a/fsa/src/test/java/com/yahoo/fsa/test/FSADataTestCase.java
+++ b/fsa/src/test/java/com/yahoo/fsa/test/FSADataTestCase.java
@@ -34,6 +34,7 @@ public class FSADataTestCase {
this.numExceptions = 0;
this.numAsserts = 0;
}
+ @Override
public void run() {
for (long i = 0; i < numRuns; ++i) {
state.start();
diff --git a/fsa/src/test/java/com/yahoo/fsa/test/FSAIteratorTestCase.java b/fsa/src/test/java/com/yahoo/fsa/test/FSAIteratorTestCase.java
index 645536e596b..e99998e16f2 100644
--- a/fsa/src/test/java/com/yahoo/fsa/test/FSAIteratorTestCase.java
+++ b/fsa/src/test/java/com/yahoo/fsa/test/FSAIteratorTestCase.java
@@ -94,7 +94,7 @@ public class FSAIteratorTestCase {
@Test
public void testIteratorEmpty1() {
state.delta("b");
- java.util.Iterator i = fsa.iterator(state);
+ FSA.Iterator i = fsa.iterator(state);
assertFalse(i.hasNext());
try {
i.next();
@@ -107,7 +107,7 @@ public class FSAIteratorTestCase {
@Test
public void testIteratorEmpty2() {
state.delta("daciac");
- java.util.Iterator i = fsa.iterator(state);
+ FSA.Iterator i = fsa.iterator(state);
assertFalse(i.hasNext());
try {
i.next();
@@ -119,7 +119,7 @@ public class FSAIteratorTestCase {
@Test
public void testIteratorRemove() {
- java.util.Iterator i = fsa.iterator(state);
+ FSA.Iterator i = fsa.iterator(state);
try {
i.remove();
assertFalse(true);