package org.aperteworkflow.util.dict.wrappers; import java.util.Collection; import java.util.Date; import java.util.Map; /** * User: POlszewski * Date: 2012-12-01 * Time: 12:57 */ public interface DictionaryItemValueWrapper<WrappedItemValueType, ItemExtensionWrapperType extends DictionaryItemExtensionWrapper> { String _VALUE = "value"; String _VALID_START_DATE = "validStartDate"; String _VALID_END_DATE = "validEndDate"; String _EXTENSIONS = "extensions"; WrappedItemValueType getWrappedObject(); DictionaryItemValueWrapper<WrappedItemValueType, ItemExtensionWrapperType> exactCopy(); DictionaryItemValueWrapper<WrappedItemValueType, ItemExtensionWrapperType> shallowCopy(); String getValue(); void setValue(String value); Date getValidStartDate(); void setValidStartDate(Date validStartDate); Date getValidEndDate(); void setValidEndDate(Date validEndDate); boolean isValidForDate(Date date); Map<String, ItemExtensionWrapperType> getExtensions(); void setExtensions(Map<String, ItemExtensionWrapperType> extensions); Collection<String> getExtensionNames(); ItemExtensionWrapperType getExtensionByName(String extensionName); boolean hasFullDatesRange(); }