Adding nemo engine.
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / nemo / user / vnspacemanager / instancecheck / ConnectionInstanceCheck.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.instancecheck;\r
9 \r
10 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;\r
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.EndNode;\r
16 \r
17 import java.util.List;\r
18 \r
19 /**\r
20  * Created by z00293636 on 2015/9/10.\r
21  */\r
22 public class ConnectionInstanceCheck {\r
23     private TenantManage tenantManage;\r
24 \r
25     public ConnectionInstanceCheck(TenantManage tenantManage)\r
26     {\r
27         this.tenantManage = tenantManage;\r
28     }\r
29 \r
30     public String checkConnInstance(UserId userId, Connection connection)\r
31     {\r
32         String errorInfo = null;\r
33         tenantManage.fetchVNSpace(userId);\r
34         User user = tenantManage.getUser();\r
35 \r
36         if (user != null)\r
37         {\r
38             if (user.getObjects() != null)\r
39             {\r
40                 if (user.getObjects().getConnection() != null)\r
41                 {\r
42                     List<Connection> connectionList = tenantManage.getUser().getObjects().getConnection();\r
43 \r
44                     for (Connection connection1 : connectionList)\r
45                     {\r
46                         if (connection1.getConnectionId().equals(connection.getConnectionId()))\r
47                         {\r
48                             if (!connection1.getConnectionType().equals(connection.getConnectionType()))\r
49                             {\r
50                                 errorInfo = "The connection type should not be changed.";\r
51                                 break;\r
52                             }\r
53                             if (!connection1.getConnectionName().equals(connection.getConnectionName()))\r
54                             {\r
55                                 errorInfo = "The End node should not be changed.";\r
56                                 break;\r
57                             }\r
58 \r
59                         }\r
60                     }\r
61                 }\r
62                 if (user.getObjects().getNode() != null)\r
63                 {\r
64                     List<EndNode> nodeList = connection.getEndNode();\r
65                     List<Node> nodeList1 = user.getObjects().getNode();\r
66 \r
67                     for (EndNode endNode : nodeList)\r
68                     {\r
69                         Boolean EndNodeExist = false;\r
70                         for (Node node : nodeList1)\r
71                         {\r
72                             if (node.getNodeId().equals(endNode.getNodeId()))\r
73                             {\r
74                                 EndNodeExist = true;\r
75                                 break;\r
76                             }\r
77                         }\r
78                         if ( !EndNodeExist)\r
79                         {\r
80                             errorInfo = "There are no endnode" + endNode.getNodeId().toString() +" in this user vn space.";\r
81                             break;\r
82                         }\r
83                     }\r
84                 }\r
85             }\r
86             else\r
87             {\r
88                 if (connection.getEndNode() != null)\r
89                 {\r
90                     errorInfo = "There are no nodes in user vn space.";\r
91                 }\r
92             }\r
93         }\r
94         else\r
95         {\r
96             if (connection.getEndNode() != null)\r
97             {\r
98                 errorInfo = "There are no nodes in user vn space.";\r
99             }\r
100         }\r
101 \r
102         return errorInfo;\r
103     }\r
104 }\r