/* * 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.ui.internal.markets; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.eclipsetrader.core.internal.markets.MarketTime; import org.eclipsetrader.core.internal.markets.MarketTimeExclude; public class MarketTimeElement implements Comparable<MarketTimeElement> { private Date openTime; private Date closeTime; private String description; private List<MarketTimeExcludeElement> exclude = new ArrayList<MarketTimeExcludeElement>(); public static class MarketTimeExcludeElement implements Comparable<MarketTimeExcludeElement> { private Date fromDate; private Date toDate; public MarketTimeExcludeElement(Date fromDate, Date toDate) { this.fromDate = fromDate; this.toDate = toDate; } public MarketTimeExcludeElement(MarketTimeExclude exclude) { this.fromDate = exclude.getFromDate(); this.toDate = exclude.getToDate() != null ? exclude.getToDate() : exclude.getFromDate(); } public Date getFromDate() { return fromDate; } public void setFromDate(Date fromDate) { this.fromDate = fromDate; } public Date getToDate() { return toDate; } public void setToDate(Date toDate) { this.toDate = toDate; } public MarketTimeExclude getMarketTimeExclude() { if (fromDate.equals(toDate)) { return new MarketTimeExclude(fromDate); } else { return new MarketTimeExclude(fromDate, toDate); } } /* (non-Javadoc) * @see java.lang.Comparable#compareTo(java.lang.Object) */ @Override public int compareTo(MarketTimeExcludeElement o) { return fromDate.compareTo(o.fromDate); } } public MarketTimeElement(Date openTime, Date closeTime) { this.openTime = openTime; this.closeTime = closeTime; } public MarketTimeElement(MarketTime marketTime) { this.openTime = marketTime.getOpenTime(); this.closeTime = marketTime.getCloseTime(); this.description = marketTime.getDescription(); for (MarketTimeExclude exclude : marketTime.getExclude()) { this.exclude.add(new MarketTimeExcludeElement(exclude)); } } public Date getOpenTime() { return openTime; } public void setOpenTime(Date openTime) { this.openTime = openTime; } public Date getCloseTime() { return closeTime; } public void setCloseTime(Date closeTime) { this.closeTime = closeTime; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public List<MarketTimeExcludeElement> getExclude() { return exclude; } public MarketTime getMarketTime() { MarketTime marketTime = new MarketTime(openTime, closeTime, description); MarketTimeExclude[] exclude = new MarketTimeExclude[this.exclude.size()]; for (int i = 0; i < exclude.length; i++) { exclude[i] = this.exclude.get(i).getMarketTimeExclude(); } marketTime.setExclude(exclude); return marketTime; } /* (non-Javadoc) * @see java.lang.Comparable#compareTo(java.lang.Object) */ @Override public int compareTo(MarketTimeElement o) { return openTime.compareTo(o.openTime); } }