/*****************************************************************************
* Limpet - the Lightweight InforMation ProcEssing Toolkit
* http://limpet.info
*
* (C) 2015-2016, Deep Blue C Technologies Ltd
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Eclipse Public License v1.0
* (http://www.eclipse.org/legal/epl-v10.html)
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*****************************************************************************/
package info.limpet;
import java.util.List;
public interface ICollection extends IStoreItem
{
String getName();
void setName(String name);
int getValuesCount();
boolean isQuantity();
boolean isTemporal();
void setDescription(String description);
String getDescription();
// note: dependents and precedents are intended to be persistent,
// change listeners aren't
List<ICommand<?>> getDependents();
ICommand<?> getPrecedent();
void addDependent(ICommand<?> addQuantityValues);
/** indicate that the collection has changed
* Note: both registeered listeners and dependents are informed of the change
*/
void fireDataChanged();
/** indicate that the collection's metadata has changed
* Note: both registeered listeners and dependents are informed of the change
*/
void fireMetadataChanged();
/** what type is stored in collection
*
* @return
*/
Class<?> storedClass();
/** tell listeners that it's about to be deleted
*
*/
void beingDeleted();
}