1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.tuigwaa.database.function;
17
18 import org.apache.commons.logging.Log;
19 import org.apache.commons.logging.LogFactory;
20 import org.hibernate.ObjectDeletedException;
21 import org.hibernate.ObjectNotFoundException;
22 import org.seasar.tuigwaa.model.common.EntityUtils;
23
24 import com.isenshi.util.functor.UnaryFunction;
25
26 public class DeleteExeFunction extends AbstractExeFunction implements
27 UnaryFunction {
28
29 private Log log = LogFactory.getLog(getClass());
30
31 public Object evaluate(Object obj) {
32 Object instance = null;
33 try {
34 Long id = (Long) obj;
35 instance = getSession().load(getJavaClass(), id);
36
37
38
39
40 EntityUtils.removeSelfObjectTree(instance, getEntity(), null);
41
42 getSession().delete(instance);
43 } catch (ObjectNotFoundException e) {
44 log.info("object " + obj + " is already deleted ." + e);
45 } catch (ObjectDeletedException e) {
46 log.info("object " + instance + " deleted exception." + e);
47 }
48 return null;
49 }
50
51 }