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; /** * Stores Result in Ntcir format. * Created by jjl4 on 6/24/15. */ @XStreamAlias("result") public class Result { @XStreamAlias("for") @XStreamAsAttribute private final String queryID; //This is a string so that "" strings are deserialized correctly @XStreamAlias("runtime") @XStreamAsAttribute private String ms; @XStreamImplicit private List<Hit> hits; @XStreamOmitField private boolean showTime = true; public Result( String queryIDNum, Long ms ) { this.ms = ms == null ? "" : String.valueOf( ms ); this.queryID = queryIDNum; this.hits = new ArrayList<>(); } public Result( String queryIDNum ) { this.queryID = queryIDNum; this.hits = new ArrayList<>(); this.ms = ""; } public void setShowTime( boolean showTime ) { this.showTime = showTime; } public boolean getShowTime() { return showTime; } public Long getTime() { return ms != null && ms.isEmpty() ? null : Long.valueOf( ms ); } public void setTime( Long ms ) { this.ms = ms == null ? "" : String.valueOf( ms ); } public void addHit( Hit hit ) { hits.add( hit ); } public void setHits( List<Hit> hits ) { this.hits = new ArrayList<>( hits ); } public List<Hit> getHits() { return new ArrayList<>( hits ); } public int getNumHits() { return hits.size(); } }