From 1ef0c9a3badd279d8456cb6ae28f73143f0bb735 Mon Sep 17 00:00:00 2001 From: Jeremy Long Date: Sun, 23 Jun 2013 22:30:47 -0400 Subject: [PATCH] added the AbstractTokenizingFilter Former-commit-id: 358eed7d7dbba82b457748c2c9fe942188721daa --- .../data/lucene/VersionTokenizingFilter.java | 31 +++---------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/src/main/java/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.java b/src/main/java/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.java index e1b34d3bd..31fb9e9bc 100644 --- a/src/main/java/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.java +++ b/src/main/java/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.java @@ -20,7 +20,6 @@ package org.owasp.dependencycheck.data.lucene; import java.io.IOException; import java.util.LinkedList; -import org.apache.lucene.analysis.TokenFilter; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; @@ -32,16 +31,7 @@ import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; * * @author Jeremy Long (jeremy.long@owasp.org) */ -public final class VersionTokenizingFilter extends TokenFilter { - - /** - * The char term attribute. - */ - private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class); - /** - * A collection of tokens to add to the stream. - */ - private final LinkedList tokens; +public final class VersionTokenizingFilter extends AbstractTokenizingFilter { /** * Constructs a new VersionTokenizingFilter. @@ -50,7 +40,6 @@ public final class VersionTokenizingFilter extends TokenFilter { */ public VersionTokenizingFilter(TokenStream stream) { super(stream); - tokens = new LinkedList(); } /** @@ -63,6 +52,8 @@ public final class VersionTokenizingFilter extends TokenFilter { */ @Override public boolean incrementToken() throws IOException { + final LinkedList tokens = getTokens(); + final CharTermAttribute termAtt = getTermAtt(); if (tokens.size() == 0 && input.incrementToken()) { final String version = new String(termAtt.buffer(), 0, termAtt.length()); final String[] toAnalyze = version.split("[_-]"); @@ -75,21 +66,6 @@ public final class VersionTokenizingFilter extends TokenFilter { return addTerm(); } - /** - * Adds a term, if one exists, from the tokens collection. - * - * @return whether or not a new term was added - */ - private boolean addTerm() { - final boolean termAdded = tokens.size() > 0; - if (termAdded) { - final String version = tokens.pop(); - clearAttributes(); - termAtt.append(version); - } - return termAdded; - } - /** *

Analyzes the version and adds several copies of the version as * different tokens. For example, the version 1.2.7 would create the tokens @@ -104,6 +80,7 @@ public final class VersionTokenizingFilter extends TokenFilter { private void analyzeVersion(String version) { //todo should we also be splitting on dash or underscore? we would need // to incorporate the dash or underscore back in... + final LinkedList tokens = getTokens(); final String[] versionParts = version.split("\\."); String dottedVersion = null; for (String current : versionParts) {