package tc.oc.pgm.xml.property;
import javax.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import org.jdom2.Element;
import tc.oc.commons.core.util.NumberFactory;
import tc.oc.pgm.xml.parser.NumberParser;
import tc.oc.pgm.xml.parser.PrimitiveParser;
public class NumberProperty<T extends Number & Comparable<T>> extends TransfiniteProperty<T, NumberProperty<T>> {
private final NumberFactory<T> numberFactory;
public NumberProperty(Element parent, String name, Class<T> type) {
this(parent, name, NumberParser.get(type), NumberFactory.get(type));
}
@Inject private NumberProperty(@Assisted Element parent, @Assisted String name, PrimitiveParser<T> parser, NumberFactory<T> factory) {
super(parent, name, parser);
this.numberFactory = factory;
}
@Override
protected boolean isFinite(T value) {
return numberFactory.isFinite(value);
}
}