package org.openntf.domino.nsfdata.impldxl.item; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.openntf.domino.nsfdata.NSFDateRange; import org.openntf.domino.nsfdata.NSFDateTime; import org.openntf.domino.nsfdata.NSFDateTimeValue; import org.openntf.domino.utils.xml.XMLNode; import org.openntf.domino.utils.xml.XMLNodeList; public class DXLItemTimeRange extends AbstractDXLItem { private static final long serialVersionUID = 1L; private NSFDateTime[] dateTimeValues_; private NSFDateRange[] dateRangeValues_; protected DXLItemTimeRange(final XMLNode node, final int dupItemId) { super(node, dupItemId); XMLNodeList dateTimeNodes = node.selectNodes("./datetimelist/datetime"); dateTimeValues_ = new NSFDateTime[dateTimeNodes.size()]; for(int i = 0; i < dateTimeNodes.size(); i++) { dateTimeValues_[i] = DXLItemFactory.createDateTime(dateTimeNodes.get(i)); } XMLNodeList dateRangeNodes = node.selectNodes("./datetimelist/datetimepair"); dateRangeValues_ = new NSFDateRange[dateRangeNodes.size()]; for(int i = 0; i < dateRangeNodes.size(); i++) { XMLNode startNode = dateRangeNodes.get(i).getFirstChildElement(); NSFDateTime start = DXLItemFactory.createDateTime(startNode); XMLNode endNode = startNode.getNextSiblingElement(); NSFDateTime end = DXLItemFactory.createDateTime(endNode); dateRangeValues_[i] = new NSFDateRange(start, end); } } @Override public List<NSFDateTimeValue> getValue() { List<NSFDateTimeValue> result = new ArrayList<NSFDateTimeValue>(); Collections.addAll(result, dateTimeValues_); Collections.addAll(result, dateRangeValues_); return Collections.unmodifiableList(result); } @Override public Type getType() { return Type.TIME_RANGE; } @Override public byte[] getBytes() { throw new UnsupportedOperationException(); } }