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 import rep.REP;
|
|
9
|
387
|
10 public class Text extends LinkedList<String> {
|
|
11
|
226
|
12
|
387
|
13 /**
|
|
14 *
|
|
15 */
|
|
16 private static final long serialVersionUID = 1L;
|
|
17
|
226
|
18 public Text(String[] _strings){
|
387
|
19 super(Arrays.asList(_strings));
|
226
|
20 }
|
387
|
21
|
226
|
22 public Text(List<String> _strings){
|
387
|
23 super(_strings);
|
226
|
24 }
|
|
25
|
|
26 public String insert(int i, String str){
|
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){
|
|
51 if (cmd.cmd==REP.REPCMD_INSERT) return insert(cmd.lineno, cmd.string);
|
362
|
52 //else if (cmd.cmd==REP.REPCMD_REPLACE) return replace(cmd.lineno, cmd.string);
|
226
|
53 else if (cmd.cmd==REP.REPCMD_DELETE) return delete(cmd.lineno);
|
|
54 //else assert false;
|
|
55 return null;
|
|
56 }
|
387
|
57
|
226
|
58 public void edit(List<REPCommand> cmdlist){
|
|
59 for (REPCommand cmd: cmdlist){
|
|
60 edit(cmd);
|
|
61 }
|
|
62 }
|
|
63
|
|
64 public void printAllText(){
|
387
|
65 for( String str: this){
|
226
|
66 System.out.println(str);
|
|
67 }
|
|
68 }
|
|
69 }
|