Refactor and fix TenantManage for repeated queries
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / nemo / user / tenantmanager / RegisterUser.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.tenantmanager;\r
9 \r
10 import java.util.Map;\r
11 \r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName;\r
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.RegisterUserInput;\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.user.rev151010.user.roles.UserRole;\r
17 \r
18 /**\r
19  * Created by z00293636 on 2015/9/20.\r
20  */\r
21 public class RegisterUser {\r
22     private final TenantManage tenantManage;\r
23 \r
24     public RegisterUser(TenantManage tenantManage)\r
25     {\r
26         this.tenantManage = tenantManage;\r
27     }\r
28 \r
29     public String registerUser(RegisterUserInput input)\r
30     {\r
31         String errorInfo = null;\r
32 \r
33         Map<UserRoleName, UserRole> userRoles = tenantManage.getUserRoles();\r
34         Map<UserId, User> users = tenantManage.getUsers();\r
35 \r
36         if (userRoles == null || userRoles.isEmpty())\r
37         {\r
38             errorInfo = "There are no roles be defined.";\r
39         }\r
40         else\r
41         {\r
42             if (userRoles.containsKey(input.getUserRole()))\r
43             {\r
44                 if (users != null && users.containsKey(input.getUserId()))\r
45                 {\r
46                     errorInfo = "The user has been registered.";\r
47                 }\r
48                 else\r
49                 {\r
50                     tenantManage.addUser(input);\r
51                 }\r
52             }\r
53             else\r
54             {\r
55                 errorInfo = "The role is not defined in the data store.";\r
56             }\r
57         }\r
58         return errorInfo;\r
59     }\r
60 \r
61 }\r