/*
* Generated, Do Not Modify
*/
/*
*
* Copyright 2013 Blazebit.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.blazebit.blazefaces.behavior.ajax;
import javax.faces.component.behavior.ClientBehaviorHint;
import javax.el.ELContext;
import java.util.EnumSet;
import java.util.Map;
import javax.faces.FacesException;
import javax.el.ValueExpression;
import javax.faces.component.UIComponentBase;
import java.util.Collections;
import javax.el.ELException;
import java.util.Set;
import java.util.HashMap;
import javax.faces.context.FacesContext;
public abstract class AjaxBehaviorBase extends javax.faces.component.behavior.ClientBehaviorBase {
public static final String BEHAVIOR_ID = "com.blazebit.blazefaces.behavior.AjaxBehavior";
private static final String DEFAULT_RENDERER = "com.blazebit.blazefaces.behavior.renderer.AjaxBehaviorRenderer";
private static final Set<ClientBehaviorHint> HINTS = Collections.unmodifiableSet(EnumSet.of(ClientBehaviorHint.SUBMITTING));
protected javax.el.MethodExpression listener;
protected java.lang.Boolean async;
protected java.lang.String process;
protected java.lang.String update;
protected java.lang.String onstart;
protected java.lang.String oncomplete;
protected java.lang.String onerror;
protected java.lang.String onsuccess;
protected java.lang.Boolean immediate;
protected java.lang.Boolean global;
protected java.lang.Boolean disabled;
protected java.lang.String event;
protected java.lang.Boolean partialSubmit;
protected Map<String, ValueExpression> bindings;
@Override
public String getRendererType() {
return DEFAULT_RENDERER;
}
@Override
public Set<ClientBehaviorHint> getHints() {
return HINTS;
}
protected FacesContext getFacesContext() {
return FacesContext.getCurrentInstance();
}
public javax.el.MethodExpression getListener() {
javax.el.MethodExpression result = (javax.el.MethodExpression) eval("listener", listener);
return ((result != null) ? result : null);
}
public void setListener(javax.el.MethodExpression listener) {
this.listener = listener;
clearInitialState();
}
public boolean isAsync() {
java.lang.Boolean result = (java.lang.Boolean) eval("async", async);
return ((result != null) ? result : false);
}
public void setAsync(boolean async) {
this.async = async;
clearInitialState();
}
public java.lang.String getProcess() {
java.lang.String result = (java.lang.String) eval("process", process);
return ((result != null) ? result : "@this");
}
public void setProcess(java.lang.String process) {
this.process = process;
clearInitialState();
}
public java.lang.String getUpdate() {
java.lang.String result = (java.lang.String) eval("update", update);
return ((result != null) ? result : null);
}
public void setUpdate(java.lang.String update) {
this.update = update;
clearInitialState();
}
public java.lang.String getOnstart() {
java.lang.String result = (java.lang.String) eval("onstart", onstart);
return ((result != null) ? result : null);
}
public void setOnstart(java.lang.String onstart) {
this.onstart = onstart;
clearInitialState();
}
public java.lang.String getOncomplete() {
java.lang.String result = (java.lang.String) eval("oncomplete", oncomplete);
return ((result != null) ? result : null);
}
public void setOncomplete(java.lang.String oncomplete) {
this.oncomplete = oncomplete;
clearInitialState();
}
public java.lang.String getOnerror() {
java.lang.String result = (java.lang.String) eval("onerror", onerror);
return ((result != null) ? result : null);
}
public void setOnerror(java.lang.String onerror) {
this.onerror = onerror;
clearInitialState();
}
public java.lang.String getOnsuccess() {
java.lang.String result = (java.lang.String) eval("onsuccess", onsuccess);
return ((result != null) ? result : null);
}
public void setOnsuccess(java.lang.String onsuccess) {
this.onsuccess = onsuccess;
clearInitialState();
}
public boolean isImmediate() {
java.lang.Boolean result = (java.lang.Boolean) eval("immediate", immediate);
return ((result != null) ? result : false);
}
public void setImmediate(boolean immediate) {
this.immediate = immediate;
clearInitialState();
}
public boolean isGlobal() {
java.lang.Boolean result = (java.lang.Boolean) eval("global", global);
return ((result != null) ? result : false);
}
public void setGlobal(boolean global) {
this.global = global;
clearInitialState();
}
public boolean isDisabled() {
java.lang.Boolean result = (java.lang.Boolean) eval("disabled", disabled);
return ((result != null) ? result : false);
}
public void setDisabled(boolean disabled) {
this.disabled = disabled;
clearInitialState();
}
public java.lang.String getEvent() {
java.lang.String result = (java.lang.String) eval("event", event);
return ((result != null) ? result : null);
}
public void setEvent(java.lang.String event) {
this.event = event;
clearInitialState();
}
public boolean isPartialSubmit() {
java.lang.Boolean result = (java.lang.Boolean) eval("partialSubmit", partialSubmit);
return ((result != null) ? result : false);
}
public void setPartialSubmit(boolean partialSubmit) {
this.partialSubmit = partialSubmit;
clearInitialState();
}
protected Object eval(String propertyName, Object value) {
if(value != null) {
return value;
}
ValueExpression expression = getValueExpression(propertyName);
if(expression != null) {
return expression.getValue(FacesContext.getCurrentInstance().getELContext());
}
return null;
}
public ValueExpression getValueExpression(String name) {
if(name == null) {
throw new IllegalArgumentException();
}
return ((bindings == null) ? null : bindings.get(name));
}
public void setValueExpression(String name, ValueExpression expr) {
if(name == null) {
throw new IllegalArgumentException();
}
if(expr != null) {
if(expr.isLiteralText()) {
setLiteralValue(name, expr);
} else {
if(bindings == null) {
bindings = new HashMap<String, ValueExpression>(6,1.0f);
}
bindings.put(name, expr);
}
}
else {
if(bindings != null) {
bindings.remove(name);
if(bindings.isEmpty()) {
bindings = null;
}
}
}
clearInitialState();
}
protected void setLiteralValue(String propertyName, ValueExpression expression) {
Object value;
ELContext context = FacesContext.getCurrentInstance().getELContext();
try {
value = expression.getValue(context);
}
catch (ELException eLException) {
throw new FacesException(eLException);
}
if ("listener".equals(propertyName)) {
listener = (javax.el.MethodExpression) value;
}
else if ("async".equals(propertyName)) {
async = (java.lang.Boolean) value;
}
else if ("process".equals(propertyName)) {
process = (java.lang.String) value;
}
else if ("update".equals(propertyName)) {
update = (java.lang.String) value;
}
else if ("onstart".equals(propertyName)) {
onstart = (java.lang.String) value;
}
else if ("oncomplete".equals(propertyName)) {
oncomplete = (java.lang.String) value;
}
else if ("onerror".equals(propertyName)) {
onerror = (java.lang.String) value;
}
else if ("onsuccess".equals(propertyName)) {
onsuccess = (java.lang.String) value;
}
else if ("immediate".equals(propertyName)) {
immediate = (java.lang.Boolean) value;
}
else if ("global".equals(propertyName)) {
global = (java.lang.Boolean) value;
}
else if ("disabled".equals(propertyName)) {
disabled = (java.lang.Boolean) value;
}
else if ("event".equals(propertyName)) {
event = (java.lang.String) value;
}
else if ("partialSubmit".equals(propertyName)) {
partialSubmit = (java.lang.Boolean) value;
}
}
@Override
public Object saveState(FacesContext context) {
Object[] values;
Object superState = super.saveState(context);
if(initialStateMarked()) {
if(superState == null)
values = null;
else
values = new Object[] {superState};
}
else {
values = new Object[15];
values[0] = superState;
values[1] = listener;
values[2] = async;
values[3] = process;
values[4] = update;
values[5] = onstart;
values[6] = oncomplete;
values[7] = onerror;
values[8] = onsuccess;
values[9] = immediate;
values[10] = global;
values[11] = disabled;
values[12] = event;
values[13] = partialSubmit;
values[14] = saveBindings(context, bindings);
}
return values;
}
@Override
public void restoreState(FacesContext context, Object state) {
if(state != null) {
Object[] values = (Object[]) state;
super.restoreState(context, values[0]);
if(values.length != 1) {
listener = (javax.el.MethodExpression) values[1];
async = (java.lang.Boolean) values[2];
process = (java.lang.String) values[3];
update = (java.lang.String) values[4];
onstart = (java.lang.String) values[5];
oncomplete = (java.lang.String) values[6];
onerror = (java.lang.String) values[7];
onsuccess = (java.lang.String) values[8];
immediate = (java.lang.Boolean) values[9];
global = (java.lang.Boolean) values[10];
disabled = (java.lang.Boolean) values[11];
event = (java.lang.String) values[12];
partialSubmit = (java.lang.Boolean) values[13];
bindings = restoreBindings(context, values[14]);
clearInitialState();
}
}
}
private Object saveBindings(FacesContext context, Map<String, ValueExpression> bindings) {
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.length; i++) {
bindingValues[i] = UIComponentBase.saveAttachedState(context, bindingValues[i]);
}
values[1] = bindingValues;
return values;
}
private Map<String, ValueExpression> restoreBindings(FacesContext context, Object state) {
if(state == null) {
return null;
}
Object values[] = (Object[]) state;
String names[] = (String[]) values[0];
Object states[] = (Object[]) values[1];
Map<String, ValueExpression> bindings = new HashMap<String, ValueExpression>(names.length);
for (int i = 0; i < names.length; i++) {
bindings.put(names[i], (ValueExpression) UIComponentBase.restoreAttachedState(context, states[i]));
}
return bindings;
}
}