package com.itemanalysis.squiggle.base;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import com.itemanalysis.squiggle.literal.BigDecimalLiteral;
import com.itemanalysis.squiggle.literal.DateTimeLiteral;
import com.itemanalysis.squiggle.literal.FloatLiteral;
import com.itemanalysis.squiggle.literal.IntegerLiteral;
import com.itemanalysis.squiggle.literal.StringLiteral;
import com.itemanalysis.squiggle.output.Output;
public class LiteralValueSet implements ValueSet {
private final Collection<Literal> literals;
public LiteralValueSet(Collection<Literal> literals) {
this.literals = literals;
}
public LiteralValueSet(String... values) {
this.literals = new ArrayList<Literal>(values.length);
for (String value : values) literals.add(new StringLiteral(value));
}
public LiteralValueSet(long... values) {
this.literals = new ArrayList<Literal>(values.length);
for (long value : values) literals.add(new IntegerLiteral(value));
}
public LiteralValueSet(double... values) {
this.literals = new ArrayList<Literal>(values.length);
for (double value : values) literals.add(new FloatLiteral(value));
}
public LiteralValueSet(BigDecimal... values) {
this.literals = new ArrayList<Literal>(values.length);
for (BigDecimal value : values) literals.add(new BigDecimalLiteral(value));
}
public LiteralValueSet(Date... values) {
this.literals = new ArrayList<Literal>(values.length);
for (Date value : values) literals.add(new DateTimeLiteral(value));
}
public void write(Output out) {
for (Iterator<Literal> it = literals.iterator(); it.hasNext();) {
Literal literal = it.next();
literal.write(out);
if (it.hasNext()) {
out.print(", ");
}
}
}
}