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.cluster.datastore.entityownership;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.EntityOwners;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.entity.owners.EntityType;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.entity.owners.entity.type.entity.Candidate;
13 import org.opendaylight.yangtools.yang.common.QName;
14 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
15 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
16 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
17 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
18 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
19 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
20 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
21 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
24 * Utility methods for entity-owners yang model.
26 * @author Thomas Pantelis
28 final class EntityOwnersModel {
29 static final QName ENTITY_QNAME = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.
30 md.sal.clustering.entity.owners.rev150804.entity.owners.entity.type.Entity.QNAME;
31 static final QName CANDIDATE_NAME_QNAME = QName.create(Candidate.QNAME, "name");
32 static final QName ENTITY_ID_QNAME = QName.create(ENTITY_QNAME, "id");
33 static final QName ENTITY_OWNER_QNAME = QName.create(ENTITY_QNAME, "owner");
34 static final QName ENTITY_TYPE_QNAME = QName.create(EntityType.QNAME, "type");
36 static final NodeIdentifier ENTITY_OWNERS_NODE_ID = new NodeIdentifier(EntityOwners.QNAME);
37 static final NodeIdentifier ENTITY_OWNER_NODE_ID = new NodeIdentifier(ENTITY_OWNER_QNAME);
38 static final YangInstanceIdentifier ENTITY_OWNERS_PATH = YangInstanceIdentifier.of(EntityOwners.QNAME);
40 static YangInstanceIdentifier entityPath(String entityType, YangInstanceIdentifier entityId) {
41 return YangInstanceIdentifier.builder(ENTITY_OWNERS_PATH).node(EntityType.QNAME).
42 nodeWithKey(EntityType.QNAME, ENTITY_TYPE_QNAME, entityType).node(ENTITY_QNAME).
43 nodeWithKey(ENTITY_QNAME, ENTITY_ID_QNAME, entityId).build();
47 static YangInstanceIdentifier candidatePath(String entityType, YangInstanceIdentifier entityId,
48 String candidateName) {
49 return YangInstanceIdentifier.builder(ENTITY_OWNERS_PATH).node(EntityType.QNAME).
50 nodeWithKey(EntityType.QNAME, ENTITY_TYPE_QNAME, entityType).node(ENTITY_QNAME).
51 nodeWithKey(ENTITY_QNAME, ENTITY_ID_QNAME, entityId).node(Candidate.QNAME).
52 nodeWithKey(Candidate.QNAME, CANDIDATE_NAME_QNAME, candidateName).build();
56 static NormalizedNode<?, ?> entityOwnersWithCandidate(String entityType, YangInstanceIdentifier entityId,
57 String candidateName) {
58 return entityOwnersWithEntityTypeEntry(entityTypeEntryWithEntityEntry(entityType,
59 entityEntryWithCandidateEntry(entityId, candidateName)));
62 static ContainerNode entityOwnersWithEntityTypeEntry(MapEntryNode entityTypeNode) {
63 return ImmutableContainerNodeBuilder.create().withNodeIdentifier(
64 ENTITY_OWNERS_NODE_ID).addChild(ImmutableNodes.mapNodeBuilder(EntityType.QNAME).
65 addChild(entityTypeNode).build()).build();
68 static MapEntryNode entityTypeEntryWithEntityEntry(String entityType, MapEntryNode entityNode) {
69 return ImmutableNodes.mapEntryBuilder(EntityType.QNAME,
70 ENTITY_TYPE_QNAME, entityType).addChild(ImmutableNodes.mapNodeBuilder(
71 ENTITY_QNAME).addChild(entityNode).build()).build();
74 static MapEntryNode entityEntryWithCandidateEntry(YangInstanceIdentifier entityId, String candidateName) {
75 return ImmutableNodes.mapEntryBuilder(ENTITY_QNAME, ENTITY_ID_QNAME, entityId).addChild(
76 candidateEntry(candidateName)).build();
79 static MapNode candidateEntry(String candidateName) {
80 return ImmutableNodes.mapNodeBuilder(Candidate.QNAME).addChild(ImmutableNodes.mapEntry(
81 Candidate.QNAME, CANDIDATE_NAME_QNAME, candidateName)).build();
84 static NormalizedNode<?, ?> entityEntryWithOwner(YangInstanceIdentifier entityId, String owner) {
85 return ImmutableNodes.mapEntryBuilder(ENTITY_QNAME, ENTITY_ID_QNAME, entityId).addChild(
86 ImmutableNodes.leafNode(ENTITY_OWNER_QNAME, owner)).build();