View Javadoc

1   package org.weda.store;
2   
3   import java.util.Collection;
4   import java.util.Map;
5   import org.weda.message.Messages;
6   import org.weda.property.ObjectDescriptorRegistry;
7   import org.weda.converter.ValueTypeConverter;
8   import org.weda.store.impl.ObjectAlias;
9   
10  /**Цель: предоставить QL выражение позволяющее ограничить набор данных 
11   *       в результате выполнения {@link Query}.
12   *
13   * @author tim
14   */
15  public interface QueryFilter extends java.io.Serializable {
16      
17      public void init() throws QueryFilterException;
18      
19      public String createFilterElementId(
20          String propertyPath, String objectAlias);
21  
22      /**Метод инициализирует элемент фильтра переданный в параметре. 
23       */
24      public void initQueryFilterElement(
25              QueryFilterElement filterElement, boolean isStaticElement)
26          throws QueryFilterException;
27      /**Метод задает выражение поиска для заданного элемента фильтра.
28       */
29      public void setExpression(String elementId, String expression) 
30          throws QueryFilterException;
31      
32      /**метод возвращает список элементов фильтра.
33       */
34      public Collection<QueryFilterElement> getFilterElements();
35      
36      /**Метод добавляет элемент фильтра.
37       */
38      public void addFilterElement(QueryFilterElement filterElement);
39      /**Метод возвращает элемент фильтра по его идентификатору.
40       * @see QueryFilterElement#getId()
41       */
42      public QueryFilterElement getFilterElement(String id);
43      /**Метод возвращает элемент фильтра по его идентификатору.
44       * @see QueryFilterElement#getId()
45       */
46      public QueryFilterElement getStaticFilterElement(String id);
47      /**Метод удаляет элемент фильтра.
48       */
49      public void removeFilterElement(QueryFilterElement filterElement);
50      /**Метод устанавливает свойство <code>enabled</code> каждого 
51       * {@link QueryFilterElement} в <code>FALSE</code>
52       */
53      public void disableFilterElements();
54      /**Метод устанавливает свойство <code>enabled</code> каждого 
55       * {@link QueryFilterElement} в <code>TRUE</code>
56       */
57      public void enableFilterElements();
58      /**Метод устанавливает в <code>null</code> выражения во всех нестатических
59       * элементах фильтра.
60       * @see QueryFilterElement#setExpression(String)
61       * @see #getFilterElements()
62       */
63      public void clearFiltersExpressions() throws QueryFilterException;
64      /**метод возвращает статический список элементов фильтра.
65       */
66      public Collection<QueryFilterElement> getStaticFilterElements();
67      /**Метод добавляет статический элемент фильтра. 
68       */
69      public void addStaticFilterElement(QueryFilterElement filterElement);   
70      /**Метод удаляет статический элемент фильтра. 
71       */
72      public void removeStaticFilterElement(QueryFilterElement filterElement);
73      /**Метод псевдоним объекта по умолчанию. Псевдоним по умолчанию будет
74       * устанавливаться для тех элементов фильтра у которых не установлено
75       * свойство <code>objectAlias</code>
76       */
77      public void setDefaultObjectAlias(ObjectAlias objectAlias);
78      /**Метод добавляет информацию о псевдониме объекта.
79       */
80      public void addObjectAlias(ObjectAlias objectAlias);
81      
82  //    public void setMessages(Messages messages);
83      
84      public QueryFilter cloneFilter() throws QueryFilterException;
85      public Object clone() throws CloneNotSupportedException;
86  }