// Path: src/main/java/com/github/mybatis/entity/IdEntity.java
// @MappedSuperclass
// public abstract class IdEntity implements Serializable {
//   @Id
//   protected Long id;
// 
//   public Long getId() {
//     return id;
//   }
// 
//   public void setId(Long id) {
//     this.id = id;
//   }
// 
//   @JsonIgnore
//   public boolean isNew() {
//     return id == null;
//   }
// 
//   @JsonIgnore
//   public boolean isExist() {
//     return id != null;
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (null == obj) {
//       return false;
//     }
// 
//     if (this == obj) {
//       return true;
//     }
// 
//     if (!getClass().equals(obj.getClass())) {
//       return false;
//     }
// 
//     IdEntity that = (IdEntity) obj;
//     return 0 != this.getId() && this.getId().equals(that.getId());
//   }
// 
//   @Override
//   public int hashCode() {
//     int hashCode = 17;
//     hashCode += id == null ? 0 : getId() * 31;
//     return hashCode;
//   }
// 
//   @Override
//   public String toString() {
//     return String.format("%s(id=%s)", this.getClass().getSimpleName(), getId());
//   }
// }


import java.lang.reflect.Array;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.util.*;
import static org.springframework.util.Assert.notNull;
import com.github.mybatis.entity.IdEntity;
import com.github.trace.TraceContext;
import com.github.trace.TraceRecorder;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.reflect.Reflection;
import org.apache.ibatis.executor.ErrorContext;
import org.apache.ibatis.session.Configuration;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.FactoryBean;
   */
  public boolean isSingleton() {
    return false;
  }

  /**
   * 函数参数信息
   *
   * @param args 参数列表
   * @return 格式化输出
   */
  protected String getParameters(Object[] args) {
    if (args == null)
      return "";
    StringBuilder sbd = new StringBuilder();
    if (args.length > 0) {
      for (Object i : args) {
        if (i == null) {
          sbd.append("null");
        } else {
          Class clz = i.getClass();
          if (isPrimitive(clz)) {
            sbd.append(evalPrimitive(i));
          } else if (clz.isArray()) {
            evalArray(i, sbd);
          } else if (Collection.class.isAssignableFrom(clz)) {
            Object[] arr = ((Collection<?>) i).toArray();
            evalArray(arr, sbd);
          } else if (i instanceof Date) {
            sbd.append('"').append(formatYmdHis(((Date) i))).append('"');
// Path: src/main/java/com/github/mybatis/entity/IdEntity.java
// @MappedSuperclass
// public abstract class IdEntity implements Serializable {
//   @Id
//   protected Long id;
// 
//   public Long getId() {
//     return id;
//   }
// 
//   public void setId(Long id) {
//     this.id = id;
//   }
// 
//   @JsonIgnore
//   public boolean isNew() {
//     return id == null;
//   }
// 
//   @JsonIgnore
//   public boolean isExist() {
//     return id != null;
//   }
// 
//   @Override
//   public boolean equals(Object obj) {
//     if (null == obj) {
//       return false;
//     }
// 
//     if (this == obj) {
//       return true;
//     }
// 
//     if (!getClass().equals(obj.getClass())) {
//       return false;
//     }
// 
//     IdEntity that = (IdEntity) obj;
//     return 0 != this.getId() && this.getId().equals(that.getId());
//   }
// 
//   @Override
//   public int hashCode() {
//     int hashCode = 17;
//     hashCode += id == null ? 0 : getId() * 31;
//     return hashCode;
//   }
// 
//   @Override
//   public String toString() {
//     return String.format("%s(id=%s)", this.getClass().getSimpleName(), getId());
//   }
// }


// Path: src/main/java/com/github/mybatis/spring/MapperFactoryBean.java
import java.lang.reflect.Array;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.util.*;
import static org.springframework.util.Assert.notNull;
import com.github.mybatis.entity.IdEntity;
import com.github.trace.TraceContext;
import com.github.trace.TraceRecorder;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.reflect.Reflection;
import org.apache.ibatis.executor.ErrorContext;
import org.apache.ibatis.session.Configuration;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.FactoryBean;

   */
  public boolean isSingleton() {
    return false;
  }

  /**
   * 函数参数信息
   *
   * @param args 参数列表
   * @return 格式化输出
   */
  protected String getParameters(Object[] args) {
    if (args == null)
      return "";
    StringBuilder sbd = new StringBuilder();
    if (args.length > 0) {
      for (Object i : args) {
        if (i == null) {
          sbd.append("null");
        } else {
          Class clz = i.getClass();
          if (isPrimitive(clz)) {
            sbd.append(evalPrimitive(i));
          } else if (clz.isArray()) {
            evalArray(i, sbd);
          } else if (Collection.class.isAssignableFrom(clz)) {
            Object[] arr = ((Collection<?>) i).toArray();
            evalArray(arr, sbd);
          } else if (i instanceof Date) {
            sbd.append('"').append(formatYmdHis(((Date) i))).append('"');
          } else if (i instanceof IdEntity) {