/* * IgnoreEmptiesTermProcessor.java * * Copyright (c) 2012, The University of Sheffield. * * This file is part of GATE Mímir (see http://gate.ac.uk/family/mimir.html), * and is free software, licenced under the GNU Lesser General Public License, * Version 3, June 2007 (also included with this distribution as file * LICENCE-LGPL3.html). * * Mark A. Greenwood, 5 January 2012 * * $Id$ */ package gate.mimir.util; import it.unimi.dsi.lang.MutableString; import it.unimi.di.big.mg4j.index.TermProcessor; /** * Term processor that completely ignores null or empty-string terms rather * than indexing them as the empty string. This is useful when you want to * index token features that are not present on every token. */ public class IgnoreEmptiesTermProcessor implements TermProcessor { private final static IgnoreEmptiesTermProcessor INSTANCE = new IgnoreEmptiesTermProcessor(); public final static TermProcessor getInstance() { return INSTANCE; } private IgnoreEmptiesTermProcessor() { //nothing to do but this method forces people to use the getInstance() method; } @Override public boolean processTerm(final MutableString term) { return (term != null && term.length() > 0); } @Override public boolean processPrefix(final MutableString prefix) { return processTerm(prefix); } private Object readResolve() { return INSTANCE; } @Override public String toString() { return this.getClass().getName(); } @Override public IgnoreEmptiesTermProcessor copy() { return this; } }