org.jboss.mx.persistence.AttributePersistenceManager Maven / Gradle / Ivy
The newest version!
/*
* JBoss, Home of Professional Open Source.
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software 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. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.mx.persistence;
import javax.management.AttributeList;
import org.w3c.dom.Element;
/**
* AttributePersistenceManager interface.
*
* Implementations of this interface are created by an
* MBean service that acts as factory and a manager
* for the active AttributePersistenceManager implementation
*
* The DelegatingPersistenceManager will contact the MBean
* to get an AttributePersistenceManager implementation.
*
* In this way, the Persistence Manager can be controlled
* externally as an MBean.
*
* @author Dimitris Andreadis
* @version $Revision: 81026 $
*/
public interface AttributePersistenceManager
{
// AttributePersistenceManager lifecycle -------------------------
/**
* Initializes the AttributePersistenceManager using
* the supplied configuration element CONFIG_ELEMENT
* whose content will be probably different for each
* particular implementation.
*
* The version string is a tag that must be used by the
* AttributePersistenceManager implementation to make
* sure that data saved/loaded under different version
* tags are partitioned. It can be null or empty to
* indicate that no particular version tag is required.
*
* Once created, the configuration of the implementation
* object cannot change.
*
* Calling any other method before create() is executed
* will result in a IllegalStateException
*
* Finally, the implementation should be prepared to
* receive multiple concurrent calls.
*
* @param version a tag to identify the version
* @param config XML Element to load arbitrary config
* @throws Exception when any error occurs during create
*/
public void create(String version, Element config)
throws Exception;
/**
* Returns true if the AttributePersistenceManager
* is "in-service" state, i.e. after create() and
* before destroy() has been called, false otherwise.
*
* @return true if in operational state
*/
public boolean getState();
/**
* Releases resources and destroys the AttributePersistenceManager.
* The object is unusable after destroy() has been called.
*
* Any call to any method will result to an
* IllegalStateException.
*
*/
public void destroy();
// AttributePersistenceManager Persistence -----------------------
/**
* Checks if a persistened AttributeList for this particular
* id exists
*
* @param id the key of the image
* @return true if an image exists; false otherwise
* @throws Exception on any error
*/
public boolean exists(String id)
throws Exception;
/**
* Uses the specified id to retrieve a previously persisted
* AttributeList. If no data can be found under the specified
* id, a null will be returned.
*
* @param id the key for retrieving the data
* @return the data, or null
* @throws Exception when an error occurs
*/
public AttributeList load(String id)
throws Exception;
/**
* Persists an AttributeList (name/value pair list),
* under a specified id. The id can be used to retrieve the
* AttributeList later on. The actual mechanism will differ
* among implementations.
*
* @param id the key for retrieving the data later on, not null
* @param attrs the data to be persisted, not null
* @throws Exception when data cannot be persisted
*/
public void store(String id, AttributeList attrs)
throws Exception;
/**
* Removes the persisted AttributeList, if exists
*
* @param id the key of the image
* @throws Exception when any error occurs
*/
public void remove(String id)
throws Exception;
/**
* Removes all the persisted data stored under
* the configured version tag.
*
* @throws Exception when any error occurs
*/
public void removeAll()
throws Exception;
/**
* Returns a String array with all the saved ids
* under the configured version tag.
*
* @return array with all persisted ids
* @throws Exception when any error occurs
*/
public String[] listAll()
throws Exception;
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy