2 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.md.sal.common.api.clustering;
10 import com.google.common.base.Preconditions;
11 import javax.annotation.Nonnull;
14 * A DTO that encapsulates an ownership change for an entity.
16 * @author Thomas Pantelis
18 public class EntityOwnershipChange {
19 private final Entity entity;
20 private final boolean wasOwner;
21 private final boolean isOwner;
22 private final boolean hasOwner;
24 public EntityOwnershipChange(@Nonnull Entity entity, boolean wasOwner, boolean isOwner, boolean hasOwner) {
25 this.entity = Preconditions.checkNotNull(entity, "entity can't be null");
26 this.wasOwner = wasOwner;
27 this.isOwner = isOwner;
28 this.hasOwner = hasOwner;
32 * Returns the entity whose ownership status changed.
35 @Nonnull public Entity getEntity() {
40 * Returns the previous ownership status of the entity for this process instance.
41 * @return true if this process was the owner of the entity at the time this notification was generated
43 public boolean wasOwner() {
48 * Returns the current ownership status of the entity for this process instance.
49 * @return true if this process is now the owner of the entity
51 public boolean isOwner() {
56 * Returns the current ownership status of the entity across all process instances.
57 * @return true if the entity has an owner which may or may not be this process. If false, then
58 * the entity has no candidates and thus no owner.
60 public boolean hasOwner() {
65 public String toString() {
66 return "EntityOwnershipChanged [entity=" + entity + ", wasOwner=" + wasOwner + ", isOwner=" + isOwner
67 + ", hasOwner=" + hasOwner + "]";