package com.formulasearchengine.mathosphere.basex.types;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
import java.util.ArrayList;
import java.util.List;
/**
* Store Run in Ntcir format.
* Created by jjl4 on 6/24/15.
*/
@XStreamAlias("run")
public class Run {
@XStreamAlias("runtag")
@XStreamAsAttribute
private final String runtag;
//This is a string so that "" strings are deserialized correctly
@XStreamAlias("runtime")
@XStreamAsAttribute
private String ms;
@XStreamAlias("run_type")
@XStreamAsAttribute
private final String type;
@XStreamImplicit
private List<Result> results;
@XStreamOmitField
private boolean showTime = true;
public Run( String runtag, Long ms, String type ) {
this.runtag = runtag;
this.ms = ms == null ? "" : String.valueOf( ms );
this.type = type;
this.results = new ArrayList<>();
}
public Run( String runtag, String type ) {
this.runtag = runtag;
this.type = type;
this.results = new ArrayList<>();
this.ms = "";
}
public void setShowTime( boolean showTime ) {
this.showTime = showTime;
if ( results != null ) {
for ( final Result result : results ) {
result.setShowTime( showTime );
}
}
}
public boolean getShowTime() {
return this.showTime;
}
public void setTime( Long ms ) {
this.ms = ms == null ? "" : String.valueOf( ms );
}
public void addResult( Result result ) {
result.setShowTime( showTime );
results.add( result );
}
public List<Result> getResults() {
return new ArrayList<>( results );
}
public void setResults( List<Result> results ) {
this.results = new ArrayList<>( results );
for ( final Result result : results ) {
result.setShowTime( showTime );
}
}
public int getNumResults() {
return results.size();
}
}