d95aad5b3b0a21efe0528363da9689a8ad9c8694
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / nemo / user / vnspacemanager / structurestyle / deleteintent / DeleteNode.java
1 /*\r
2  * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.nemo.user.vnspacemanager.structurestyle.deleteintent;\r
9 \r
10 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
11 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
12 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;\r
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\r
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.EndNode;\r
18 \r
19 import java.util.List;\r
20 \r
21 /**\r
22  * Created by z00293636 on 2015/9/2.\r
23  */\r
24 public class DeleteNode {\r
25     private TenantManage tenantManage;\r
26 \r
27     public DeleteNode(DataBroker dataBroker, TenantManage tenantManage){\r
28         this.tenantManage = tenantManage;\r
29     }\r
30 \r
31     public String DeleNodeHandling(UserId userId,NodeId nodeId){\r
32         Boolean nodeExist = false;\r
33 \r
34         if (tenantManage.getNode(userId)!=null){\r
35             if (tenantManage.getNode(userId).containsKey(nodeId)){\r
36                 nodeExist = true;\r
37                 tenantManage.getNode(userId).remove(nodeId);\r
38                 tenantManage.getUserNameIdMap(userId).remove(tenantManage.getName(userId,nodeId.getValue()));\r
39             }\r
40         }\r
41         if (tenantManage.getNodeDataStore(userId)!=null){\r
42             if (tenantManage.getNodeDataStore(userId).containsKey(nodeId)){\r
43                 nodeExist = true;\r
44                 tenantManage.setUserDeleteIntent(userId, NEMOConstants.node,nodeId.getValue());\r
45                 tenantManage.getUserNameIdMap(userId).remove(tenantManage.getName(userId,nodeId.getValue()));\r
46             }\r
47         }\r
48         if (!nodeExist){\r
49             return "The node instance " +nodeId.getValue()+" is not exist.";\r
50         }\r
51         else {\r
52             if (tenantManage.getConnection(userId)!=null){\r
53                 for (Connection connection : tenantManage.getConnection(userId).values()){\r
54                     List<EndNode> endNodeList = connection.getEndNode();\r
55                     for (EndNode endNode :endNodeList){\r
56                         if (endNode.getNodeId().equals(nodeId)){\r
57                             tenantManage.getConnection(userId).remove(connection.getConnectionId());\r
58                             tenantManage.getUserNameIdMap(userId).remove(tenantManage.getName(userId,connection.getConnectionId().getValue()));\r
59                             break;\r
60                         }\r
61                     }\r
62                 }\r
63             }\r
64             if (tenantManage.getConnectionDataStore(userId)!=null){\r
65                 for (Connection connection : tenantManage.getConnectionDataStore(userId).values()){\r
66                     List<EndNode> endNodeList = connection.getEndNode();\r
67                     for (EndNode endNode :endNodeList){\r
68                         if (endNode.getNodeId().equals(nodeId)){\r
69                             tenantManage.setUserDeleteIntent(userId,NEMOConstants.connection,connection.getConnectionId().getValue());\r
70                             tenantManage.getUserNameIdMap(userId).remove(tenantManage.getName(userId,connection.getConnectionId().getValue()));\r
71                             break;\r
72                         }\r
73                     }\r
74                 }\r
75             }\r
76             if (tenantManage.getOperation(userId)!=null){\r
77                 for (Operation operation : tenantManage.getOperation(userId).values()){\r
78                     if (operation.getTargetObject().getValue().equals(nodeId.getValue())){\r
79                         tenantManage.getOperation(userId).remove(operation.getOperationId());\r
80                         tenantManage.getUserNameIdMap(userId).remove(tenantManage.getName(userId,operation.getOperationId().getValue()));\r
81                     }\r
82                 }\r
83             }\r
84             if (tenantManage.getOperationDataStore(userId)!=null){\r
85                 for (Operation operation : tenantManage.getOperationDataStore(userId).values()){\r
86                     if (operation.getTargetObject().getValue().equals(nodeId.getValue())){\r
87                         tenantManage.setUserDeleteIntent(userId,NEMOConstants.operation,operation.getOperationId().getValue());\r
88                         tenantManage.getUserNameIdMap(userId).remove(tenantManage.getName(userId,operation.getOperationId().getValue()));\r
89                     }\r
90                 }\r
91             }\r
92         }\r
93         return null;\r
94     }\r
95 }\r