Refactoring Consolidation Service
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / resources / data / auditing / AuditRecordFactory.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.resources.data.auditing;
22
23 import java.util.Map;
24
25 import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
26
27 public final class AuditRecordFactory {
28         public static AuditingGenericEvent createAuditRecord(Map<AuditingFieldsKeysEnum, Object> auditingFields) {
29                 if (auditingFields == null) {
30                         return null;
31                 }
32                 AuditingActionEnum actionEnum = AuditingActionEnum
33                                 .getActionByName((String) auditingFields.get(AuditingFieldsKeysEnum.AUDIT_ACTION));
34                 if (actionEnum == null) {
35                         return null;
36                 }
37                 String tableName = actionEnum.getAuditingEsType();
38                 AuditingGenericEvent event = null;
39                 switch (tableName) {
40                 case AuditingTypesConstants.USER_ADMIN_EVENT_TYPE:
41                         event = new UserAdminEvent(auditingFields);
42                         break;
43                 case AuditingTypesConstants.AUTH_EVENT_TYPE:
44                         event = new AuthEvent(auditingFields);
45                         break;
46                 case AuditingTypesConstants.CATEGORY_EVENT_TYPE:
47                         event = new CategoryEvent(auditingFields);
48                         break;
49                 case AuditingTypesConstants.RESOURCE_ADMIN_EVENT_TYPE:
50                         event = new ResourceAdminEvent(auditingFields);
51                         break;
52                 case AuditingTypesConstants.USER_ACCESS_EVENT_TYPE:
53                         event = new UserAccessEvent(auditingFields);
54                         break;
55                 case AuditingTypesConstants.DISTRIBUTION_STATUS_EVENT_TYPE:
56                         event = new DistributionStatusEvent(auditingFields);
57                         break;
58                 case AuditingTypesConstants.DISTRIBUTION_DOWNLOAD_EVENT_TYPE:
59                         event = new DistributionDownloadEvent(auditingFields);
60                         break;
61                 case AuditingTypesConstants.DISTRIBUTION_ENGINE_EVENT_TYPE:
62                         event = new DistributionEngineEvent(auditingFields);
63                         break;
64                 case AuditingTypesConstants.DISTRIBUTION_NOTIFICATION_EVENT_TYPE:
65                         event = new DistributionNotificationEvent(auditingFields);
66                         break;
67                 case AuditingTypesConstants.DISTRIBUTION_DEPLOY_EVENT_TYPE:
68                         event = new DistributionDeployEvent(auditingFields);
69                         break;
70                 case AuditingTypesConstants.DISTRIBUTION_GET_UEB_CLUSTER_EVENT_TYPE:
71                         event = new AuditingGetUebClusterEvent(auditingFields);
72                         break;
73                 case AuditingTypesConstants.CONSUMER_EVENT_TYPE:
74                         event = new ConsumerEvent(auditingFields);
75                         break;
76                 case AuditingTypesConstants.GET_USERS_LIST_EVENT_TYPE:
77                         event = new GetUsersListEvent(auditingFields);
78                         break;
79                 case AuditingTypesConstants.GET_CATEGORY_HIERARCHY_EVENT_TYPE:
80                         event = new GetCategoryHierarchyEvent(auditingFields);
81                         break;
82                 case AuditingTypesConstants.EXTERNAL_API_EVENT_TYPE:
83                         event = new ExternalApiEvent(auditingFields);
84                         break;
85                 case AuditingTypesConstants.ECOMP_OPERATIONAL_ENV_EVENT_TYPE:
86                         event = new EcompOperationalEnvironmentEvent(auditingFields);
87                         break;
88                 }
89
90         return event;
91     }
92
93 }