blob: c7ef64acd0c577ee17c4536b1fd1612d8047d307 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
package com.modulus.qbar.lang;
import java.util.ArrayList;
import java.util.List;
import com.modulus.qbar.core.QBFunction;
import com.modulus.qbar.core.QBObject;
import com.modulus.qbar.core.QBStruct;
public class QBArrayList extends QBList{
private List<QBObject> values = new ArrayList<QBObject>();
public final static QBStruct arrayListStruct = new QBStruct("ArrayList");
public static final QBFunction APPEND = new QBFunction(2) {
@Override
public QBObject execute(QBObject[] args) {
QBArrayList lst = (QBArrayList)args[1];
return lst.append(args[0]);
}
};
static{
arrayListStruct.addSuperStruct(QBList.list);
arrayListStruct.set("++", APPEND);
}
public QBArrayList(QBObject[] objs){
super(arrayListStruct);
for( QBObject obj : objs )
values.add(obj);
}
public QBArrayList(QBObject[] objs, QBStruct struct){
super(struct);
for( QBObject obj : objs )
values.add(obj);
}
public QBArrayList() {
this( new QBObject[]{} );
}
public void insert(int index, QBObject element) {
values.add(index, element);
}
public QBObject add(QBObject e) {
values.add(e);
return this;
}
public void remove(QBObject arg0) {
values.remove(arg0);
}
public QBObject get(int idx){
if(idx < 0)
return values.get(values.size()+idx);
return values.get(idx);
}
public double size() {
return values.size();
}
public QBArrayList append(QBObject obj){
QBArrayList ret = new QBArrayList(new QBObject[]{});
ret.values.addAll(this.values);
if(obj instanceof QBArrayList)
ret.values.addAll(((QBArrayList) obj).values);
return ret;
}
public String toString(){
return values.toString();
}
public Object getWrapped(){
return values;
}
@Override
public QBList realSubList(int off, int len) {
QBArrayList ret = new QBArrayList();
for( int i = off, a = 0; a < len;i ++, a ++)
ret.add( this.get(i) );
return ret;
}
}
|