source: java/main/src/main/java/com/framsticks/params/ArrayListAccess.java @ 77

Last change on this file since 77 was 77, checked in by psniegowski, 11 years ago

Add new java codebase.

File size: 2.6 KB
Line 
1package com.framsticks.params;
2
3import com.framsticks.util.Numbers;
4
5import java.util.ArrayList;
6import java.util.Collection;
7import java.util.LinkedList;
8import java.util.List;
9
10/**
11 * @author Piotr Sniegowski
12 */
13public class ArrayListAccess extends ListAccess {
14
15    List list;
16
17
18    public ArrayListAccess(AccessInterface elementAccess) {
19        super(elementAccess);
20    }
21
22    @Override
23    public ArrayListAccess cloneAccess() {
24        return new ArrayListAccess(elementAccess.cloneAccess());
25    }
26
27    @Override
28    public List createAccessee() {
29        return new ArrayList();
30    }
31
32    @Override
33    public Param getParam(int i) {
34        return new ParamBuilder().setId(Integer.toString(i)).setName(elementAccess.getId()).setType("o " + elementAccess.getId()).build();
35    }
36
37    @Override
38    public Param getParam(String id) {
39        Integer i = Numbers.parse(id, Integer.class);
40        return (i == null ? null : getParam(i));
41    }
42
43    @Override
44    public String getId() {
45        return "l " + elementAccess.getId();
46    }
47
48    @Override
49    public int getParamCount() {
50        return list.size();
51    }
52
53    @Override
54    public <T> T get(int i, Class<T> type) {
55        if (i < list.size()) {
56            return type.cast(list.get(i));
57        }
58        return null;
59    }
60
61    @Override
62    public <T> T get(String id, Class<T> type) {
63        return get(Integer.parseInt(id), type);
64    }
65
66    @Override
67    public <T> T get(Param param, Class<T> type) {
68        return get(param.getId(), type);
69    }
70
71    @Override
72    public <T> int set(int i, T value) {
73        while (i >= list.size()) {
74            list.add(null);
75        }
76        list.set(i, value);
77        return 0;
78    }
79
80    @Override
81    public <T> int set(String id, T value) {
82        return set(Integer.parseInt(id), value);
83    }
84
85    @Override
86    public <T> int set(Param param, T value) {
87        return set(param.getId(), value);
88    }
89
90    @Override
91    public void clearValues() {
92        list.clear();
93    }
94
95    /** covariant */
96    @Override
97    public List getSelected() {
98        return list;
99    }
100
101    @Override
102    public void select(Object object) {
103        list = (List)object;
104    }
105
106    @Override
107    public String computeIdentifierFor(Object selected) {
108        return Integer.toString(list.size());
109    }
110
111    @Override
112    public Collection<Param> getParams() {
113        List<Param> result = new LinkedList<Param>();
114        if (list == null) {
115            return result;
116        }
117        for (int i = 0; i < list.size(); ++i) {
118            result.add(getParam(i));
119        }
120        return result;
121    }
122
123
124}
Note: See TracBrowser for help on using the repository browser.