-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskSubUnit.java
More file actions
143 lines (114 loc) · 3.53 KB
/
Copy pathTaskSubUnit.java
File metadata and controls
143 lines (114 loc) · 3.53 KB
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
import java.util.ArrayList;
import java.util.Iterator;
public class TaskSubUnit {
private ArrayList<TaskRow> taskRows;
private Iterator<TaskRow> saveIterator;
private int subUnitIndex;
private TaskUnit parent;
private float sumPretTotalUnitar;
public TaskSubUnit(int subUnitIndex, TaskUnit parent) {
taskRows = new ArrayList<>();
saveIterator = null;
this.subUnitIndex = subUnitIndex;
this.sumPretTotalUnitar = 0;
this.parent = parent;
}
private TaskSubUnit() { //private mert csak a unit hozht lete subunitot csak indexel (erre nins szukseg)
taskRows = new ArrayList<>();
saveIterator = null;
this.subUnitIndex = -1;
}
private String getSubUnitHeader(){
// return Finals.SUB_UNIT_INITAL + Finals.TOK_D + sumPretTotalUnitar;
return Finals.SUB_UNIT_INITAL + Finals.TOK_D;
}
public void processHeader(String line) throws Exception{
// String[] tokens = line.split(Finals.TOK_D);
//
// if (tokens.length != Finals.NR_OF_FIELDS_IN_SUB_UNIT){
// System.out.println("" + tokens.length);
//
// for (String token : tokens)
// {
// System.out.println("sor: " + token);
// }
//
// throw new InvalidSubUnitHeaderException("incorrect number of fields in subunit");
// }
//
// int i = 1;
// String nextTok = tokens[i];
// sumPretTotalUnitar = Float.parseFloat(nextTok);
// //i++;
}
public String saveLine(){
if (saveIterator == null){
saveIterator = taskRows.iterator();
return getSubUnitHeader();
}
else if(saveIterator.hasNext()){
return saveIterator.next().saveLine();
}
else{
saveIterator = null;//reset the itarator
return Finals.NO_MORE_ITEMS;
}
}
public void loadLine(String line) throws Exception{
//megnezzuk hogy amit kaptunk row-e vagy anomalia (CSAK ROWT KAPHAT A SUBUNIT)
if(line.substring(0,1).equals(Finals.ROW_INITAL)){
taskRows.add(new TaskRow(line.substring(1), this));
}
else{
System.out.println("the wrong line:"+line);
throw new InvalidRowHeaderException(line);
}
}
public void insertRow(int rowIndex){
if(rowIndex == taskRows.size()){
taskRows.add(new TaskRow(this));
}
else{
taskRows.add(rowIndex, new TaskRow(this));
}
}
public void deleteRow(int rowIndex){
taskRows.remove(rowIndex);
}
public TaskUnit getParent() {
return parent;
}
public void calculateSumPretTotalUnitar() {
float res = 0;
for(TaskRow tr : taskRows){
res += tr.getPretTotalUnitara();
}
sumPretTotalUnitar = res;
parent.calculatePretUnitar();
switch (subUnitIndex)
{
case 0:
parent.calculateMaterial();
case 1:
parent.calculateManopera();
case 2:
parent.calculateUtilaj();
case 3:
parent.calculateTransport();
}
}
public void calculateAll() {
for (TaskRow tr : taskRows) {
tr.clculateAll();
}
}
public float getSumPretTotalUnitar() {
return sumPretTotalUnitar;
}
public ArrayList<TaskRow> getTaskRows() {
return taskRows;
}
public int getSubUnitIndex() {
return subUnitIndex;
}
}