// Path: leotask/src/core/org/leores/util/able/Processable2.java
// public interface Processable2<R, A, B> {
// 	public R process(A a, B b);
// 
// 	public static class TrimStringField implements Processable2<Boolean, Object, Field> {
// 
// 		public Boolean process(Object obj, Field field) {
// 			boolean rtn = false;
// 			if (field != null && U.bAssignable(String.class, field.getType())) {
// 				String sValue = (String) U.getFieldValue(obj, field);
// 				if (sValue != null) {
// 					String sValue2 = sValue.trim();
// 					if (sValue2.length() < sValue.length()) {
// 						rtn = true;
// 					}
// 					U.setFieldValue(obj, field, sValue2);
// 				}
// 			}
// 			return rtn;
// 		}
// 
// 	}
// 
// 	public static class SampleListByIndexB<B> implements Processable2<Boolean, Integer, B> {
// 		public Integer step;
// 
// 		/**
// 		 * The sample results will with these index: 0, 0+step, 0+2*step, ...
// 		 * 
// 		 * @param step
// 		 */
// 		public SampleListByIndexB(Integer step) {
// 			this.step = step;
// 		}
// 
// 		public Boolean process(Integer i, B b) {
// 			return i % step == 0;
// 		}
// 
// 	}
// 
// 	public static class SampleListByIndex<B> implements Processable2<B, Integer, B> {
// 		public Integer step;
// 
// 		/**
// 		 * The sample results will with these index: 0, 0+step, 0+2*step, ...
// 		 * 
// 		 * @param step
// 		 */
// 		public SampleListByIndex(Integer step) {
// 			this.step = step;
// 		}
// 
// 		public B process(Integer i, B b) {
// 			B rtn = null;
// 			if (i % step == 0) {
// 				rtn = b;
// 			}
// 			return rtn;
// 		}
// 	}
// 
// 	public static class RemoveRowWithInvalidNumber<B> implements Processable2<B[], Integer, B[]> {
// 		public String sInvalid;
// 
// 		/**
// 		 * E.g. "$%$<0" : remove rows with negative number.
// 		 * 
// 		 * @param sInvalid
// 		 */
// 		public RemoveRowWithInvalidNumber(String sInvalid) {
// 			this.sInvalid = sInvalid;
// 		}
// 
// 		public B[] process(Integer a, B[] b) {
// 			B[] rtn = b;
// 			for (int i = 0; i < b.length; i++) {
// 				Double d = U.toDouble(b[i] + "");
// 				if (d != null) {
// 					if (U.evalCheck(sInvalid, d)) {
// 						rtn = null;
// 						break;
// 					}
// 				}
// 			}
// 			return rtn;
// 		}
// 	};
// 
// }


import java.util.List;
import org.leores.util.able.Processable2;

package org.leores.util;



public class Logger {
	protected final static int LOG_MAX = 100;
	protected final static int LOG_CRITICAL = 80;
	protected final static int LOG_ERROR = 70;
	protected final static int LOG_WARNING = 60;
	protected final static int LOG_INFO = 50; //default log level
	protected final static int LOG_CASUAL = 40;
	protected final static int LOG_TRIVIAL = 30;
	protected final static int LOG_MIN = 0;

	protected String log = "";
	protected Integer logRecordLevel = LOG_MAX;
	protected Integer logOutputLevel = LOG_MIN;

// Path: leotask/src/core/org/leores/util/able/Processable2.java
// public interface Processable2<R, A, B> {
// 	public R process(A a, B b);
// 
// 	public static class TrimStringField implements Processable2<Boolean, Object, Field> {
// 
// 		public Boolean process(Object obj, Field field) {
// 			boolean rtn = false;
// 			if (field != null && U.bAssignable(String.class, field.getType())) {
// 				String sValue = (String) U.getFieldValue(obj, field);
// 				if (sValue != null) {
// 					String sValue2 = sValue.trim();
// 					if (sValue2.length() < sValue.length()) {
// 						rtn = true;
// 					}
// 					U.setFieldValue(obj, field, sValue2);
// 				}
// 			}
// 			return rtn;
// 		}
// 
// 	}
// 
// 	public static class SampleListByIndexB<B> implements Processable2<Boolean, Integer, B> {
// 		public Integer step;
// 
// 		/**
// 		 * The sample results will with these index: 0, 0+step, 0+2*step, ...
// 		 * 
// 		 * @param step
// 		 */
// 		public SampleListByIndexB(Integer step) {
// 			this.step = step;
// 		}
// 
// 		public Boolean process(Integer i, B b) {
// 			return i % step == 0;
// 		}
// 
// 	}
// 
// 	public static class SampleListByIndex<B> implements Processable2<B, Integer, B> {
// 		public Integer step;
// 
// 		/**
// 		 * The sample results will with these index: 0, 0+step, 0+2*step, ...
// 		 * 
// 		 * @param step
// 		 */
// 		public SampleListByIndex(Integer step) {
// 			this.step = step;
// 		}
// 
// 		public B process(Integer i, B b) {
// 			B rtn = null;
// 			if (i % step == 0) {
// 				rtn = b;
// 			}
// 			return rtn;
// 		}
// 	}
// 
// 	public static class RemoveRowWithInvalidNumber<B> implements Processable2<B[], Integer, B[]> {
// 		public String sInvalid;
// 
// 		/**
// 		 * E.g. "$%$<0" : remove rows with negative number.
// 		 * 
// 		 * @param sInvalid
// 		 */
// 		public RemoveRowWithInvalidNumber(String sInvalid) {
// 			this.sInvalid = sInvalid;
// 		}
// 
// 		public B[] process(Integer a, B[] b) {
// 			B[] rtn = b;
// 			for (int i = 0; i < b.length; i++) {
// 				Double d = U.toDouble(b[i] + "");
// 				if (d != null) {
// 					if (U.evalCheck(sInvalid, d)) {
// 						rtn = null;
// 						break;
// 					}
// 				}
// 			}
// 			return rtn;
// 		}
// 	};
// 
// }


// Path: leotask/src/core/org/leores/util/Logger.java
import java.util.List;
import org.leores.util.able.Processable2;

package org.leores.util;



public class Logger {
	protected final static int LOG_MAX = 100;
	protected final static int LOG_CRITICAL = 80;
	protected final static int LOG_ERROR = 70;
	protected final static int LOG_WARNING = 60;
	protected final static int LOG_INFO = 50; //default log level
	protected final static int LOG_CASUAL = 40;
	protected final static int LOG_TRIVIAL = 30;
	protected final static int LOG_MIN = 0;

	protected String log = "";
	protected Integer logRecordLevel = LOG_MAX;
	protected Integer logOutputLevel = LOG_MIN;

	protected Processable2<String, Integer, String> logProcessor = null;
