package com.github.ltsopensource.jobtracker.support.listener;
import com.github.ltsopensource.core.cluster.Node;
import com.github.ltsopensource.core.cluster.NodeType;
import com.github.ltsopensource.core.commons.utils.CollectionUtils;
import com.github.ltsopensource.core.listener.NodeChangeListener;
import com.github.ltsopensource.jobtracker.domain.JobTrackerAppContext;
import java.util.List;
/**
* @author Robert HG (254963746@qq.com) on 8/17/14.
* 节点变化监听器
*/
public class JobNodeChangeListener implements NodeChangeListener {
private JobTrackerAppContext appContext;
public JobNodeChangeListener(JobTrackerAppContext appContext) {
this.appContext = appContext;
}
@Override
public void addNodes(List<Node> nodes) {
if (CollectionUtils.isEmpty(nodes)) {
return;
}
for (Node node : nodes) {
if (node.getNodeType().equals(NodeType.TASK_TRACKER)) {
appContext.getTaskTrackerManager().addNode(node);
} else if (node.getNodeType().equals(NodeType.JOB_CLIENT)) {
appContext.getJobClientManager().addNode(node);
}
}
}
@Override
public void removeNodes(List<Node> nodes) {
if (CollectionUtils.isEmpty(nodes)) {
return;
}
for (Node node : nodes) {
if (node.getNodeType().equals(NodeType.TASK_TRACKER)) {
appContext.getTaskTrackerManager().removeNode(node);
} else if (node.getNodeType().equals(NodeType.JOB_CLIENT)) {
appContext.getJobClientManager().removeNode(node);
}
}
}
}