States.java :  » JBoss » richfaces-ui-3.3.2 » org » richfaces » ui » model » Java Open Source

Java Open Source » JBoss » richfaces ui 3.3.2 
richfaces ui 3.3.2 » org » richfaces » ui » model » States.java
/**
 * License Agreement.
 *
 * Rich Faces - Natural Ajax for Java Server Faces (JSF)
 *
 * Copyright (C) 2007 Exadel, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License version 2.1 as published by the Free Software Foundation.
 *
 * 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.  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 library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 */
package org.richfaces.ui.model;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.ajax4jsf.model.KeepAlive;

/**
 * @author asmirnov
 * 
 */
@KeepAlive
public class States implements State, Serializable {

  /**
   * 
   */
  private static final long serialVersionUID = 8593398262385876975L;
  
  private static final String DEFAULT_STATE = "DEFAULT";

  private final Map<String, State> states;

  private State currentState;
  
  private String currentStateName;

  public States() {
    states = new HashMap<String, State>();
  }
  
  /**
   * HACK - bean property setter for a initialisation from faces-config.xml.
   * @param stateConfig
   */
  public void setConfig(String stateConfig){
    // TODO - parse configuration.
  }
  
  /**
   * Copy all states from an initial state configuration. Use to init state bean from faces-config.xml
   * @param initial
   */
  public void setStates(States initial){
    this.states.clear();
    this.states.putAll(initial.states);
    this.currentState = initial.currentState;
    this.currentStateName = initial.currentStateName;
  }

  public void setCurrentState(String name) {
    State state = states.get(name);
    if (null == state) {
      state = new StateImpl();
      states.put(name, state);
    }
    currentStateName = name;
    currentState = state;
  }

  public String getCurrentState(){
    return currentStateName;    
  }
  
  public void setState(String name, State state) {
    states.put(name, state);
    currentStateName = name;
    currentState = state;
  }

  public void clear() {
    currentState.clear();
  }

  public boolean containsKey(Object key) {
    return currentState.containsKey(key);
  }

  public boolean containsValue(Object value) {
    return currentState.containsValue(value);
  }

  public Set<Entry<String, Object>> entrySet() {
    return currentState.entrySet();
  }

  public Object get(Object key) {
    return currentState.get(key);
  }

  public String getNavigation(String outcome) {
    return currentState.getNavigation(outcome);
  }

  /**
   * @param outcome
   * @param navigation
   * @see org.richfaces.ui.model.State#setNavigation(java.lang.String, java.lang.String)
   */
  public void setNavigation(String outcome, String navigation) {
    currentState.setNavigation(outcome, navigation);
  }

  public boolean isEmpty() {
    return currentState.isEmpty();
  }

  public Set<String> keySet() {
    return currentState.keySet();
  }

  public Object put(String key, Object value) {
    return currentState.put(key, value);
  }

  public void putAll(Map<? extends String, ? extends Object> t) {
    currentState.putAll(t);
  }

  public Object remove(Object key) {
    return currentState.remove(key);
  }

  public int size() {
    return currentState.size();
  }

  public Collection<Object> values() {
    return currentState.values();
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.