| /******************************************************************************* |
| * Copyright (c) 2001, 2008 Oracle Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Oracle Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jst.jsf.common.internal.managedobject; |
| |
| /** |
| * Represents an object that wishes to be managed by the framework. |
| * |
| * Clients should not implement: sub-class AbstractManagedObject instead. |
| * |
| */ |
| public interface IManagedObject |
| { |
| /** |
| * Called by the object client to indicate is finished with the object. The |
| * object should save any data it may want between sessions, perhaps by |
| * calling its checkpoint, before cleaning held resources and clearing |
| * memory references. |
| */ |
| void dispose(); |
| |
| /** |
| * @return true if dispose has been successfully called on the object. |
| */ |
| boolean isDisposed(); |
| |
| /** |
| * Called to indicate that the object should remove all its data from both |
| * memory and persistent storage. This differentiates it from dispose in |
| * that it signals that this object and its associated state will never |
| * again be loaded for associated objects. |
| */ |
| void destroy(); |
| |
| /** |
| * Indicates that an object should flush cached data and make durable any |
| * data it might want between sessions. It does not indicate a disposal of |
| * the object. |
| */ |
| void checkpoint(); |
| } |