/* DesktopCache.java Purpose: Description: History: Tue Apr 18 10:38:22 2006, Created by tomyeh Copyright (C) 2006 Potix Corporation. All Rights Reserved. {{IS_RIGHT This program is distributed under LGPL Version 2.1 in the hope that it will be useful, but WITHOUT ANY WARRANTY. }}IS_RIGHT */ package org.zkoss.zk.ui.sys; import org.zkoss.zk.ui.ComponentNotFoundException; import org.zkoss.zk.ui.Desktop; import org.zkoss.zk.ui.Session; /** * The cache used to store desktops. * * @author tomyeh */ public interface DesktopCache { /** Returns the next available key which is unique in the whole cache. * * <p>{@link Desktop} uses this method to generate ID automatically. */ public int getNextKey(); /** Returns the desktop for the specified desktop ID. * @exception ComponentNotFoundException is thrown if the desktop * is not found */ public Desktop getDesktop(String desktopId); /** Returns the desktop for the specified desktop ID, or null if not found. */ public Desktop getDesktopIfAny(String desktopId); /** Adds a desktop to this session. * It must be called when a desktop is created. * <p>Application shall never access this method. */ public void addDesktop(Desktop desktop); /** Removes a desktop from this session. * It must be called when a desktop is remove. * <p>Application shall never access this method. */ public void removeDesktop(Desktop desktop); /** Notification that the session is about to be passivated * (a.k.a., serialized). */ public void sessionWillPassivate(Session sess); /** Notification that the session has just been activated * (a.k.a., deserialized). */ public void sessionDidActivate(Session sess); /** Called when to stop and cleanup this cache. * Once stopped, the caller shall not access it any more. * It cannot be called other than the implementation of * {@link DesktopCacheProvider}. */ public void stop(); }