Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright ${year}, Red Hat, Inc. and individual contributors
   * by the @authors tag. See the copyright.txt 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.richfaces.component.behavior;
 
 import java.util.Map;
 
 import  javax.faces.FacesException;
 import  javax.faces.component.StateHelper;
 import  javax.faces.component.UIComponentBase;
 import  javax.faces.component.behavior.ClientBehaviorBase;
 import  javax.faces.context.FacesContext;

Author(s):
Anton Belevich base class for the client behaviors
 
 public abstract class ClientBehavior extends ClientBehaviorBase {
     private StateHelper behaviorStateHelper = null;
     private Map<StringValueExpressionbindings;
 
     public StateHelper getStateHelper() {
         if ( == null) {
              = new BehaviorStateHelper(this);
         }
         return ;
     }
 
     public ValueExpression getValueExpression(String name) {
         if (name == null) {
             throw new NullPointerException();
         }
 
         return (( == null) ? null : .get(name));
     }
 
     public void setValueExpression(String nameValueExpression valueExpression) {
         if (name == null) {
             throw new NullPointerException();
         }
 
         if (valueExpression != null) {
 
             if (valueExpression.isLiteralText()) {
                 setLiteralValue(namevalueExpression);
             } else {
                 if ( == null) {
                      = new HashMap<StringValueExpression>(6, 1.0f);
                 }
                 .put(namevalueExpression);
             }
         } else {
             if ( != null) {
                 .remove(name);
                 if (.isEmpty()) {
                      = null;
                 }
             }
         }
         clearInitialState();
     }
 
     protected FacesContext getFacesContext() {
         return FacesContext.getCurrentInstance();
     }
 
     public void setLiteralValue(String nameValueExpression expression) {
         assert (expression.isLiteralText());
         ELContext context = getFacesContext().getELContext();
 
         try {
             setLiteralAttribute(nameexpression.getValue(context));
         } catch (ELException elem) {
             throw new FacesException(elem);
         }
    }
    public abstract void setLiteralAttribute(String nameObject value);
    @Override
    public Object saveState(FacesContext context) {
        Object[] state = null;
        Object parentState = super.saveState(context);
        if (initialStateMarked()) {
            if (parentState != null) {
                state = new Object[] { parentState };
            }
        } else {
            Object savedHelper = null;
            if ( != null) {
                savedHelper = .saveState(context);
            }
            state = new Object[3];
            state[0] = parentState;
            state[1] = savedHelper;
            state[2] = saveBindings(context);
        }
        return state;
    }
    @Override
    public void restoreState(FacesContext contextObject state) {
        if (state != null) {
            Object[] stateObject = (Object[]) state;
            super.restoreState(context, stateObject[0]);
            if (stateObject.length == 3) {
                getStateHelper().restoreState(contextstateObject[1]);
                this. = restoreBindings(contextstateObject[2]);
                clearInitialState();
            }
        }
    }
    // Utility for saving bindings state
    private static Object saveBindings(FacesContext contextMap<StringValueExpressionbindings) {
        if (bindings == null) {
            return (null);
        }
        Object[] values = new Object[2];
        values[0] = bindings.keySet().toArray(new String[bindings.size()]);
        Object[] bindingValues = bindings.values().toArray();
        for (int i = 0; i < bindingValues.lengthi++) {
            bindingValues[i] = UIComponentBase.saveAttachedState(contextbindingValues[i]);
        }
        values[1] = bindingValues;
        return (values);
    }
    // Utility for restoring bindings from state
    private static Map<StringValueExpressionrestoreBindings(FacesContext contextObject state) {
        if (state == null) {
            return (null);
        }
        Object[] values = (Object[]) state;
        String[] names = (String[]) values[0];
        Object[] states = (Object[]) values[1];
        Map<StringValueExpressionbindings = new HashMap<StringValueExpression>();
        for (int i = 0; i < names.lengthi++) {
            bindings.put(names[i], (ValueExpression) UIComponentBase.restoreAttachedState(contextstates[i]));
        }
        return (bindings);
    }
    protected boolean compare(Serializable keyString name) {
        boolean retValue = false;
        if (key != null) {
            String keyName = key.toString();
            retValue = keyName.equals(name);
        }
        return retValue;
    }
New to GrepCode? Check out our FAQ X