diff --git a/src/adql/search/SimpleSearchHandler.java b/src/adql/search/SimpleSearchHandler.java index d7305e68471b926aadcdf1f9187012f4d5e11934..05c0e7a9c206ad89836a69a5dafc87bfb9651dba 100644 --- a/src/adql/search/SimpleSearchHandler.java +++ b/src/adql/search/SimpleSearchHandler.java @@ -16,7 +16,8 @@ package adql.search; * You should have received a copy of the GNU Lesser General Public License * along with ADQLLibrary. If not, see <http://www.gnu.org/licenses/>. * - * Copyright 2012 - UDS/Centre de DonnĂ©es astronomiques de Strasbourg (CDS) + * Copyright 2012-2014 - UDS/Centre de DonnĂ©es astronomiques de Strasbourg (CDS), + * Astronomisches Rechen Institut (ARI) */ import java.util.ArrayList; @@ -35,8 +36,8 @@ import adql.query.ADQLQuery; * <li>The matching objects are simply collected in an ArrayList.</li> * </ul> * - * @author Grégory Mantelet (CDS) - * @version 06/2011 + * @author Grégory Mantelet (CDS;ARI) + * @version 1.2 (12/2013) * * @see SearchColumnHandler */ @@ -119,10 +120,12 @@ public abstract class SimpleSearchHandler implements ISearchHandler { this.firstMatch = firstMatch; } + @Override public final Iterator<ADQLObject> iterator(){ return results.iterator(); } + @Override public final int getNbMatch(){ return results.size(); } @@ -152,6 +155,8 @@ public abstract class SimpleSearchHandler implements ISearchHandler { /** * Adds the given ADQL object as one result of the research. * + * <p><b><u>Warning:</u> the second parameter (<i>it</i>) may be <i>null</i> if the given match is the root search object itself.</b></p> + * * @param matchObj An ADQL object which has matched to the research criteria. * @param it The iterator from which the matched ADQL object has been extracted. */ @@ -167,14 +172,16 @@ public abstract class SimpleSearchHandler implements ISearchHandler { results.clear(); } + @Override public final void search(final ADQLObject startObj){ reset(); if (startObj == null) return; + // Test the root search object: if (match(startObj)) - results.add(startObj); + addMatch(startObj, null); Stack<ADQLIterator> stackIt = new Stack<ADQLIterator>(); ADQLObject obj = null;