Search in sources :

Example 1 with IChildProcessStatusVisitor

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);
            }
        }
    };
}
Also used : IProcessDetailStatus(com.qlangtech.tis.fullbuild.phasestatus.IProcessDetailStatus) NodeBackflowStatus(com.qlangtech.tis.fullbuild.phasestatus.impl.IndexBackFlowPhaseStatus.NodeBackflowStatus) IChildProcessStatusVisitor(com.qlangtech.tis.fullbuild.phasestatus.IChildProcessStatusVisitor) Map(java.util.Map) HashMap(java.util.HashMap)

Example 2 with IChildProcessStatusVisitor

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);
            }
        }
    };
}
Also used : IProcessDetailStatus(com.qlangtech.tis.fullbuild.phasestatus.IProcessDetailStatus) IChildProcessStatusVisitor(com.qlangtech.tis.fullbuild.phasestatus.IChildProcessStatusVisitor) IJoinTaskStatus(com.qlangtech.tis.fullbuild.phasestatus.IJoinTaskStatus) JoinTaskStatus(com.qlangtech.tis.fullbuild.phasestatus.impl.JoinPhaseStatus.JoinTaskStatus)

Aggregations

IChildProcessStatusVisitor (com.qlangtech.tis.fullbuild.phasestatus.IChildProcessStatusVisitor)2 IProcessDetailStatus (com.qlangtech.tis.fullbuild.phasestatus.IProcessDetailStatus)2 IJoinTaskStatus (com.qlangtech.tis.fullbuild.phasestatus.IJoinTaskStatus)1 NodeBackflowStatus (com.qlangtech.tis.fullbuild.phasestatus.impl.IndexBackFlowPhaseStatus.NodeBackflowStatus)1 JoinTaskStatus (com.qlangtech.tis.fullbuild.phasestatus.impl.JoinPhaseStatus.JoinTaskStatus)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1