226
|
1 package test;
|
|
2
|
|
3 import java.util.Arrays;
|
|
4 import java.util.LinkedList;
|
|
5 import java.util.List;
|
|
6
|
|
7 import rep.REPCommand;
|
|
8
|
387
|
9 public class Text extends LinkedList<String> {
|
|
10
|
226
|
11
|
387
|
12 /**
|
|
13 *
|
|
14 */
|
|
15 private static final long serialVersionUID = 1L;
|
|
16
|
226
|
17 public Text(String[] _strings){
|
387
|
18 super(Arrays.asList(_strings));
|
226
|
19 }
|
387
|
20
|
226
|
21 public Text(List<String> _strings){
|
387
|
22 super(_strings);
|
226
|
23 }
|
|
24
|
|
25 public String insert(int i, String str){
|
407
|
26 while (i>size()) add("");
|
387
|
27 assert 0<=i && i<=size();
|
|
28 add(i, str);
|
226
|
29 return null;
|
|
30 }
|
387
|
31
|
226
|
32 public String delete(int i){
|
387
|
33 if (i>=size()) return "";
|
|
34 // assert 0<=i && i<size();
|
|
35 return remove(i);
|
226
|
36 }
|
387
|
37
|
226
|
38 public String replace(int i, String str){
|
387
|
39 //assert 0<=i && i<size();
|
|
40 String replaced ;
|
|
41 if (i<size()) {
|
|
42 replaced = get(i);
|
|
43 } else {
|
|
44 replaced = "";
|
|
45 }
|
|
46 set(i, str);
|
226
|
47 return replaced;
|
|
48 }
|
387
|
49
|
226
|
50 public String edit(REPCommand cmd){
|
400
|
51 switch(cmd.cmd) {
|
|
52 case REPCMD_INSERT_USER:
|
|
53 case REPCMD_INSERT: return insert(cmd.lineno, cmd.string);
|
|
54 case REPCMD_DELETE_USER:
|
|
55 case REPCMD_DELETE: return delete(cmd.lineno);
|
|
56 }
|
226
|
57 return null;
|
|
58 }
|
387
|
59
|
226
|
60 public void edit(List<REPCommand> cmdlist){
|
|
61 for (REPCommand cmd: cmdlist){
|
|
62 edit(cmd);
|
|
63 }
|
|
64 }
|
|
65
|
|
66 public void printAllText(){
|
387
|
67 for( String str: this){
|
226
|
68 System.out.println(str);
|
|
69 }
|
|
70 }
|
|
71 }
|