/** * Licensed to JumpMind Inc under one or more contributor * license agreements. See the NOTICE file distributed * with this work for additional information regarding * copyright ownership. JumpMind Inc licenses this file * to you under the GNU General Public License, version 3.0 (GPLv3) * (the "License"); you may not use this file except in compliance * with the License. * * You should have received a copy of the GNU General Public License, * version 3.0 (GPLv3) along with this library; if not, see * <http://www.gnu.org/licenses/>. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.jumpmind.symmetric.model; import java.io.Serializable; import java.util.Date; public class NodeCommunication implements Serializable { private static final long serialVersionUID = 1L; public enum CommunicationType { PULL, PUSH, FILE_PUSH, FILE_PULL, EXTRACT }; private transient Node node; private String nodeId; private CommunicationType communicationType; private Date lockTime; private Date lastLockTime = new Date(); private long lastLockMillis; private String lockingServerId; private long successCount; private long failCount; private long totalSuccessCount; private long totalFailCount; private long totalSuccessMillis; private long totalFailMillis; public String getNodeId() { return nodeId; } public void setNodeId(String nodeId) { this.nodeId = nodeId; } public CommunicationType getCommunicationType() { return communicationType; } public void setCommunicationType(CommunicationType communicationType) { this.communicationType = communicationType; } public Date getLockTime() { return lockTime; } public void setLockTime(Date startTime) { this.lockTime = startTime; } public String getLockingServerId() { return lockingServerId; } public void setLockingServerId(String lockingServerId) { this.lockingServerId = lockingServerId; } public long getSuccessCount() { return successCount; } public void setSuccessCount(long successCount) { this.successCount = successCount; } public long getFailCount() { return failCount; } public void setFailCount(long failCount) { this.failCount = failCount; } public long getTotalSuccessCount() { return totalSuccessCount; } public void setTotalSuccessCount(long totalSuccessCount) { this.totalSuccessCount = totalSuccessCount; } public long getTotalFailCount() { return totalFailCount; } public void setTotalFailCount(long totalFailCount) { this.totalFailCount = totalFailCount; } public long getTotalSuccessMillis() { return totalSuccessMillis; } public void setTotalSuccessMillis(long totalSuccessMillis) { this.totalSuccessMillis = totalSuccessMillis; } public long getTotalFailMillis() { return totalFailMillis; } public void setTotalFailMillis(long totalFailMillis) { this.totalFailMillis = totalFailMillis; } public void setLastLockMillis(long lastLockMillis) { this.lastLockMillis = lastLockMillis; } public long getLastLockMillis() { return lastLockMillis; } public void setLastLockTime(Date lastLockTime) { this.lastLockTime = lastLockTime; } public Date getLastLockTime() { return lastLockTime; } public void setNode(Node node) { this.node = node; } public Node getNode() { return node; } public boolean isLocked() { return lockTime != null; } public long getAverageSuccessPeriod() { if (totalSuccessCount > 0 && totalSuccessMillis > 0) { return totalSuccessMillis/totalSuccessCount; } else { return 0l; } } public long getAverageFailurePeriod() { if (totalFailCount > 0 && totalFailMillis > 0) { return totalFailMillis/totalFailCount; } else { return 0l; } } }