
io.hekate.lock.internal.DefaultLockOwnerInfo Maven / Gradle / Ivy
/*
* Copyright 2022 The Hekate Project
*
* The Hekate Project licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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 io.hekate.lock.internal;
import io.hekate.cluster.ClusterNode;
import io.hekate.lock.LockOwnerInfo;
import io.hekate.util.format.ToString;
public class DefaultLockOwnerInfo implements LockOwnerInfo {
private final long threadId;
private final ClusterNode node;
public DefaultLockOwnerInfo(long threadId, ClusterNode node) {
this.threadId = threadId;
this.node = node;
}
@Override
public long threadId() {
return threadId;
}
@Override
public ClusterNode node() {
return node;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof DefaultLockOwnerInfo)) {
return false;
}
DefaultLockOwnerInfo that = (DefaultLockOwnerInfo)o;
if (threadId != that.threadId) {
return false;
}
return node.equals(that.node);
}
@Override
public int hashCode() {
int result = (int)(threadId ^ threadId >>> 32);
result = 31 * result + node.hashCode();
return result;
}
@Override
public String toString() {
return ToString.format(LockOwnerInfo.class, this);
}
}