org.valkyriercp.binding.MutablePropertyAccessStrategy Maven / Gradle / Ivy
package org.valkyriercp.binding;
import org.springframework.beans.BeansException;
import org.valkyriercp.binding.value.ValueModel;
/**
*
* An extension of the base property access strategy interface that allows for
* mutable operations. Specifically, this interface allows:
*
*
* - registering custom property editors for performing type conversions
* - returning a domain object holder allowing the underlying domain object
* to be changed and subscribed to for modification, and
* - adding listeners for changes on particular properties.
*
*
* @author Keith Donald
*/
public interface MutablePropertyAccessStrategy extends PropertyAccessStrategy {
/**
* Get the ValueModel
used to access the domainObject.
*
* @return the ValueModel
of the domainObject.
*/
ValueModel getDomainObjectHolder();
/**
* Get the ValueModel
to access the given property. Possibly
* creating the valueModel if needed.
*
* @param propertyPath property to access.
* @return ValueModel
that handles the given property.
* @throws org.springframework.beans.BeansException
*/
ValueModel getPropertyValueModel(String propertyPath) throws BeansException;
/**
* Get a MutablePropertyAccessStrategy
for the given
* property.
*
* TODO check why this exists and where this is used.
*
* @param propertyPath property.
* @return MutablePropertyAccessStrategy
for the given
* property.
* @throws BeansException
*/
MutablePropertyAccessStrategy getPropertyAccessStrategyForPath(String propertyPath) throws BeansException;
/**
* Return a new MutablePropertyAccessStrategy
for the given
* valueModel.
*
* TODO check why this exists and where this is used.
*
* @param domainObjectHolder a ValueModel
containing the
* domainObject.
* @return a newly created MutablePropertyAccessStrategy
.
*/
MutablePropertyAccessStrategy newPropertyAccessStrategy(ValueModel domainObjectHolder);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy