content: package net.anotheria.moskito.webui.accumulators.bean;
  
  import net.anotheria.util.BasicComparable;
  import net.anotheria.util.NumberUtils;
  import net.anotheria.util.sorter.IComparable;
  
  import java.util.HashMap;
  import java.util.Map;
  
  /**
   * This object is used to put values from different accumulators on the same timeline. It contains values from
   * selected accumulators at the same time.
   */
  public class AccumulatedValuesBean implements IComparable{
  	/**
  	 * Timestamp of the value.
  	 */
  	private long timestamp;
  	/**
  	 * Map with values, with accumulator name as key, accumulator value as value.
  	 */
  	private Map<String, String> values;
  
  	/**
  	 * Creates a new AccumulatedValuesBean with a timestamp.
  	 * @param aTimestamp the timestamp.
  	 */
  	public AccumulatedValuesBean(long aTimestamp){
  		timestamp = aTimestamp;
  		values = new HashMap<>();
  	}
  	
  	@Override public String toString(){
  		return getTime() + ": "+values;
  	}
  
  	/**
  	 * Sets the value for defined accumulator.
  	 * @param name
  	 * @param value
  	 */
  	public void setValue(String name, String value){
  		values.put(name, value);
  	}
  
  	/**
  	 * Return the timestamp as time string.
  	 * @return
  	 */
  	public String getTime(){
  		return NumberUtils.makeTimeString(timestamp);
  	}
  
  	@Override
  	public int compareTo(IComparable anotherObject, int method) {
  		return BasicComparable.compareLong(timestamp, ((AccumulatedValuesBean)anotherObject).timestamp);
  	}
  
  	/**
  	 * Returns a value for named accumulator.
  	 * @param name name of the accumulator.
  	 * @return
  	 */
  	public String getValue(String name){
  		return values.get(name);
  	}
  
  	/**
  	 * Return the timestamp as numeric value.
  	 *
  	 * @return timestamp
  	 */
  	public long getTimestamp() {
  		return timestamp;
  	}
  }
  