1 package org.weda.property;
2
3 import java.util.List;
4
5 /**Цель: хранение информации о свойстве объекта
6 *
7 * @author Mikhail Titov
8 */
9 public interface PropertyDescriptor {
10 public final static String OBJECT_PROPERTY_MIME_TYPE = "object/property";
11 /**Метод возвращает список ограничений наложенных на свойство.
12 */
13 public List<Constraint> getConstraints();
14 /**Метод осуществлеят проверку на соотвествие значения каждому ограничению.
15 * @Throws org.weda.property.ConstraintException если значение
16 * не соотвествуетпри хотя бы одному ограничению.
17 * @see #getConstraints()
18 */
19 public void check(Object value) throws ConstraintException;
20 /**Метод возвращает класс объекта владеющего данным свойством.
21 */
22 public Class getObjectClass();
23 /**Метод возвращает название свойства для отображения в пользовательском
24 * интерфейсе.
25 */
26 public String getDisplayName();
27 /**Метод вернет <code>true</code> если свойство {@link #getDisplayName()}
28 * установлено. Появление данного метода связанно с тем что если
29 * свойство <code>displayName</code> не установлено тогда в качестве его
30 * значения возвращается значение свойства <code>name</code>
31 * ({@link #getName()})
32 */
33 public boolean hasDisplayName();
34 /**Метод возвращет имя свойства.
35 */
36 public String getName();
37 /**Метод возвращает тип свойства.
38 */
39 public Class getPropertyClass();
40 /**Метод возвращает родительское свойство. Родительское в разрезе
41 * наследования значений свойств.
42 */
43 public PropertyDescriptor getParent();
44 /**Метод возвращает шаблон который используется для преобразования значения
45 * свойства к строке и наоборот.
46 */
47 public String getPattern();
48 /**Метод возвращает mime тип свойства
49 */
50 public String getMimeType();
51 /**Метод вернет <code>true</code> если в качестве значения для данного
52 * свойства может устанавливаться одно из списка возвращаемого методом
53 * {@link #getPosibleValues()}
54 *@see #getPosibleValues()
55 *@see #isPosibleValuesAliased()
56 *@see #getPosibleValueByValue(Object)
57 */
58
59 /**Метод возвращает список возможных значений свойства. Метод вернет
60 * <code>null</code> если список не определен. Метод возвращает список
61 * который нельзя изменять.
62 *@see #hasPosibleValues()
63 *@see #isPosibleValuesAliased()
64 *@see #getPosibleValueByValue(Object)
65 */
66
67 /**Метод вернет <code>true</code> если метод {@link #getPosibleValues()}
68 * возвращает именнованные значения.
69 *@see PosibleValue
70 *@see #hasPosibleValues()
71 *@see #getPosibleValues()
72 *@see #getPosibleValueByValue(Object)
73 */
74
75 /**Метод возвращает возможное значение по действительному значению.
76 *@see #hasPosibleValues()
77 *@see #getPosibleValues()
78 *@see #isPosibleValuesAliased()
79 */
80
81 }