/**
* Copyright (c) 2016, All Contributors (see CONTRIBUTORS file)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.eventsourcing.queries;
import com.eventsourcing.Entity;
import com.eventsourcing.EntityHandle;
import com.eventsourcing.index.EntityIndex;
import com.googlecode.cqengine.IndexedCollection;
import com.googlecode.cqengine.attribute.Attribute;
import com.googlecode.cqengine.attribute.SimpleAttribute;
import com.googlecode.cqengine.query.Query;
import com.googlecode.cqengine.query.option.QueryOptions;
import com.googlecode.cqengine.query.simple.SimpleQuery;
import java.util.Iterator;
public class Min<O extends Entity, A extends Comparable<A>> extends ComparingQuery<O, A> {
public Min(EntityIndex<O, A> index) {
super(index);
}
@Override protected boolean isBetterValue(A value, A targetValue) {
return value.compareTo(targetValue) < 0;
}
@Override
public String toString() {
return "min(" + asLiteral(attribute.getAttributeName()) + ")";
}
@Override public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Min)) return false;
Min min = (Min) o;
if (!attribute.equals(min.attribute)) return false;
return true;
}
}