1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.portals.graffito.jcr.persistence.objectconverter.impl;
18
19 import javax.jcr.Node;
20 import javax.jcr.Session;
21
22 import org.apache.commons.logging.Log;
23 import org.apache.commons.logging.LogFactory;
24 import org.apache.portals.graffito.jcr.mapper.model.CollectionDescriptor;
25 import org.apache.portals.graffito.jcr.persistence.collectionconverter.CollectionConverter;
26 import org.apache.portals.graffito.jcr.persistence.collectionconverter.ManageableCollection;
27 import org.apache.portals.graffito.jcr.persistence.objectconverter.ObjectConverter;
28
29 import net.sf.cglib.proxy.LazyLoader;
30
31 public class CollectionLazyLoader implements LazyLoader {
32
33 private final static Log log = LogFactory.getLog(CollectionLazyLoader.class);
34
35 private CollectionConverter collectionConverter;
36 private Session session;
37 private Node collectionParentNode;
38 private CollectionDescriptor collectionDescriptor;
39 private Class collectionFieldClass;
40
41 public CollectionLazyLoader(CollectionConverter collectionConverter, Session session, Node parentNode,
42 CollectionDescriptor collectionDescriptor, Class collectionFieldClass ) {
43 this.collectionConverter = collectionConverter;
44 this.session = session;
45 this.collectionParentNode = parentNode;
46 this.collectionDescriptor = collectionDescriptor;
47 this.collectionFieldClass = collectionFieldClass;
48 }
49
50 public Object loadObject() {
51
52
53 ManageableCollection collection = collectionConverter.getCollection(session, collectionParentNode, collectionDescriptor, collectionFieldClass);
54 return collection;
55 }
56 }