VoToucher

package com.isoftstone.pcis.policy.common.utils;

import com.isoftstone.pcis.policy.common.context.Operator;
import java.util.Date;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;

public class VoToucher
{
  private static final Logger logger = Logger.getLogger(VoToucher.class);

  public static void touchOnCreate(Object vo, String modifyUser, Date modifyTime)
  {
    try
    {
      PropertyUtils.setProperty(vo, "CCrtCde", modifyUser);
      PropertyUtils.setProperty(vo, "CUpdCde", modifyUser);
      PropertyUtils.setProperty(vo, "TCrtTm", modifyTime);
      PropertyUtils.setProperty(vo, "TUpdTm", modifyTime);
    } catch (Exception e) {
      logger.error("设置vo操作人/时间出错:" + vo.getClass().getName() + e.getMessage());
    }
  }

  public static void touchOnCreate(Object vo, String modifyUser) {
    touchOnCreate(vo, modifyUser, new Date());
  }

  public static void touchOnCreate(Object vo, Date modifyTime) {
    touchOnCreate(vo, Operator.getCurrentOperatorCde(), modifyTime);
  }

  public static void touchOnCreate(Object vo) {
    touchOnCreate(vo, Operator.getCurrentOperatorCde(), new Date());
  }

  public static void touch(Object vo, String modifyUser, Date modifyTime)
  {
    try
    {
      String crtCde = (String)PropertyUtils.getProperty(vo, "CCrtCde");
      Date crtTm = (Date)PropertyUtils.getProperty(vo, "TCrtTm");
      if (StringUtils.isEmpty(crtCde)) {
        PropertyUtils.setProperty(vo, "CCrtCde", modifyUser);
      }
      if (crtTm == null) {
        PropertyUtils.setProperty(vo, "TCrtTm", modifyTime);
      }
      PropertyUtils.setProperty(vo, "CUpdCde", modifyUser);
      PropertyUtils.setProperty(vo, "TUpdTm", modifyTime);
    } catch (Exception e) {
      logger.error("更新vo操作人/时间出错:" + vo.getClass().getName() + e.getMessage());
    }
  }

  public static void touch(Object vo, String modifyUser) {
    touch(vo, modifyUser, new Date());
  }

  public static void touch(Object vo, Date modifyTime) {
    touch(vo, Operator.getCurrentOperatorCde(), modifyTime);
  }

  public static void touch(Object vo) {
    touch(vo, Operator.getCurrentOperatorCde(), new Date());
  }

  public static void clearTouch(Object vo)
  {
    try
    {
      PropertyUtils.setProperty(vo, "CCrtCde", null);
      PropertyUtils.setProperty(vo, "TCrtTm", null);
      PropertyUtils.setProperty(vo, "CUpdCde", null);
      PropertyUtils.setProperty(vo, "TUpdTm", null);
    } catch (Exception e) {
      logger.error("清空vo操作人/时间出错:" + vo.getClass().getName() + e.getMessage());
    }
  }
}

VoToucher的更多相关文章

随机推荐

  1. 函数lock_rec_enqueue_waiting

    type_mode基础上 加上 LOCK_WAIT 表示等待状态 /****************************************************************** ...

  2. Mybatis foreach

    批量删除: <delete id= "deleteBatchByXXX" parameterType= "list"> delete from 表名 ...

  3. svn备份脚 本

    一直用这套脚本备份,脚本主体虽不是原创,但是从网上得到后因为不能运行也进行了些修改,前两天看到有人问关于SVN备份的问题,今天又把脚本整理了一下,解决了不能循环备份多个配置库的问题.希望对大家有所帮助 ...

  4. C#中的lock关键字;就是lock住一个大家都共同访问的(静态static的)东东就行了

    public class ChatService : IChat //继承IChat接口或者说IChat的实现类 { //定义一个静态对象用于线程部份代码块的锁定,用于lock操作 private s ...

  5. Wireshark基本介绍和学习TCP三次握手(转)

    http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇 ...

  6. XE7 - Image的双击事件无响应,咋整?(已解决)

    今天折腾了好一会,本想做个类似于手机相册的功能,显示SQLite数据库中的图片,然后继续做一些处理.哪成想,写个测试例子时就被卡住了:简单的往窗体上拖放了一个TImage和一个TLabel,没有修改任 ...

  7. pipe()管道最基本的IPC机制

    <h4>进程间通信 fork pipe pie_t 等用法(管道机制 通信)</h4>每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之 ...

  8. 聊聊Dataguard的三种保护模式实验(下)

    4.最大保护模式Maximum Protection 最大保护模式是DG可以提供的最高保护级别,建立在日志同步传输和确认的基础上.同样,可以使用alter database方法进行设置. SQL> ...

  9. Android源码分析--CircleImageView 源码详解

    源码地址为 https://github.com/hdodenhof/CircleImageView 实际上就是一个圆形的imageview 的自定义控件.代码写的很优雅,实现效果也很好, 特此分析. ...

  10. Safari里使用JsonView

    这是第三方开发的一个Safari的jsonView,和chrome以及FF功能类似,现在已经更新到1.1版了. 传送门:https://github.com/rfletcher/safari-json ...