Refactor code to support no AAF requests
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / aaf / database / DBFieldHandler.java
diff --git a/src/main/java/org/onap/dmaap/dbcapi/aaf/database/DBFieldHandler.java b/src/main/java/org/onap/dmaap/dbcapi/aaf/database/DBFieldHandler.java
deleted file mode 100644 (file)
index 52af453..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * org.onap.dmaap
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.dmaap.dbcapi.aaf.database;
-
-import java.lang.reflect.*;
-import java.sql.*;
-import java.util.*;
-
-import org.apache.log4j.Logger;
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-import org.onap.dmaap.dbcapi.logging.DmaapbcLogMessageEnum;
-
-
-public class DBFieldHandler    {
-       static final EELFLogger errorLogger = EELFManager.getInstance().getErrorLogger();
-       
-       public static interface SqlOp   {
-               public Object get(ResultSet rs, int index) throws Exception;
-               public void set(PreparedStatement ps, int index, Object value) throws Exception;
-       }
-       private static class    AofString implements SqlOp {
-               public Object get(ResultSet rs, int index) throws Exception {
-                       String val = rs.getString(index);
-                       if (val == null) {
-                               return(null);
-                       }
-                       String[] ret = val.split(",");
-                       for (int i = 0; i < ret.length; i++) {
-                               ret[i] = funesc(ret[i]);
-                       }
-                       return(ret);
-               }
-               public void set(PreparedStatement ps, int index, Object x) throws Exception {
-                       String[] val = (String[])x;
-                       if (val == null) {
-                               ps.setString(index, null);
-                               return;
-                       }
-                       StringBuffer sb = new StringBuffer();
-                       String sep = "";
-                       for (String s: val) {
-                               sb.append(sep).append(fesc(s));
-                               sep = ",";
-                       }
-                       ps.setString(index, sb.toString());
-               }
-       }
-       private static class    EnumSql implements SqlOp {
-               private Class   enclass;
-               public EnumSql(Class enclass) {
-                       this.enclass = enclass;
-               }
-               @SuppressWarnings("unchecked")
-               public Object get(ResultSet rs, int index) throws Exception {
-                       String val = rs.getString(index);
-                       if (val == null) {
-                               return(null);
-                       } else {
-                               return(Enum.valueOf(enclass, val));
-                       }
-               }
-               public void set(PreparedStatement ps, int index, Object value) throws Exception {
-                       if (value == null) {
-                               ps.setString(index, null);
-                       } else {
-                               ps.setString(index, value.toString());
-                       }
-               }
-       }
-       private static class    SqlDate implements SqlOp {
-               public Object get(ResultSet rs, int index) throws Exception {
-                       return(rs.getTimestamp(index));
-               }
-               public void set(PreparedStatement ps, int index, Object val) throws Exception {
-                       if (val instanceof java.util.Date && !(val instanceof java.sql.Timestamp)) {
-                               val = new java.sql.Timestamp(((java.util.Date)val).getTime());
-                       }
-                       ps.setTimestamp(index, (java.sql.Timestamp)val);
-               }
-       }
-        private static class    SqlType implements SqlOp {
-                private Method   sqlget;
-                private Method   sqlset;
-                private SqlType(String tag) throws Exception {
-                       sqlget = ResultSet.class.getMethod("get" + tag, Integer.TYPE);
-                        sqlset = PreparedStatement.class.getMethod("set" + tag, Integer.TYPE, sqlget.getReturnType());
-                        sqltypes.put(sqlget.getReturnType().getName(), this);
-                }
-               public Object get(ResultSet rs, int index) throws Exception {
-                       return(sqlget.invoke(rs, index));
-               }
-               public void set(PreparedStatement ps, int index, Object val) throws Exception {
-                       try {
-                               sqlset.invoke(ps, index, val);
-                       } catch (Exception e) {
-                               errorLogger.error(DmaapbcLogMessageEnum.DB_FIELD_INIT_ERROR,  Integer.toString(index), val.toString(), ps.toString());
-                               throw e;
-                       }
-               }
-        }
-        private static Map<String, SqlOp> sqltypes;
-        static {
-                sqltypes = new HashMap<String, SqlOp>();
-               sqltypes.put("[Ljava.lang.String;", new AofString());
-               sqltypes.put("java.util.Date", new SqlDate());
-                try {
-                        new SqlType("Boolean");
-                        new SqlType("Timestamp");
-                        new SqlType("Double");
-                        new SqlType("Float");
-                        new SqlType("Int");
-                        new SqlType("Long");
-                        new SqlType("Short");
-                        new SqlType("String");
-                } catch (Exception e) {
-                       errorLogger.error(DmaapbcLogMessageEnum.DB_ACCESS_INIT_ERROR,  e.getMessage() );
-                }
-        }
-       private Method  objget;
-       private Method  objset;
-       private SqlOp   sqlop;
-       private int     fieldnum;
-       public void copy(Object from, Object to) throws Exception {
-               objset.invoke(to, objget.invoke(from));
-       }
-       public void setKey(Object o, String key) throws Exception {
-               objset.invoke(o, key);
-       }
-       public String getKey(Object o) throws Exception {
-               return((String)objget.invoke(o));
-       }
-       public void toSQL(Object o, PreparedStatement ps) throws Exception {
-               sqlop.set(ps, fieldnum, objget.invoke(o));
-       }
-       public void fromSQL(ResultSet r, Object o) throws Exception {
-               objset.invoke(o, sqlop.get(r, fieldnum));
-       }
-       public DBFieldHandler(Class<?> c, String fieldname, int fieldnum) throws Exception {
-               this(c, fieldname, fieldnum, null);
-       }
-       public DBFieldHandler(Class<?> c, String fieldname, int fieldnum, SqlOp op) throws Exception {
-               this.fieldnum = fieldnum;
-               StringBuffer sb = new StringBuffer();
-               for (String s: fieldname.split("_")) {
-                       sb.append(s.substring(0, 1).toUpperCase()).append(s.substring(1));
-               }
-               String camelcase = sb.toString();
-               try {
-                       objget = c.getMethod("is" + camelcase);
-               } catch (Exception e) {
-                       objget = c.getMethod("get" + camelcase);
-               }
-               objset = c.getMethod("set" + camelcase, objget.getReturnType());
-               sqlop = op;
-               if (sqlop != null) {
-                       return;
-               }
-               Class<?> x = objget.getReturnType();
-               if (x.isEnum()) {
-                       sqlop = new EnumSql(x);
-                       return;
-               }
-               sqlop = sqltypes.get(x.getName());
-               if (sqlop != null) {
-                       return;
-               }
-               errorLogger.error(DmaapbcLogMessageEnum.DB_NO_FIELD_HANDLER,  c.getName(),  fieldname,  Integer.toString(fieldnum),  x.getName());
-       }
-       public static String fesc(String s) {
-               if (s == null) {
-                       return(s);
-               }
-               return(s.replaceAll("@", "@a").replaceAll(";", "@s").replaceAll(",", "@c"));
-       }
-       public static String funesc(String s) {
-               if (s == null) {
-                       return(s);
-               }
-               return(s.replaceAll("@c", ",").replaceAll("@s", ";").replaceAll("@a", "@"));
-       }
-}