1 17 package org.alfresco.jcr.item; 18 19 import javax.jcr.Node; 20 import javax.jcr.RepositoryException; 21 import javax.jcr.lock.Lock; 22 import javax.jcr.lock.LockException; 23 24 import org.alfresco.jcr.util.JCRProxyFactory; 25 import org.alfresco.model.ContentModel; 26 import org.alfresco.service.cmr.lock.LockService; 27 import org.alfresco.service.cmr.lock.LockStatus; 28 import org.alfresco.service.cmr.repository.NodeService; 29 30 35 public class LockImpl implements Lock 36 { 37 38 private NodeImpl node; 39 private Lock proxy = null; 40 41 42 47 public LockImpl(NodeImpl node) 48 { 49 this.node = node; 50 } 51 52 57 public Lock getProxy() 58 { 59 if (proxy == null) 60 { 61 proxy = (Lock)JCRProxyFactory.create(this, Lock.class, node.session); 62 } 63 return proxy; 64 } 65 66 70 public String getLockOwner() 71 { 72 String lockOwner = null; 73 NodeService nodeService = node.session.getRepositoryImpl().getServiceRegistry().getNodeService(); 74 if (nodeService.hasAspect(node.getNodeRef(), ContentModel.ASPECT_LOCKABLE)) 75 { 76 lockOwner = (String )nodeService.getProperty(node.getNodeRef(), ContentModel.PROP_LOCK_OWNER); 77 } 78 return lockOwner; 79 } 80 81 85 public boolean isDeep() 86 { 87 return false; 88 } 89 90 94 public Node getNode() 95 { 96 return node.getProxy(); 97 } 98 99 103 public String getLockToken() 104 { 105 LockService lockService = node.session.getRepositoryImpl().getServiceRegistry().getLockService(); 106 LockStatus lockStatus = lockService.getLockStatus(node.getNodeRef()); 107 return lockStatus.equals(LockStatus.LOCK_OWNER) ? node.getNodeRef().toString() : null; 108 } 109 110 114 public boolean isLive() throws RepositoryException 115 { 116 return getLockToken() == null ? false : true; 117 } 118 119 123 public boolean isSessionScoped() 124 { 125 return false; 126 } 127 128 132 public void refresh() throws LockException, RepositoryException 133 { 134 } 136 137 } 138 | Popular Tags |