/*****************************************************************************
* 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.beans.PropertyChangeListener;
import java.util.Collection;
import java.util.Date;
public interface IStoreGroup extends IStoreItem, Collection<IStoreItem>,
IChangeListener
{
/** retrieve the current "focus time"
*
*/
Date getTime();
/** set the current "focus time"
*
*/
void setTime(Date time);
/** listen for time changes
*
* @param listener
*/
void addTimeChangeListener(PropertyChangeListener listener);
/** stop listening to time changes
*
* @param listener
*/
void removeTimeChangeListener(PropertyChangeListener listener);
/**
* retrieve the named collection
*
* @param name
* @return
*/
IStoreItem get(String name);
void setName(String value);
boolean hasChildren();
boolean add(IStoreItem item);
boolean remove(Object item);
void addChangeListener(IChangeListener listener);
void removeChangeListener(IChangeListener listener);
}