Source code: org/jbpm/workflow/log/impl/ObjectReferenceImpl.java
1 package org.jbpm.workflow.log.impl;
2
3 import org.apache.log4j.*;
4 import org.jbpm.util.db.*;
5 import org.jbpm.workflow.log.*;
6
7 /**
8 * @hibernate.subclass discriminator-value="ObjectReference"
9 */
10 public class ObjectReferenceImpl extends LogDetailImpl implements ObjectReference {
11
12 public ObjectReferenceImpl() {}
13
14 public ObjectReferenceImpl( PersistentObject persistentObject ) {
15 this.referenceId = persistentObject.getId();
16 this.className = persistentObject.getClass().getName();
17 }
18
19 public void resolve( DbSession dbSession ) {
20 try {
21 log.debug( "resolving object reference : " + referenceId + " : " + this.className );
22 Class clazz = ObjectReferenceImpl.class.getClassLoader().loadClass(this.className);
23 object = dbSession.load( clazz, referenceId );
24 } catch (ClassNotFoundException e) {
25 e.printStackTrace();
26 }
27 }
28
29 public Object getObject() {
30 return object;
31 }
32
33 /**
34 * @hibernate.property type="long" column="long_"
35 */
36 public Long getReferenceId() { return this.referenceId; }
37 public void setReferenceId(Long referenceId) { this.referenceId = referenceId; }
38
39 /**
40 * @hibernate.property type="string" column="className"
41 */
42 public String getClassName() { return this.className; }
43 public void setClassName(String className) { this.className = className; }
44
45 private Long referenceId = null;
46 private String className = null;
47 private Object object = null;
48 private static final Logger log = Logger.getLogger(ObjectReferenceImpl.class);
49 }