/* BindContextImpl.java
Purpose:
Description:
History:
Aug 2, 2011 1:09:16 PM, Created by henrichen
Copyright (C) 2011 Potix Corporation. All Rights Reserved.
*/
package org.zkoss.bind.impl;
import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.bind.BindContext;
import org.zkoss.bind.Binder;
import org.zkoss.bind.sys.Binding;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
/**
* Implementation of {@link BindContext}.
* @author henrichen
* @since 6.0.0
*/
public class BindContextImpl implements BindContext, Serializable {
private static final long serialVersionUID = 20141230165521L;
private final Binder _binder;
private final Binding _binding;
private final boolean _save;
private final String _command;
private final Component _component; //ZK context
private final Event _event; //ZK event
private final Map<Object, Object> _attrs;
public static final String COMMAND_ARGS = "$BC_CMDARGS$";
public static final String BINDING_ARGS = "$BC_BINDARGS$";
public static final String VALIDATOR_ARGS = "$BC_VALIDARGS$";
public static final String CONVERTER_ARGS = "$BC_CONVARGS$";
public BindContextImpl(Binder binder, Binding binding, boolean save, String command, Component comp, Event event) {
this._binder = binder;
this._binding = binding;
this._save = save;
this._command = command;
this._component = comp;
this._event = event;
this._attrs = new HashMap<Object, Object>();
}
public Binder getBinder() {
return this._binder;
}
public Binding getBinding() {
return this._binding;
}
public Object getAttribute(Object key) {
return this._attrs.get(key);
}
public Object setAttribute(Object key, Object value) {
return value == null ? this._attrs.remove(key) : this._attrs.put(key, value);
}
public Map<Object, Object> getAttributes() {
return Collections.unmodifiableMap(_attrs);
}
public Object getCommandArg(String key) {
Map<?, ?> m = (Map<?, ?>) getAttribute(COMMAND_ARGS);
return m == null ? null : m.get(key);
}
public Object getBindingArg(String key) {
Map<?, ?> m = (Map<?, ?>) getAttribute(BINDING_ARGS);
return m == null ? null : m.get(key);
}
public Object getConverterArg(String key) {
Map<?, ?> m = (Map<?, ?>) getAttribute(CONVERTER_ARGS);
return m == null ? null : m.get(key);
}
public Object getValidatorArg(String key) {
Map<?, ?> m = (Map<?, ?>) getAttribute(VALIDATOR_ARGS);
return m == null ? null : m.get(key);
}
@SuppressWarnings("unchecked")
public Map<String, Object> getCommandArgs() {
return (Map<String, Object>) getAttribute(COMMAND_ARGS);
}
@SuppressWarnings("unchecked")
public Map<String, Object> getBindingArgs() {
return (Map<String, Object>) getAttribute(BINDING_ARGS);
}
@SuppressWarnings("unchecked")
public Map<String, Object> getConverterArgs() {
return (Map<String, Object>) getAttribute(CONVERTER_ARGS);
}
@SuppressWarnings("unchecked")
public Map<String, Object> getValidatorArgs() {
return (Map<String, Object>) getAttribute(VALIDATOR_ARGS);
}
public boolean isSave() {
return this._save;
}
public String getCommandName() {
return this._command;
}
public Component getComponent() {
return this._component;
}
public Event getTriggerEvent() {
return this._event;
}
}