-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQuads.java
94 lines (76 loc) · 3.2 KB
/
Quads.java
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
package Scanner;
import java.util.ArrayList;
import java.util.Optional;
public class Quads {
ErrorLogger logger;
ArrayList<Quad> quads;
public Quads(){
quads = new ArrayList<Quad>();
logger = new ErrorLogger("QuadsOutputLog.txt");
}
public int size(){
return quads.size();
}
public void insertQuad(String _operator, String _arg1, String _arg2, String _result){
//parse args
String[] quadArgs = parseQuadArgs(_operator, _arg1, _arg2, _result);
//create quad
Quad newQuad = new Quad(quadArgs[0].toUpperCase(), quadArgs[1], quadArgs[2], quadArgs[3]);
//add to quads arraylist
quads.add(newQuad);
System.out.println("Adding Quad: "+ newQuad.returnFullString());
}
public void logQuads() {
for (int i = 0; i < quads.size(); i++) {
logger.log("Adding Quad: "+ quads.get(i).returnFullString()+"\n");
}
}
public void insertQuad(int index, String _operator, String _arg1, String _arg2, String _result){
//parse args
String[] quadArgs = parseQuadArgs(_operator, _arg1, _arg2, _result);
//create quad
Quad newQuad = new Quad(quadArgs[0], quadArgs[1], quadArgs[2], quadArgs[3]);
//add to quads arraylist
quads.add(index, newQuad);
}
public void insertQuad(Quad newQuad){
quads.add(newQuad);
}
public void insertQuad(int index, Quad newQuad){
quads.add(index, newQuad);
}
public void updateQuad(String _operator, String _arg1, String _arg2, String _result, int index){
//parse args
String[] quadArgs = parseQuadArgs(_operator, _arg1, _arg2, _result);
//Get the quad to update
Quad edittingQuad = quads.get(index);
//edit it
edittingQuad.operator = quadArgs[0];
edittingQuad.arg1 = quadArgs[1];
edittingQuad.arg2 = quadArgs[2];
edittingQuad.result = quadArgs[3];
//set the quad at that index to the editted quad
quads.set(index, edittingQuad);
}
public void printQuads(){
for (int i = 0; i< size(); i++){
System.out.println(i+". "+quads.get(i).returnFullString());
}
}
private String[] parseQuadArgs(String _operator, String _arg1, String _arg2, String _result){
String operator = parseQuadArg(_operator);
String arg1 = parseQuadArg(_arg1);
String arg2 = parseQuadArg(_arg2);
String result = parseQuadArg(_result);
return new String[]{operator, arg1, arg2, result};
}
private String parseQuadArg(String inputArg){//ADD number indicator * here (by overloading with an int input)
//Empty and Null coalescing
// is input null? set output to -, otherwise set it to input
String outputArg = inputArg == null ? "-" : inputArg;
// is input blank? set it to -, otherwise keep it the same
outputArg = outputArg.equals("") ? "-" : outputArg;
return outputArg;
}
//Getters and setters can be done by: quads.get(index).<desired characteristic> = <<new characteristic>>
}