Dave Ward 9963da3d51 Merged V3.3 to HEAD
20794: Merged DEV/V3.3-BUG-FIX to V3.3
      20792: Fix for unit test failures introduced by check in 20771
      20791: ALF-3568: Include axiom jars in WAS shared library to solve Quickr connector issues
      20785: Merged DEV/BELARUS/V3.3-BUG-FIX-2010_06_14 to DEV/V3.3-BUG-FIX
         20644: Function for the browser window closing was implemented. For IE browser the trick with window opener was used. Fixes ALF-1004: After closing Details Space, user doesn't return to his previous location
      20784: Fix for ALF-3516: Enterprise 3.X / Impossible to Create a Blog with Special Characters in the Title (?/!)
      20783: Fix for ALF-1087: Documents checked-out from Share do not have "Upload new version" action in Alfresco Explorer
      20782: Added multiday timed event handling to week view
      20775: Merged V3.3 to DEV/V3.3-BUG-FIX
         20670: Fix for ALF-3260: XSS attack is made in Wiki tab if First/Last user name contain xss. Also fixed double encoding errors found during regression testing.
      20772: Update to node browser to show namespace of attributes.
      20771: ALF-3591 - transferring rules.
         - also extends the behaviour filter.
      20770: ALF-3186 - action parameter values are not fully transferred - need to handle d:any
      20768: AVM - ALF-3611 (OrphanReaper + PurgeTestP + additional NPE fixes)
      20765: (RECORD ONLY) Merged BRANCHES/V3.3 to BRANCHES/DEV/V3.3-BUG-FIX:
         20708: DB2 build - add create/drop db ant targets (use DB2 cmdline - since not possible via JDBC/SQL)
         20722: DB2 build - run db2cmd in same window (follow-on to r20708)
      20764: Fix unreported JSON encoding issue with links components
      20762: Fix ALF-2599: Share - Cannot search for user currently logged on
      20759: DB2: fix FullNodeServiceTest.testLongMLTextValues (ALF-497)
         - TODO: fix create script when merging to HEAD
      20756: DB2: fix JBPMEngine*Test.* (ALF-3640) - follow-on (upgrade patch)
      20746: DB2: fix WebProjectServiceImplTest.testCreateWebProject (ALF-2300)
      20744: DB2: fix JBPMEngine*Test.* (ALF-3640) - missed file
      20743: DB2: fix JBPMEngine*Test.* (ALF-3640)
      20729: AVM - fix purge store so that root nodes are actually orphaned (ALF-3627)
         - also prelim for ALF-3611
      20720: (RECORD ONLY) ALF-3594: Merged HEAD to V3.3-BUGFIX
         20616: ALF-2265: Share 'Uber Filter' part 2
            - WebScriptNTLMAuthenticationFilter detached from its superclass and renamed to WebScriptSSOAuthenticationFilter
            - Now the filter simply chains to the downstream authentication filter rather than call its superclass
            - This means the same filter can be used for Kerberos-protected webscripts as well as NTLM
            - Wired globalAuthenticationFilter behind webscriptAuthenticationFilter in the filter chain in web.xml
            - Configured webscriptAuthenticationFilter for Kerberos subsystem
      20719: Merged DEV/TEMPORARY to V3.3-BUGFIX
         20696: ALF-3180: when using NTLM SSO, a user needs to log in first into the web UI before being able to mount alfresco using CIFS
            The absence of the missing person creation logic in “the org.alfresco.filesys.auth.cifs.PassthruCifsAuthenticator.authenticateUser()” method was fixed. 
      20718: Merged DEV/TEMPORARY to V3.3-BUGFIX
         20659: ALF-3216: Incomplete settings for Lotus Quickr
            The protocol,host,port and context are removed from properties and a dependency on the org.alfresco.repo.admin.SysAdminParams interface is introduced.
      20711: Latest SpringSurf libs - fix for ALF-3557
      20710: Merged HEAD to BRANCHES/DEV/V3.3-BUG-FIX:
         20705: Fix ALF-3585: AtomPub summary can render first part of binary content resulting in invalid XML
      20691: Merged DEV/TEMPORARY to V3.3-BUGFIX
         19404: ALF-220: Editor can't rename files and folders via WebDav
            The Rename method of FileFolderService was used in case of file renaming instead of move method in WebDAV MOVE command.
      20663: ALF-3208 RenderingEngine actions should no longer appear in the list of available actions that can be fired using rules.
      20656: ALF-2645: LDAP sync now logs 'dangling references' for debugging purposes
      20651: ALF-485: FTP passthru authenticator logs authentication failures at debug level to avoid noise in the logs
      20646: Merge V2.2 To V3.3
         14301 : RECORD ONLY - ETWOTWO-1227 - fix to serialize FSR deployments.
         14618 : RECORD ONLY - Merge HEAD to 2.2 13944 : After rename project deploy option disappears.
      20637: ALF-3123: Avoid NPE on Oracle when loading empty string values persisted through JMX and the attribute service
      20633: ALF-2057: LDAP synchronization lock now persists for a maximum of two minutes (instead of 24 hours!)
         - The exclusive lock gained for LDAP sync from the JobLockService is now refreshed at 1 minute intervals and never persists for more than 2 minutes
      20628: ALF-1905: Allow use of anonymous bind for LDAP synchronization (NOT authentication)
         - Previously synchronization AND authentication shared the same setting for java.naming.security.authentication, meaning that if you tried to use anonymous bind for the synchronization side, the authentication side would complain.
         - Now there are two independent environments declared for the 'default' synchronization connection and the authentication connection
         - A new property ldap.synchronization.java.naming.security.authentication declares the authentication type used by synchronization. Set to "none" for anonymous bind.
      20623: Fix for ALF-3188 : Access Denied when updating doc via CIFS
      20620: Merge DEV to V3.3-BUG-FIX
         20456 -  ALF-1824 : Setting alfresco.rmi.services.host on linux does not use specified host/IP
      20617: Merged DEV/BELARUS/V3.3-2010_06_08 to V3.3-BUG-FIX (with corrections)
         20606: ALF-651: Web Services client ContentUtils.convertToByteArray is broken
            - org.alfresco.webservice.util.ContentUtils.convertToByteArray() method has been updated to cover large Input Streams conversion.
            - org.alfresco.webservice.test.ContentUtilsTest is a test for the new functionality implemented in the ContentUtils class.
            - org.alfresco.webservice.test.resources.big-content.pdf is a large content for the ContentUtilsTest.testInputStreamToByteArrayConversion() test.
      20613: Fixed ALF-1746: Metadata extractors are unable to remove ALL aspect-related properties
         - putRawValue keeps hold of 'null' values
         - All policies keep hold of 'null' values
         - Only affects 'carryAspectProperties=false'
      20609: Merged HEAD to V3.3-BUG-FIX
         20578: ALF-3178 - Transfer Service - to transfer rule (ie. ruleFolder with it's children) the PathHelper should allow "-" (dash character)
         20608: ALF-3178 - fix r20578 (mis-applied patch)
      20594: WebDAV BitKinex compatibility fix - Let the XML Parser work out the body encoding if it is not declared in the Content-Type header
      20588: (RECORD ONLY) Merged V3.3 to V3.3-BUG-FIX
         - Merged across all differences from V3.3
   20778: Added revision to version label.
   20777: Fix for ALF-2451 - installer correctly configure Share port
   20722: DB2 build - run db2cmd in same window (follow-on to r20712)
   20721: DB2 build - fix create target and add "/c" to exit "db2cmd"
      - TODO: add wait/timeout target, ideally checking for created DB 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@20796 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2010-06-24 15:47:38 +00:00

499 lines
17 KiB
Java

/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. */
package org.alfresco.repo.avm.ibatis;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.avm.AVMDAOs;
import org.alfresco.repo.avm.AVMNode;
import org.alfresco.repo.avm.AVMNodeDAO;
import org.alfresco.repo.avm.AVMNodeImpl;
import org.alfresco.repo.avm.AVMNodeType;
import org.alfresco.repo.avm.AVMStore;
import org.alfresco.repo.avm.BasicAttributes;
import org.alfresco.repo.avm.BasicAttributesImpl;
import org.alfresco.repo.avm.DeletedNode;
import org.alfresco.repo.avm.DeletedNodeImpl;
import org.alfresco.repo.avm.DirectoryNode;
import org.alfresco.repo.avm.Layered;
import org.alfresco.repo.avm.LayeredDirectoryNode;
import org.alfresco.repo.avm.LayeredDirectoryNodeImpl;
import org.alfresco.repo.avm.LayeredFileNode;
import org.alfresco.repo.avm.LayeredFileNodeImpl;
import org.alfresco.repo.avm.PlainDirectoryNode;
import org.alfresco.repo.avm.PlainDirectoryNodeImpl;
import org.alfresco.repo.avm.PlainFileNode;
import org.alfresco.repo.avm.PlainFileNodeImpl;
import org.alfresco.repo.domain.DbAccessControlList;
import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.repo.domain.avm.AVMHistoryLinkEntity;
import org.alfresco.repo.domain.avm.AVMMergeLinkEntity;
import org.alfresco.repo.domain.avm.AVMNodeEntity;
import org.alfresco.repo.domain.avm.AVMVersionRootEntity;
import org.alfresco.service.namespace.QName;
/**
* iBATIS DAO wrapper for AVMNode
*
* @author janv
*
*/
class AVMNodeDAOIbatis implements AVMNodeDAO
{
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#save(org.alfresco.repo.avm.AVMNode)
*/
public void save(AVMNode node)
{
AVMNodeEntity nodeEntity = AVMDAOs.Instance().newAVMNodeDAO.createNode(convertNodeToNodeEntity(node));
((AVMNodeImpl)node).setId(nodeEntity.getId());
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#delete(org.alfresco.repo.avm.AVMNode)
*/
public void delete(AVMNode node)
{
AVMDAOs.Instance().newAVMNodeDAO.deleteNode(node.getId());
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#createAspect(long, long)
*/
public void createAspect(long nodeId, QName aspectQName)
{
AVMDAOs.Instance().newAVMNodeDAO.createAspect(nodeId, aspectQName);
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#deleteAspect(long, long)
*/
public void deleteAspect(long nodeId, QName aspectQName)
{
AVMDAOs.Instance().newAVMNodeDAO.deleteAspect(nodeId, aspectQName);
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#deleteAspects(long)
*/
public void deleteAspects(long nodeId)
{
AVMDAOs.Instance().newAVMNodeDAO.deleteAspects(nodeId);
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getAspects(long)
*/
public Set<QName> getAspects(long nodeId)
{
return AVMDAOs.Instance().newAVMNodeDAO.getAspects(nodeId);
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#createOrUpdateProperty(long, QName, org.alfresco.repo.domain.PropertyValue)
*/
public void createOrUpdateProperty(long nodeId, QName qname, PropertyValue value)
{
AVMDAOs.Instance().newAVMNodeDAO.createOrUpdateNodeProperty(nodeId, qname, value);
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#deleteProperty(long, QName)
*/
public void deleteProperty(long nodeId, QName propQName)
{
AVMDAOs.Instance().newAVMNodeDAO.deleteNodeProperty(nodeId, propQName);
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#deleteProperties(long)
*/
public void deleteProperties(long nodeId)
{
AVMDAOs.Instance().newAVMNodeDAO.deleteNodeProperties(nodeId);
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getProperties(long)
*/
public Map<QName, PropertyValue> getProperties(long nodeId)
{
return AVMDAOs.Instance().newAVMNodeDAO.getNodeProperties(nodeId);
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getByID(long)
*/
public AVMNode getByID(long id)
{
return convertNodeEntityToNode(AVMDAOs.Instance().newAVMNodeDAO.getNode(id));
}
/* package */ AVMNode getRootNodeByID(AVMStore store, long rootNodeId)
{
AVMNodeEntity rootNodeEntity = AVMDAOs.Instance().newAVMNodeDAO.getNode(rootNodeId);
AVMNode rootNode = null;
if (rootNodeEntity.getStoreNewId() != null)
{
rootNode = convertNodeEntityToNode(rootNodeEntity, false);
rootNode.setStoreNew(store);
}
else
{
rootNode = convertNodeEntityToNode(rootNodeEntity);
}
return rootNode;
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#update(org.alfresco.repo.avm.AVMNode)
*/
public void update(AVMNode node)
{
AVMNodeEntity nodeEntity = convertNodeToNodeEntity(node);
AVMDAOs.Instance().newAVMNodeDAO.updateNode(nodeEntity);
((AVMNodeImpl)node).setVers(nodeEntity.getVers());
}
/**
* TODO review
*
* @deprecated
*/
public void updateModTimeAndGuid(AVMNode node)
{
AVMNodeEntity nodeEntity = convertNodeToNodeEntity(node);
AVMDAOs.Instance().newAVMNodeDAO.updateNodeModTimeAndGuid(nodeEntity);
((AVMNodeImpl)node).setVers(nodeEntity.getVers());
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getAVMStoreRoot(org.alfresco.repo.avm.AVMStore, int)
*/
public DirectoryNode getAVMStoreRoot(AVMStore store, int version)
{
AVMVersionRootEntity vrEntity = AVMDAOs.Instance().newAVMVersionRootDAO.getByVersionID(store.getId(), version);
if (vrEntity == null)
{
return null;
}
return (DirectoryNode) getByID(vrEntity.getRootNodeId());
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getAncestor(org.alfresco.repo.avm.AVMNode)
*/
public AVMNode getAncestor(AVMNode descendent)
{
AVMHistoryLinkEntity hlEntity = AVMDAOs.Instance().newAVMNodeLinksDAO.getHistoryLinkByDescendent(descendent.getId());
if (hlEntity == null)
{
return null;
}
return AVMDAOs.Instance().fAVMNodeDAO.getByID(hlEntity.getAncestorNodeId());
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getMergedFrom(org.alfresco.repo.avm.AVMNode)
*/
public AVMNode getMergedFrom(AVMNode mTo)
{
AVMMergeLinkEntity mlEntity = AVMDAOs.Instance().newAVMNodeLinksDAO.getMergeLinkByTo(mTo.getId());
if (mlEntity == null)
{
return null;
}
return AVMDAOs.Instance().fAVMNodeDAO.getByID(mlEntity.getMergeFromNodeId());
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getOrphans(int)
*/
public List<AVMNode> getOrphans(int batchSize)
{
List<AVMNodeEntity> nodeEntities = AVMDAOs.Instance().newAVMNodeDAO.getNodeOrphans(batchSize);
if (nodeEntities == null)
{
return new ArrayList<AVMNode>(0);
}
List<AVMNode> nodes = new ArrayList<AVMNode>(nodeEntities.size());
for (AVMNodeEntity nodeEntity : nodeEntities)
{
nodes.add(convertNodeEntityToNode(nodeEntity));
}
return nodes;
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getNewInStore(org.alfresco.repo.avm.AVMStore)
*/
public List<AVMNode> getNewInStore(AVMStore store)
{
List<AVMNodeEntity> nodeEntities = AVMDAOs.Instance().newAVMNodeDAO.getNodesNewInStore(store.getId());
if (nodeEntities == null)
{
return new ArrayList<AVMNode>(0);
}
List<AVMNode> nodes = new ArrayList<AVMNode>(nodeEntities.size());
for (AVMNodeEntity nodeEntity : nodeEntities)
{
nodes.add(convertNodeEntityToNode(nodeEntity));
}
return nodes;
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#flush()
*/
public void flush()
{
// NOOP
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#evict(org.alfresco.repo.avm.AVMNode)
*/
public void evict(AVMNode node)
{
// NOOP
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#clear()
*/
public void clear()
{
AVMDAOs.Instance().newAVMNodeDAO.clearNodeEntityCache();
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#noCache()
*/
public void noCache()
{
// NOOP
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#yesCache()
*/
public void yesCache()
{
// NOOP
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#clearNewInStore(org.alfresco.repo.avm.AVMStore)
*/
public void clearNewInStore(AVMStore store)
{
AVMDAOs.Instance().newAVMNodeDAO.updateNodesClearNewInStore(store.getId());
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getNewLayeredInStoreIDs(org.alfresco.repo.avm.AVMStore)
*/
public List<Long> getNewLayeredInStoreIDs(AVMStore store)
{
return AVMDAOs.Instance().newAVMNodeDAO.getLayeredNodesNewInStoreIDs(store.getId());
}
/* (non-Javadoc)
* @see org.alfresco.repo.avm.AVMNodeDAO#getNewLayeredInStore(org.alfresco.repo.avm.AVMStore)
*/
public List<Layered> getNewLayeredInStore(AVMStore store)
{
List<AVMNodeEntity> nodeEntities = AVMDAOs.Instance().newAVMNodeDAO.getLayeredNodesNewInStore(store.getId());
if (nodeEntities == null)
{
return new ArrayList<Layered>(0);
}
List<Layered> nodes = new ArrayList<Layered>(nodeEntities.size());
for (AVMNodeEntity nodeEntity : nodeEntities)
{
nodes.add((Layered)convertNodeEntityToNode(nodeEntity));
}
return nodes;
}
private AVMNodeEntity convertNodeToNodeEntity(AVMNode node)
{
AVMNodeEntity nodeEntity = new AVMNodeEntity();
nodeEntity.setId(node.getId());
nodeEntity.setAccessDate(node.getBasicAttributes().getAccessDate());
nodeEntity.setOwner(node.getBasicAttributes().getOwner());
nodeEntity.setCreator(node.getBasicAttributes().getCreator());
nodeEntity.setCreatedDate(node.getBasicAttributes().getCreateDate());
nodeEntity.setModifier(node.getBasicAttributes().getLastModifier());
nodeEntity.setModifiedDate(node.getBasicAttributes().getModDate());
nodeEntity.setType(node.getType());
nodeEntity.setVersion(new Long(node.getVersionID()));
nodeEntity.setVers(((AVMNodeImpl)node).getVers());
nodeEntity.setAclId((node.getAcl() == null ? null : node.getAcl().getId()));
nodeEntity.setGuid(node.getGuid());
nodeEntity.setStoreNewId(node.getStoreNew() == null ? null : node.getStoreNew().getId());
nodeEntity.setRoot(node.getIsRoot());
if (node instanceof PlainFileNode)
{
PlainFileNode pfNode = (PlainFileNode)node;
nodeEntity.setEncoding(pfNode.getEncoding());
nodeEntity.setLength(pfNode.getLength());
nodeEntity.setMimetype(pfNode.getMimeType());
nodeEntity.setContentUrl(pfNode.getContentURL());
}
else if (node instanceof LayeredFileNode)
{
LayeredFileNode lfNode = (LayeredFileNode)node;
nodeEntity.setIndirection(lfNode.getIndirection());
nodeEntity.setIndirectionVersion(lfNode.getIndirectionVersion());
}
else if (node instanceof PlainDirectoryNode)
{
// no additional
}
else if (node instanceof LayeredDirectoryNode)
{
LayeredDirectoryNode ldNode = (LayeredDirectoryNode)node;
nodeEntity.setIndirection(ldNode.getIndirection());
nodeEntity.setIndirectionVersion(ldNode.getIndirectionVersion());
nodeEntity.setLayerId(ldNode.getLayerID());
nodeEntity.setPrimaryIndirection(ldNode.getPrimaryIndirection());
nodeEntity.setOpacity(ldNode.getOpacity());
}
else if (node instanceof DeletedNode)
{
DeletedNode dNode = (DeletedNode)node;
nodeEntity.setDeletedType(dNode.getDeletedType());
}
return nodeEntity;
}
private AVMNode convertNodeEntityToNode(AVMNodeEntity nodeEntity)
{
return convertNodeEntityToNode(nodeEntity, true);
}
private AVMNode convertNodeEntityToNode(AVMNodeEntity nodeEntity, boolean withStore)
{
if (nodeEntity == null)
{
return null;
}
AVMNodeImpl node = null;
if (nodeEntity.getType() == AVMNodeType.PLAIN_FILE)
{
node = new PlainFileNodeImpl();
PlainFileNodeImpl pfNode = (PlainFileNodeImpl) node;
pfNode.setMimeType(nodeEntity.getMimetype());
pfNode.setEncoding(nodeEntity.getEncoding());
pfNode.setLength(nodeEntity.getLength());
pfNode.setContentURL(nodeEntity.getContentUrl());
}
else if (nodeEntity.getType() == AVMNodeType.PLAIN_DIRECTORY)
{
node = new PlainDirectoryNodeImpl();
// no additional
}
else if (nodeEntity.getType() == AVMNodeType.LAYERED_FILE)
{
node = new LayeredFileNodeImpl();
((LayeredFileNodeImpl)node).setIndirection(nodeEntity.getIndirection());
((LayeredFileNodeImpl)node).setIndirectionVersion(nodeEntity.getIndirectionVersion());
}
else if (nodeEntity.getType() == AVMNodeType.LAYERED_DIRECTORY)
{
node = new LayeredDirectoryNodeImpl();
((LayeredDirectoryNodeImpl)node).setIndirection(nodeEntity.getIndirection());
((LayeredDirectoryNodeImpl)node).setIndirectionVersion(nodeEntity.getIndirectionVersion());
((LayeredDirectoryNodeImpl)node).setPrimaryIndirection(nodeEntity.isPrimaryIndirection());
((LayeredDirectoryNodeImpl)node).setLayerID(nodeEntity.getLayerId());
((LayeredDirectoryNodeImpl)node).setOpacity(nodeEntity.getOpacity());
}
else if (nodeEntity.getType() == AVMNodeType.DELETED_NODE)
{
node = new DeletedNodeImpl();
((DeletedNodeImpl)node).setDeletedType(nodeEntity.getDeletedType());
}
else
{
// belts-and-braces
throw new AlfrescoRuntimeException("Unexpected node type: "+nodeEntity.getType());
}
node.setId(nodeEntity.getId());
node.setIsRoot(nodeEntity.isRoot());
node.setGuid(nodeEntity.getGuid());
node.setVersionID(nodeEntity.getVersion().intValue());
node.setVers(nodeEntity.getVers());
BasicAttributes ba = new BasicAttributesImpl();
ba.setAccessDate(nodeEntity.getAccessDate());
ba.setModDate(nodeEntity.getModifiedDate());
ba.setCreateDate(nodeEntity.getCreatedDate());
ba.setLastModifier(nodeEntity.getModifier());
ba.setCreator(nodeEntity.getCreator());
ba.setOwner(nodeEntity.getOwner());
node.setBasicAttributes(ba);
AVMStore store = null;
if (withStore)
{
if (nodeEntity.getStoreNewId() != null)
{
store = AVMDAOs.Instance().fAVMStoreDAO.getByID(nodeEntity.getStoreNewId());
}
}
node.setStoreNew(store);
DbAccessControlList acl = null;
if (nodeEntity.getAclId() != null)
{
acl = AVMDAOs.Instance().fAclDAO.getDbAccessControlList(nodeEntity.getAclId());
}
node.setAcl(acl);
return node;
}
}