Java tutorial
/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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.apache.sqoop.manager.oracle; /** * Class to wrap commons logging to support caching entries. */ public class OraOopLog implements org.apache.commons.logging.Log, OraOopLogFactory.OraOopLog2 { private org.apache.commons.logging.Log log; private StringBuilder cache; public OraOopLog(org.apache.commons.logging.Log otherLog) { this.log = otherLog; } @Override public void debug(Object message) { if (cacheLogEntry(message)) { return; } log.debug(message); } @Override public void debug(Object message, Throwable t) { if (cacheLogEntry(message)) { return; } log.debug(message, t); } @Override public void error(Object message) { if (cacheLogEntry(message)) { return; } log.error(message); } @Override public void error(Object message, Throwable t) { if (cacheLogEntry(message)) { return; } log.error(message, t); } @Override public void fatal(Object message) { if (cacheLogEntry(message)) { return; } log.fatal(message); } @Override public void fatal(Object message, Throwable t) { if (cacheLogEntry(message)) { return; } log.fatal(message, t); } @Override public void info(Object message) { if (cacheLogEntry(message)) { return; } log.info(message); } @Override public void info(Object message, Throwable t) { if (cacheLogEntry(message)) { return; } log.info(message, t); } @Override public boolean isDebugEnabled() { return log.isDebugEnabled(); } @Override public boolean isErrorEnabled() { return log.isErrorEnabled(); } @Override public boolean isFatalEnabled() { return log.isFatalEnabled(); } @Override public boolean isInfoEnabled() { return log.isInfoEnabled(); } @Override public boolean isTraceEnabled() { return log.isTraceEnabled(); } @Override public boolean isWarnEnabled() { return log.isWarnEnabled(); } @Override public void trace(Object message) { log.trace(message); cacheLogEntry(message); } @Override public void trace(Object message, Throwable t) { if (cacheLogEntry(message)) { return; } log.trace(message, t); } @Override public void warn(Object message) { if (cacheLogEntry(message)) { return; } log.warn(message); } @Override public void warn(Object message, Throwable t) { if (cacheLogEntry(message)) { return; } log.warn(message, t); } @Override public boolean getCacheLogEntries() { return (this.cache != null); } @Override public String getLogEntries() { if (this.cache != null) { return this.cache.toString(); } else { return ""; } } @Override public void setCacheLogEntries(boolean value) { if (getCacheLogEntries() && !value) { this.cache = null; } else if (!getCacheLogEntries() && value) { this.cache = new StringBuilder(); } } @Override public void clearCache() { if (getCacheLogEntries()) { this.cache = new StringBuilder(); } } private boolean cacheLogEntry(Object message) { boolean result = getCacheLogEntries(); if (result && message != null) { this.cache.append(message.toString()); } return result; } }