1 package org.weda.workflow;
2
3 import java.util.List;
4 import java.util.Stack;
5 import org.weda.action.ActionDescriptor;
6
7 /**Цель: определить соотвествие выражения шаблону.
8 *
9 * @author tim
10 */
11 public interface Entry {
12 public final static String DEFAULT_ENTRY_NAME="DEFAULT_ENTRY";
13
14 public void init() throws EntryException;
15 /**Метод должен вернуть <code>true</code> если <code>exptrssion</code>
16 * соотвествует шаблону.
17 *@see #setPattern(String)
18 */
19 public boolean matches(String expression);
20 /**Вернет <code>true</code> если метод {@link #match(String)} возвращает
21 * <code>true</code> только на точное соответствие (равенство) между именем
22 * и выражением.
23 * @see #setName(String)
24 * @see #match(String)
25 */
26 public boolean isExactMatch();
27 /**Метод возвращает шаблон(имя/идентификатор узла).
28 * @see #setName(String)
29 */
30 public String getName();
31 /**Метод устанавливает шаблон. В шаблоне может присутствовать выражения
32 * выделяющие группы значения которых можно получить с помощью метода
33 * {@link #getValueForGroup(int)}.
34 */
35 public void setName(String pattern);
36 /**Метод возваращет значение для группы выделенной из выражения.
37 * Метод нужно вызывать после метода {@link #match(String)}
38 *@see #match(String)
39 */
40 public List<String> getGroupValues() throws EntryException;
41 /**Выполняет действие.
42 * @Return <code>true</code> если финальный узел (final entry) был найден,
43 * иначе <code>false</code>
44 */
45 public boolean operate(Stack<String> expressions)
46 throws EntryException;
47 /**Возвращает <code>true</code> если данный entry является entry по
48 * умолчанию. По умолчанию - <code>false</code>
49 */
50 public boolean isDefaultEntry();
51 /**Если утсановить в <code>true</code> тогда entry является entry
52 * по умолчанию.
53 */
54 public void setDefaultEntry(boolean defaultEntry);
55 /**Метод устанавливает workflow которому принадлежит entry.
56 */
57 public void setWorkflow(Workflow workflow);
58 /**Метод возвращает контейнер в котором находится entry.
59 */
60 public EntryContainer getContainer();
61 /**Метод устанавливает контейнер в котором находится entry.
62 */
63 public void setContainer(EntryContainer container);
64 }