/** FormProxyObject.java.
Purpose:
Description:
History:
12:04:46 PM Dec 25, 2014, Created by jumperchen
Copyright (C) 2014 Potix Corporation. All Rights Reserved.
*/
package org.zkoss.bind.proxy;
import java.util.Set;
import org.zkoss.bind.BindContext;
import org.zkoss.bind.sys.FormBinding;
import org.zkoss.bind.sys.SavePropertyBinding;
import org.zkoss.util.Pair;
/**
* The interface implemented by proxy classes.
* <p>Note: To avoid the method naming conflict with the origin object, we declare
* those long method names, <tt>getOriginObject</tt>, <tt>resetFormOrigin</tt>,
* <tt>submitToOrigin</tt>, and <tt>isDirtyForm</tt>
* @author jumperchen
* @since 8.0.0
*/
public interface FormProxyObject {
/**
* Returns the origin object.
*/
public Object getOriginObject();
/**
* Resets all of the changes of this form from the origin object.
*/
public void resetFromOrigin();
/**
* Saves all of the changes of this form to the origin object.
* @param ctx
*/
public void submitToOrigin(BindContext ctx);
/**
* Returns whether the form proxy object is dirty or not, including all
* of its attributes.
*/
public boolean isFormDirty();
/**
* Sets the owner of this form with its binding.
* @param owner the object associated with this form.
*/
public void setFormOwner(Object owner, FormBinding binding);
/**
* Set the property of current form proxy object and it's creator
* @param property p the property
* @param parent parent the parent proxy node
* @since 8.0.2
*/
public void setPath(String property, ProxyNode parent);
/**
* Cache save property binding by property string
* @param property the property of save property binding
* @param savePropertyBinding the save property binding
* @since 8.0.2
*/
public void cacheSavePropertyBinding(String property, SavePropertyBinding savePropertyBinding);
/**
* Collect all of collect cached save property bindings
* @since 8.0.2
*/
public Set<Pair<String, SavePropertyBinding>> collectCachedSavePropertyBinding();
}