use of com.qlangtech.tis.fullbuild.phasestatus.IChildProcessStatusVisitor in project tis by qlangtech.
the class IndexBackFlowPhaseStatus method getProcessStatus.
@Override
public IProcessDetailStatus<NodeBackflowStatus> getProcessStatus() {
return new IProcessDetailStatus<NodeBackflowStatus>() {
@Override
public Collection<NodeBackflowStatus> getDetails() {
if (nodesStatus.isEmpty()) {
NodeBackflowStatus mock = new NodeBackflowStatus(StringUtils.EMPTY);
mock.setWaiting(true);
return Collections.singleton(mock);
}
return nodesStatus.values();
}
@Override
public int getProcessPercent() {
int allrow = 0;
for (NodeBackflowStatus s : nodesStatus.values()) {
allrow += s.getAllSize();
}
if (allrow < 1) {
return 0;
}
double weight = 0;
double percent = 0;
for (Map.Entry<String, NodeBackflowStatus> entry : nodesStatus.entrySet()) {
weight = (entry.getValue().getReaded() * 100) / allrow;
percent += entry.getValue().getPercent() * weight;
}
return (int) (percent / 100);
}
@Override
public void detailVisit(IChildProcessStatusVisitor visitor) {
for (NodeBackflowStatus s : nodesStatus.values()) {
visitor.visit(s);
}
}
};
}
use of com.qlangtech.tis.fullbuild.phasestatus.IChildProcessStatusVisitor in project tis by qlangtech.
the class JoinPhaseStatus method getProcessStatus.
@Override
public IProcessDetailStatus<JoinTaskStatus> getProcessStatus() {
return new IProcessDetailStatus<JoinTaskStatus>() {
@Override
public Collection<JoinTaskStatus> getDetails() {
if (taskStatus.isEmpty()) {
JoinTaskStatus mock = new JoinTaskStatus(StringUtils.EMPTY);
mock.setWaiting(true);
return Collections.singleton(mock);
}
return taskStatus.values();
}
@Override
public int getProcessPercent() {
return 0;
}
@Override
public void detailVisit(IChildProcessStatusVisitor visitor) {
for (JoinTaskStatus status : taskStatus.values()) {
visitor.visit(status);
}
}
};
}
Aggregations