|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ElementList | Line # 27 | 0 | 0 | - |
-1.0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
No Tests | |||
1 | /* This file is part of the project "Hilbert II" - http://www.qedeq.org | |
2 | * | |
3 | * Copyright 2000-2013, Michael Meyling <mime@qedeq.org>. | |
4 | * | |
5 | * "Hilbert II" is free software; you can redistribute | |
6 | * it and/or modify it under the terms of the GNU General Public | |
7 | * License as published by the Free Software Foundation; either | |
8 | * version 2 of the License, or (at your option) any later version. | |
9 | * | |
10 | * This program is distributed in the hope that it will be useful, | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | * GNU General Public License for more details. | |
14 | */ | |
15 | ||
16 | package org.qedeq.kernel.se.base.list; | |
17 | ||
18 | import java.util.List; | |
19 | ||
20 | /** | |
21 | * Every Operator must implement this interface. Each operator deals with arguments. These arguments | |
22 | * form an ordered list. So there is the number of arguments, which is told by {@link #size} and the | |
23 | * <code>i</code>-th argument, accessible by {@link #getElement(int)}. | |
24 | * | |
25 | * @author Michael Meyling | |
26 | */ | |
27 | public interface ElementList extends Element { | |
28 | ||
29 | /** | |
30 | * Get the number of arguments. | |
31 | * | |
32 | * @return Number of arguments. | |
33 | */ | |
34 | public int size(); | |
35 | ||
36 | /** | |
37 | * Get the operator. | |
38 | * | |
39 | * @return Operator. | |
40 | */ | |
41 | public String getOperator(); | |
42 | ||
43 | /** | |
44 | * Get the requested argument. | |
45 | * | |
46 | * @param i Number of argument (starting with <code>0</code>). | |
47 | * @return <code>i</code>-th part formula. | |
48 | * @throws IllegalArgumentException <code>i</code> is not between <code>0</code> and | |
49 | * <code>{@link #size()} - 1</code> | |
50 | */ | |
51 | public Element getElement(int i); | |
52 | ||
53 | /** | |
54 | * Get all arguments as an list. | |
55 | * | |
56 | * @return All elements. | |
57 | */ | |
58 | public List getElements(); | |
59 | ||
60 | /** | |
61 | * TODO 20110327 m31: do we have to use modifying methods like this or {@link ElementList#remove(int)} | |
62 | * and so on? If we need them we have to make a deep copy. Otherwise we can save lots of space! | |
63 | * Adds an element to end of list. | |
64 | * | |
65 | * @param element Element to add. | |
66 | * @throws IllegalArgumentException The given element was a NullPointer. | |
67 | */ | |
68 | public void add(final Element element); | |
69 | ||
70 | /** | |
71 | * Inserts an element to specified position. | |
72 | * | |
73 | * @param position Position of element to add. | |
74 | * @param element Element to add. | |
75 | * @throws IllegalArgumentException The given element was a NullPointer or the position was not | |
76 | * valid. | |
77 | */ | |
78 | public void insert(int position, final Element element); | |
79 | ||
80 | /** | |
81 | * Replaces an element at specified position. | |
82 | * | |
83 | * @param position Position of element to replace. | |
84 | * @param element Replacement element. | |
85 | * @throws IllegalArgumentException The given element was a NullPointer or the position was not | |
86 | * valid. | |
87 | */ | |
88 | public void replace(int position, final Element element); | |
89 | ||
90 | /** | |
91 | * Deletes an element of element list. | |
92 | * | |
93 | * @param i Position of element to remove. | |
94 | * @throws IllegalArgumentException The given position was not valid. | |
95 | */ | |
96 | public void remove(final int i); | |
97 | ||
98 | } |
|