Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014-2015 the original author or authors.
   *
   * 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.
  */
 package org.dbflute.s2dao.extension;
 

Author(s):
jflute
 
 public class TnSqlLogRegistry {
 
     // ===================================================================================
     //                                                                          Definition
     //                                                                          ==========
     protected static final String PKG_ORG_SEASAR = "org.seasar.";
     protected static final String NAME_SqlLogRegistryLocator =  + "extension.jdbc.SqlLogRegistryLocator";
     protected static final String NAME_getInstance = "getInstance";
     protected static final String NAME_setInstance = "setInstance";
     protected static final String NAME_SqlLogRegistry =  + "extension.jdbc.SqlLogRegistry";
     protected static final String NAME_SqlLogRegistryImpl =  + "extension.jdbc.impl.SqlLogRegistryImpl";
     protected static final String NAME_SqlLog =  + "extension.jdbc.SqlLog";
     protected static final String NAME_SqlLogImpl =  + "extension.jdbc.impl.SqlLogImpl";
     protected static final boolean exists;
     protected static final Class<?> locatorType;
     protected static final Method locatorInstanceMethod;
     protected static final Class<?> registryType;
     protected static final Class<?> registryImplType;
     protected static final Class<?> sqlLogType;
     protected static final Class<?> sqlLogImplType;
     static {
         if ( != null) {
              = true;
             final String methodName = ;
             final Method foundMethod;
             try {
                 foundMethod = .getMethod(methodName, (Class[]) null);
             } catch (Exception e) {
                 String msg = "Failed to get the method to get the instance: " + methodName;
                 throw new IllegalStateException(msg);
             }
              = foundMethod;
              = forNameContainerSqlLogRegistry();
              = forNameContainerSqlLog();
              = forNameContainerSqlLogImpl();
         } else {
              = false;
              = null;
              = null;
              = null;
              = null;
              = null;
         }
     }
 
     // ===================================================================================
     //                                                                        Public Entry
     //                                                                        ============
     public static boolean exists() {
         return ;
     }
 
     public static boolean setupSqlLogRegistry() {
         if (!) {
             return false;
         }
         final Object sqlLogRegistryImpl = createContainerSqlLogRegistryImpl();
         final String methodName = ;
         try {
             final Method method = .getMethod(methodNamenew Class[] {  });
             method.invoke(nullnew Object[] { sqlLogRegistryImpl });
             return true;
         } catch (Exception e) {
             String msg = "Failed to set the locator instance:";
             msg = msg + " locatorType=" + ;
             msg = msg + " methodName=" + methodName;
             throw new IllegalStateException(msge);
         }
     }
 
     public static void clearSqlLogRegistry() {
         if (!) {
             return;
         }
        final String methodName = "clear";
        try {
            final Object sqlLogRegistry = findContainerSqlLogRegistry();
            final Method method = .getMethod(methodNamenew Class[] {});
            method.invoke(sqlLogRegistrynew Object[] {});
        } catch (Exception e) {
            String msg = "Failed to clear registry of the locator:";
            msg = msg + " locatorType=" + ;
            msg = msg + " methodName=" + methodName;
            throw new IllegalStateException(msge);
        }
    }
    public static Object findContainerSqlLogRegistry() {
        if (!) {
            return null;
        }
        try {
            return .invoke(null, (Object[]) null);
        } catch (Exception e) {
            String msg = "Failed to get the locator instance:";
            msg = msg + " locatorType=" + ;
            msg = msg + " methodName=" + ;
            throw new IllegalStateException(msge);
        }
    }
    public static void closeRegistration() {
        if (!) {
            return;
        }
        final String methodName = ;
        try {
            final Method method = .getMethod(methodNamenew Class[] {  });
            method.invoke(nullnew Object[] { null });
        } catch (Exception e) {
            String msg = "Failed to handle the locator method:";
            msg = msg + " locatorType=" + ;
            msg = msg + " methodName=" + methodName;
            throw new IllegalStateException(msge);
        }
    }
    public static void push(String rawSqlString completeSqlObject[] bindArgsClass<?>[] bindArgTypesObject sqlLogRegistry) {
        if (!) {
            return;
        }
        if (sqlLogRegistry == null) {
            throw new IllegalArgumentException("sqlLogRegistry should not be null.");
        }
        final Object sqlLogImpl = createContainerSqlLogImpl(rawSqlcompleteSqlbindArgsbindArgTypes);
        reflectSqlLogToContainerSqlLogRegistry(sqlLogImplsqlLogRegistry);
    }
    public static String peekCompleteSql() {
        if (!) {
            return null;
        }
        final Object sqlLogRegistry = findContainerSqlLogRegistry();
        final Object sqlLog = findLastContainerSqlLog(sqlLogRegistry);
        return extractCompleteSqlFromContainerSqlLog(sqlLog);
    }
    // ===================================================================================
    //                                                                Container Reflection
    //                                                                ====================
    protected static Object createContainerSqlLogRegistryImpl() {
        try {
            final Constructor<?> constructor = .getConstructor(int.class);
            return constructor.newInstance(new Object[] { 3 });
        } catch (Exception e) {
            String msg = "Failed to create registryImpl:";
            msg = msg + " registryImplType=" + ;
            throw new IllegalStateException(msge);
        }
    }
    protected static Object createContainerSqlLogImpl(String rawSqlString completeSqlObject[] bindArgsClass<?>[] bindArgTypes) {
        try {
            final Class<?>[] argTypes = new Class[] { String.classString.classObject[].classClass[].class };
            final Constructor<?> constructor = .getConstructor(argTypes);
            return constructor.newInstance(new Object[] { rawSqlcompleteSqlbindArgsbindArgTypes });
        } catch (Exception e) {
            String msg = "Failed to create sqlLogImpl:";
            msg = msg + " completeSql=" + completeSql;
            msg = msg + " sqlLogImplType=" + ;
            throw new IllegalStateException(msge);
        }
    }
    protected static void reflectSqlLogToContainerSqlLogRegistry(Object sqlLogObject sqlLogRegistry) {
        if (sqlLog == null || sqlLogRegistry == null) {
            return;
        }
        final String methodName = "add";
        try {
            final Method method = .getMethod(methodNamenew Class[] {  });
            method.invoke(sqlLogRegistrynew Object[] { sqlLog });
        } catch (Exception e) {
            String msg = "Failed to reflect sqlLogRegistry:";
            msg = msg + " sqlLog=" + sqlLog + " sqlLogRegistry=" + sqlLogRegistry;
            msg = msg + " registryType=" + ;
            msg = msg + " methodName=" + methodName;
            throw new IllegalStateException(msge);
        }
    }
    protected static Object findLastContainerSqlLog(Object sqlLogRegistry) {
        if (sqlLogRegistry == null) {
            return null;
        }
        final String methodName = "getLast";
        try {
            final Method method = .getMethod(methodName, (Class[]) null);
            return method.invoke(sqlLogRegistry, (Object[]) null);
        } catch (Exception e) {
            String msg = "Failed to find sqlLog:";
            msg = msg + " sqlLogRegistry=" + sqlLogRegistry;
            msg = msg + " methodName=" + methodName;
            throw new IllegalStateException(msge);
        }
    }
    protected static String extractCompleteSqlFromContainerSqlLog(Object sqlLog) {
        if (sqlLog == null) {
            return null;
        }
        final String methodName = "getCompleteSql";
        try {
            final Method method = .getMethod(methodName, (Class[]) null);
            return (Stringmethod.invoke(sqlLog, (Object[]) null);
        } catch (Exception e) {
            String msg = "Failed to extract completeSql:";
            msg = msg + " sqlLog=" + sqlLog;
            msg = msg + " methodName=" + methodName;
            throw new IllegalStateException(msge);
        }
    }
    protected static Class<?> forNameContainerSqlLogRegistryLocator() {
        Class<?> clazz = null;
        try {
            clazz = Class.forName();
        } catch (Exception ignored) {
            return null;
        }
        return clazz;
    }
    protected static Class<?> forNameContainerSqlLogRegistry() {
        Class<?> clazz = null;
        try {
            clazz = Class.forName();
        } catch (Exception ignored) {
            return null;
        }
        return clazz;
    }
    protected static Class<?> forNameContainerSqlLogRegistryImpl() {
        Class<?> clazz = null;
        try {
            clazz = Class.forName();
        } catch (Exception ignored) {
            return null;
        }
        return clazz;
    }
    protected static Class<?> forNameContainerSqlLog() {
        Class<?> clazz = null;
        try {
            clazz = Class.forName();
        } catch (Exception ignored) {
            return null;
        }
        return clazz;
    }
    protected static Class<?> forNameContainerSqlLogImpl() {
        Class<?> clazz = null;
        try {
            clazz = Class.forName();
        } catch (Exception ignored) {
            return null;
        }
        return clazz;
    }
New to GrepCode? Check out our FAQ X