import jp.naist.se.stigmata.ComparisonResultSet;\r
\r
/**\r
+ * Filtering {@link ComparisonResultSet <code>ComparisonResultSet</code>}.\r
* \r
* @author Haruaki TAMADA\r
* @version $Revision$ $Date$\r
private ComparisonResultSet resultset;\r
private List<ComparisonPairFilterSet> filters = new ArrayList<ComparisonPairFilterSet>(); \r
\r
+ /**\r
+ * constructor.\r
+ * \r
+ * @param resultset filtering target\r
+ */\r
public FilteredComparisonResultSet(ComparisonResultSet resultset){\r
this.resultset = resultset;\r
}\r
\r
+ /**\r
+ * constructor.\r
+ * @param resultset filtering target\r
+ * @param filters filtering rule\r
+ */\r
public FilteredComparisonResultSet(ComparisonResultSet resultset, ComparisonPairFilterSet[] filters){\r
this.resultset = resultset;\r
for(int i = 0; i < filters.length; i++){\r
}\r
\r
private ComparisonPair findNext(){\r
- if(iterator.hasNext()){\r
- for(boolean finding = true; finding && iterator.hasNext(); ){\r
- ComparisonPair nextPair = iterator.next();\r
- // return the pair which the all filters is passed\r
- if(isAllFilterPassed(nextPair)){\r
- finding = false;\r
- next = nextPair;\r
- }\r
+ boolean nowFinding = true;\r
+ while(nowFinding && iterator.hasNext()){\r
+ ComparisonPair nextPair = iterator.next();\r
+ // return the pair which the all filters is passed\r
+ if(isAllFilterPassed(nextPair)){\r
+ nowFinding = false; // found next value!\r
+ next = nextPair;\r
}\r
}\r
- else{\r
+ if(nowFinding && !iterator.hasNext()){\r
next = null;\r
}\r
return next;\r