class Result extends ArrayList<Result> {

	public Object toObject() {
		if (isSingleResult()) {
			return resultObject;
		}
		if (this.size() == 1) {
			return this.get(0).toObject();
		}
		throw new LogicException("This result represents more than one result, you cannot call toObject on multiple results");
	}

	public  Result();
	public  Result(Result result);
	public  Result(List<Result> list);
	public  Result(Boolean valueBoolean);
	public  Result(Date resultDate, Boolean valueBoolean, Object obj);
	public  Result(Concept valueCoded);
	public  Result(Date resultDate, Concept valueCoded, Object obj);
	public  Result(Obs obs);
	public  Result(Date valueDatetime);
	public  Result(Date resultDate, Date valueDatetime, Object obj);
	public  Result(Double valueNumeric);
	public  Result(Date resultDate, Double valueNumeric, Object obj);
	public  Result(Integer valueNumeric);
	public  Result(Date resultDate, Integer valueNumeric, Object obj);
	public  Result(String valueText);
	public  Result(Date resultDate, String valueText, Object obj);
	public  Result(Date resultDate, Datatype datatype, Boolean valueBoolean, Concept valueCoded, Date valueDatetime,
	    Double valueNumeric, String valueText, Object object);

}