/* * Copyright (c) 2004-2011 Marco Maccaferri and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Marco Maccaferri - initial API and implementation */ package org.eclipsetrader.core.feed; import java.io.Serializable; /** * Default implementation of the <code>IQuote</code> interface. * * @since 1.0 * @see org.eclipsetrader.core.feed.IQuote */ public class Quote implements IQuote, Serializable { private static final long serialVersionUID = 4237311627623138246L; private Double bid; private Double ask; private Long bidSize; private Long askSize; public Quote(Double bid, Double ask, Long bidSize, Long askSize) { this.bid = bid; this.ask = ask; this.bidSize = bidSize; this.askSize = askSize; } public Quote(Double bid, Double ask) { this.bid = bid; this.ask = ask; } /* (non-Javadoc) * @see org.eclipsetrader.core.feed.IQuote#getAsk() */ @Override public Double getAsk() { return ask; } /* (non-Javadoc) * @see org.eclipsetrader.core.feed.IQuote#getAskSize() */ @Override public Long getAskSize() { return askSize; } /* (non-Javadoc) * @see org.eclipsetrader.core.feed.IQuote#getBid() */ @Override public Double getBid() { return bid; } /* (non-Javadoc) * @see org.eclipsetrader.core.feed.IQuote#getBidSize() */ @Override public Long getBidSize() { return bidSize; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (!(obj instanceof IQuote)) { return false; } IQuote other = (IQuote) obj; return equals(getBid(), other.getBid()) && equals(getAsk(), other.getAsk()) && equals(getBidSize(), other.getBidSize()) && equals(getAskSize(), other.getAskSize()); } protected boolean equals(Object o1, Object o2) { return o1 == o2 || o1 != null && o1.equals(o2); } /* (non-Javadoc) * @see java.lang.Object#hashCode() */ @Override public int hashCode() { return 3 * (bid != null ? bid.hashCode() : 0) + 7 * (ask != null ? ask.hashCode() : 0) + 11 * (bidSize != null ? bidSize.hashCode() : 0) + 13 * (askSize != null ? askSize.hashCode() : 0); } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return "[Quote:" + " B=" + bid + " BS=" + bidSize + " A=" + ask + " AS=" + askSize + "]"; } }