X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-common-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fcommon%2Fapi%2Fclustering%2FEntity.java;h=35f23a490b1ef44ab220ed17ee96684454d16f91;hp=93d001216afcb6a0218fdeb15247ddf2d52f2f61;hb=965b1f2fd427539206619a5df80520d217118170;hpb=5273c33b6f2051a7e3b1afcc4eeae4e457b6f26c;ds=sidebyside diff --git a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/clustering/Entity.java b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/clustering/Entity.java index 93d001216a..35f23a490b 100644 --- a/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/clustering/Entity.java +++ b/opendaylight/md-sal/sal-common-api/src/main/java/org/opendaylight/controller/md/sal/common/api/clustering/Entity.java @@ -11,6 +11,7 @@ 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; /** @@ -29,17 +30,25 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; *

* 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. + * referenced by the YangInstanceIdentifier if the inventory node is stored in the data store. + *

+ * 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. + *

*

*/ 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 @@ -49,6 +58,19 @@ public final class Entity implements Serializable { this.id = Preconditions.checkNotNull(id, "id should not be null"); } + /** + * Construct an Entity with an with a name. The general-entity schema is used to construct the + * YangInstanceIdentifier. + * + * @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(); + } + /** * * @return id of entity