Refactoring Consolidation Service
[sdc.git] / common-app-api / src / main / java / org / openecomp / sdc / common / ecomplog / EcompLoggerFactory.java
1 package org.openecomp.sdc.common.ecomplog;
2
3 /**
4  * Created by dd4296 on 12/26/2017.
5  * this factory helps decouple the classes for Stopwatch and EcompMDCWrapper from
6  * the EcompLogger classes
7  */
8 public class EcompLoggerFactory {
9
10     private EcompLoggerFactory() {
11     }
12
13     @SuppressWarnings("unchecked")
14     static public <T, V> V getLogger(Class<T> type) {
15
16         if (type.getName().equals(EcompLoggerAudit.class.getName())) {
17             return (V) new EcompLoggerAudit(new EcompMDCWrapper(new Stopwatch()));
18         }
19
20         if (type.getName().equals(EcompLoggerDebug.class.getName())) {
21             return (V) new EcompLoggerDebug(new EcompMDCWrapper(new Stopwatch()));
22         }
23
24         if (type.getName().equals(EcompLoggerMetric.class.getName())) {
25             return (V) new EcompLoggerMetric(new EcompMDCWrapper(new Stopwatch()));
26         }
27
28         if (type.getName().equals(EcompLoggerError.class.getName())) {
29             return (V) new EcompLoggerError(new EcompMDCWrapper(new Stopwatch()));
30         }
31
32         return null;
33     }
34 }