/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.kernel.cluster; import aQute.bnd.annotation.ProviderType; import com.liferay.portal.kernel.util.HashUtil; import com.liferay.portal.kernel.util.StringBundler; import java.io.Serializable; import java.net.InetAddress; import java.net.InetSocketAddress; import java.util.Objects; /** * @author Tina Tian */ @ProviderType public class ClusterNode implements Serializable { public ClusterNode(String clusterNodeId, InetAddress bindInetAddress) { if (clusterNodeId == null) { throw new IllegalArgumentException("Cluster node ID is null"); } if (bindInetAddress == null) { throw new IllegalArgumentException("Bind inet address is null"); } _clusterNodeId = clusterNodeId; _bindInetAddress = bindInetAddress; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof ClusterNode)) { return false; } ClusterNode clusterNode = (ClusterNode)obj; if (Objects.equals(_clusterNodeId, clusterNode._clusterNodeId) && Objects.equals(_bindInetAddress, clusterNode._bindInetAddress) && Objects.equals( _portalInetSocketAddress, clusterNode._portalInetSocketAddress) && Objects.equals(_portalProtocol, clusterNode._portalProtocol)) { return true; } return false; } public InetAddress getBindInetAddress() { return _bindInetAddress; } public String getClusterNodeId() { return _clusterNodeId; } public InetAddress getPortalInetAddress() { if (_portalInetSocketAddress == null) { return null; } return _portalInetSocketAddress.getAddress(); } public InetSocketAddress getPortalInetSocketAddress() { return _portalInetSocketAddress; } public int getPortalPort() { if (_portalInetSocketAddress == null) { return -1; } return _portalInetSocketAddress.getPort(); } public String getPortalProtocol() { return _portalProtocol; } @Override public int hashCode() { int hash = HashUtil.hash(0, _clusterNodeId); hash = HashUtil.hash(hash, _bindInetAddress); hash = HashUtil.hash(hash, _portalInetSocketAddress); hash = HashUtil.hash(hash, _portalProtocol); return hash; } public void setPortalInetSocketAddress( InetSocketAddress portalInetSocketAddress) { _portalInetSocketAddress = portalInetSocketAddress; } public void setPortalProtocol(String portalProtocol) { _portalProtocol = portalProtocol; } @Override public String toString() { StringBundler sb = new StringBundler(9); sb.append("{bindInetAddress="); sb.append(_bindInetAddress); sb.append(", clusterNodeId="); sb.append(_clusterNodeId); sb.append(", portalInetSocketAddress="); sb.append(_portalInetSocketAddress); sb.append(", portalProtocol="); sb.append(_portalProtocol); sb.append("}"); return sb.toString(); } private final InetAddress _bindInetAddress; private final String _clusterNodeId; private InetSocketAddress _portalInetSocketAddress; private String _portalProtocol; }