Fix checkstyle violations in sal-common-api
[controller.git] / opendaylight / md-sal / sal-common-api / src / main / java / org / opendaylight / controller / md / sal / common / api / clustering / Entity.java
index 93d001216afcb6a0218fdeb15247ddf2d52f2f61..c97fe51d363dc39dc6d71365e410c1861a6a127f 100644 (file)
@@ -11,13 +11,13 @@ package org.opendaylight.controller.md.sal.common.api.clustering;
 import com.google.common.base.Preconditions;
 import java.io.Serializable;
 import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 
 /**
- * <p></p>
  * A clustered Entity is something which is shared by multiple applications across a cluster. An Entity has a type
  * and an identifier.
- * </p>
+ *
  * <p>
  * The type describes the type of the Entity where examples of a type maybe "openflow" or "netconf"
  * etc. An Entity type could be tied to how exactly an application shares and "owns" an entity. For example we may want
@@ -25,21 +25,32 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
  * first served basis. On the other hand for netconf entity types we may want applications to gain ownership based on
  * a load balancing approach. While this mechanism of assigning a ownership acquisition strategy is not finalized the
  * intention is that the entity type will play a role in determining the strategy and thus should be put in place.
- * </p>
+ *
  * <p>
  * The identifier is a YangInstanceIdentifier. The reason for the choice of YangInstanceIdentifier is because it
  * can easily be used to represent a data node. For example an inventory node represents a shared entity and it is best
- * referenced by the YangInstanceIdentifier if the inventory node stored in the data store.
- * </p>
+ * referenced by the YangInstanceIdentifier if the inventory node is stored in the data store.
+ *
+ * <p>
+ * Note that an entity identifier must conform to a valid yang schema. If there is no existing yang schema to
+ * represent an entity, the general-entity yang model can be used.
+ *
+ * @deprecated Use org.opendaylight.mdsal.binding.api.clustering.Entity or
+ *             org.opendaylight.mdsal.eos.dom.api.DOMEntity instead
  */
+@Deprecated
 public final class Entity implements Serializable {
     private static final long serialVersionUID = 1L;
 
+    private static final QName ENTITY_QNAME = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
+            .controller.md.sal.core.general.entity.rev150820.Entity.QNAME;
+    private static final QName ENTITY_NAME = QName.create(ENTITY_QNAME, "name");
+
     private final String type;
     private final YangInstanceIdentifier id;
 
     /**
-     * Construct a new Entity
+     * Construct an Entity with a YangInstanceIdentifier.
      *
      * @param type the type of the entity
      * @param id the identifier of the entity
@@ -50,34 +61,45 @@ public final class Entity implements Serializable {
     }
 
     /**
+     * Construct an Entity with an with a name. The general-entity schema is used to construct the
+     * YangInstanceIdentifier.
      *
-     * @return id of entity
+     * @param type the type of the entity
+     * @param entityName the name of the entity used to construct a general-entity YangInstanceIdentifier
+     */
+    public Entity(@Nonnull String type, @Nonnull String entityName) {
+        this.type = Preconditions.checkNotNull(type, "type should not be null");
+        this.id = YangInstanceIdentifier.builder().node(ENTITY_QNAME).nodeWithKey(ENTITY_QNAME, ENTITY_NAME,
+                        Preconditions.checkNotNull(entityName, "entityName should not be null")).build();
+    }
+
+    /**
+     * Returns the id of entity.
      */
     @Nonnull
-    public YangInstanceIdentifier getId(){
+    public YangInstanceIdentifier getId() {
         return id;
     }
 
     /**
-     *
-     * @return type of entity
+     * Returns the type of entity.
      */
     @Nonnull
-    public String getType(){
+    public String getType() {
         return type;
     }
 
     @Override
-    public boolean equals(Object o) {
-        if (this == o) {
+    public boolean equals(Object obj) {
+        if (this == obj) {
             return true;
         }
 
-        if (o == null || getClass() != o.getClass()) {
+        if (obj == null || getClass() != obj.getClass()) {
             return false;
         }
 
-        Entity entity = (Entity) o;
+        Entity entity = (Entity) obj;
 
         if (!id.equals(entity.id)) {
             return false;
@@ -97,10 +119,6 @@ public final class Entity implements Serializable {
 
     @Override
     public String toString() {
-        final StringBuilder sb = new StringBuilder("Entity{");
-        sb.append("type='").append(type).append('\'');
-        sb.append(", id=").append(id);
-        sb.append('}');
-        return sb.toString();
+        return "Entity{" + "type='" + type + '\'' + ", id=" + id + '}';
     }
 }