1 package org.weda.property;
2
3 /**Цель: получение значение свойства
4 *
5 * @author tim
6 */
7 public interface PropertyValue {
8 /**Метод возвращает значение свойства. Путь до свойства должен быть
9 * предварительно откомпилирован.
10 * @param propertyPathId - строка идентифицирующая скомпилированный путь
11 * до свойства.
12 * @Return значение свойства или null если значение самого свойста равно
13 * null или свойства левее данного в <code>propertyPath</code>
14 * @see #compile(Class, String)
15 */
16 public Object getValue(Object baseObject, Integer propertyPathId)
17 throws PropertyValueException;
18 public void setValue(Object baseObject, Integer propertyPathId
19 , Object value)
20 throws PropertyValueException;
21 /**Метод компилирует propertyPath.
22 * @param propertyPath - путь до свойства. Т.е. свойство может быть
23 * составным, нампример: Допустим есть объект касса Company в котором
24 * есть свойство address (тип которого Address) у которого в свою
25 * очередь есть свойтво <code>street</code>. Тогда
26 * <code>propertyPath</code> будет выгядеть следующим образом:
27 * <code>address.street</code>
28 */
29 public Integer compileGetter(Class baseClass, String propertyPath)
30 throws PropertyValueException;
31 public Integer compileSetter(Class baseClass, String propertyPath)
32 throws PropertyValueException;
33 public void addGetOperationListener(
34 Class objectClass, String propertyName
35 , PropertyGetOperationListener listener)
36 throws PropertyValueException;
37 public void removeGetListener(PropertyGetOperationListener listener);
38 }