All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.faces.component.StateHelper Maven / Gradle / Ivy

There is a newer version: 4.1.1
Show newest version
/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package javax.faces.component;

import java.io.Serializable;

/**
 * 

Define a Map-like contract * that makes it easier for components to implement {@link * PartialStateHolder}. Each {@link UIComponent} in the view will * return an implementation of this interface from its {@link * UIComponent#getStateHelper} method.

* * @since 2.0 */ public interface StateHelper extends StateHolder { /** *

Return the previously stored value * and store the specified key/value pair. This is intended to * store data that would otherwise reside in an instance variable on * the component.

* * @param key the key for the value * @param value the value * @return the previously stored value * @since 2.0 */ Object put(Serializable key, Object value); /** *

Remove the key/value pair from the * helper, returning the value previously stored under this key.

* * @param key the key to remove * @return the removed value. * @since 2.0 */ Object remove(Serializable key); /** *

Store the specified * mapKey/value in a Map that * is internal to the helper, and return the previously stored * value. The Map will then be associated with * key.

* *
*

It's important to note for delta tracking that any * modifications to the internal Map be made through * this method or {@link StateHelper#remove(java.io.Serializable, * Object)}.

* *
* * @param key the key of the map itself * @param mapKey the key within the internal map * @param value the value for the key in the internal map * @return the value. * @since 2.0 */ Object put(Serializable key, String mapKey, Object value); /** *

Return the value currently * associated with the specified key if any.

* * @param key the key for which the value should be returned. * @return the value. * @since 2.0 */ Object get(Serializable key); /** *

Attempts to find a value associated * with the specified key, using the value expression collection * from the component if no such value is found. * * @param key the name of the value in the internal map, or the name * of a value expression in the components value expression * collection.

* @return the evaluated value. * @since 2.0 */ Object eval(Serializable key); /** *

Performs the same logic as {@link * #eval(java.io.Serializable)} } but if no value is found, this * will return the specified defaultValue

* @param key the key for which the value should be returned. * @param defaultValue the value to return if no value is found in * the call to eval(). * @return the evaluated value. * @since 2.0 */ Object eval(Serializable key, Object defaultValue); /** *

Store the specified * value in a List that is internal to the * StateHelper.

* *

It's important to note for delta * tracking that any modifications to the internal List * be made through this method or {@link * StateHelper#remove(java.io.Serializable, Object)}.

* * @param key the key for which the value should be returned. * @param value the value to add * @since 2.0 */ void add(Serializable key, Object value); /** *

Remove a value from the inner data * structure. Look in the inner data structure for the value at the * given key. If the value is a Map, * remove and return the value under the key given by the * valueOrKey argument. If the value is a * Collection, simply remove the value given by * the argument valueOrKey and return null.

* * @param key the key of in the inner data structure whose value is * a Collection or Map * @param valueOrKey the value or key to be removed. * @return the removed value. */ Object remove(Serializable key, Object valueOrKey); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy