Dave Ward a32ec35333 Merged V4.0-BUG-FIX to HEAD
33858: Fix for ALF-12674 CMIS LOWER fails with SOLR
   - also fixed ranges 
   - UPPER/LOWER only matches upper/lower case - they were doing a generic match
   33859: GERMAN: L10N updates based on EN rev 33523. Fixes:
      - ALF-12510, ALF-12498, ALF-12496
      - ALF-12495, ALF-12483, ALF-12477 
      - ALF-12472, ALF-12471, ALF-12470
   33860: FRENCH: L10N updates based on EN rev 33523. Fixes:
      - ALF-12510, ALF-12498, ALF-12496
      - ALF-12495, ALF-12483, ALF-12477 
      - ALF-12472, ALF-12471, ALF-12470
   33861: JAPANESE: L10N updates based on EN rev 33523. Fixes:
      - ALF-12510, ALF-12498, ALF-12496
      - ALF-12495, ALF-12483, ALF-12477 
      - ALF-12472, ALF-12471, ALF-12470
   33862: DUTCH: L10N updates based on EN rev 33523. Fixes:
      - ALF-12510, ALF-12498, ALF-12496
      - ALF-12495, ALF-12483, ALF-12477 
      - ALF-12472, ALF-12471, ALF-12470
   33892: ALF-11746 Tweak mimetype description sorting to be explicitly by description, case insensitive
   33897: Fix for ALF-12789 XAM clean JOB fails with SOLR search
   - HTTPClient as used by SOLR now includes connection stale check
   33902: Changed FileInfo to use flags value for pseudo file and delete on close, so values are copied by copyFrom().
   33904: Fixes: ALF-12794; Unescaped content error in delete event dialogue.
   33910: ALF-12701: Ensure that all action labels are encoded to prevent XSS attacks
   33913: Strip oplock request bits for pseudo files in the NTCreateAndX CIFS processing, so oplocks never granted to pseudo files.
   33920: A better fix for ALF-12794.
   33929: Merged V3.4-BUG-FIX to V4.0-BUG-FIX
      33871: ALF-12557: WCM - Webform file picker path doesn't take account of the current Webapp
      - Fix by Pavel
      33901: ALF-12815: Not possible to set versionType property when adding the aspect through nodeService.addAspect
      33909: Fix for NFS 'node does not exist' error when editing using vi. ALF-12712.
      33911: Merged V3.4 to V3.4-BUG-FIX
         33867: ALF-9899: Site creation time was still increasing linearly due to avm_child_entries queries not being able to use an index
         - Added new lc_name column - lower case version of the name which can be included in the primary key and queries
         - Added DB upgrade scripts
         33870: ALF-9899: Fixed indexing performance regression (e.g. during creation of 60,000 sites)
         - Apply more scoped cache invalidation for properties and aspects of a node in the current transaction, in line with parent associations
         - E.g. if I am querying aspects on a node already given a new parent association in the current transaction, there is no need to invalidate the parent assocs again when I find the aspects out of date!
         - This plus previous checkin means create site through Share UI back to 1 second (rather than 1 minute) with 30,000 sites
      33914: Merged V3.4 to V3.4-BUG-FIX
         33872: Merged V3.4-BUG-FIX to V3.4
            33843: Fix for ALF-12775
         33895: ALF-12816: Merged V4.0-BUG-FIX to 3.4
            33357: When installing a module the tool reads the war's version.properties file and will not install if the war version is outside the repoVersionMin or repoVersionMax
         33900: MMT fix: When the war has no version.properties file  (e.g. share) it does not error.
            Added a test case and empty.war
      33915: Merged V3.4 to V3.4-BUG-FIX (RECORD ONLY)
         33462: Merged V3.4-BUG-FIX to V3.4 (3.4.8)
         33896: ALF-9899: Reversed revisions 33867 and 33870 and rescheduled for 3.4 HF


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@33931 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2012-02-15 17:22:40 +00:00

131 lines
3.5 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.domain.avm;
import org.alfresco.util.EqualsHelper;
/**
* Entity bean for <b>avm_child_entries</b> table
*
* @author janv
* @since 3.2
*/
public class AVMChildEntryEntity
{
private Long parentNodeId;
private String name;
private String lowerName; // Derived from name for case insensitive lookups
private Long childNodeId;
public AVMChildEntryEntity()
{
// default constructor
}
public AVMChildEntryEntity(long parentNodeId, String name, long childNodeId)
{
this.parentNodeId = parentNodeId;
this.name = name;
this.lowerName = name == null ? null : name.toLowerCase();
this.childNodeId = childNodeId;
}
public AVMChildEntryEntity(long parentNodeId, String name)
{
this.parentNodeId = parentNodeId;
this.name = name;
this.lowerName = name == null ? null : name.toLowerCase();
}
public AVMChildEntryEntity(long parentNodeId, long childNodeId)
{
this.parentNodeId = parentNodeId;
this.childNodeId = childNodeId;
}
public Long getParentNodeId()
{
return parentNodeId;
}
public void setParentNodeId(Long parentNodeId)
{
this.parentNodeId = parentNodeId;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
this.lowerName = name == null ? null : name.toLowerCase();
}
public String getLowerName()
{
return lowerName;
}
public void setLowerName(String lowerName)
{
this.lowerName = lowerName;
}
public Long getChildId()
{
return childNodeId;
}
public void setChildNodeId(Long childNodeId)
{
this.childNodeId = childNodeId;
}
@Override
public int hashCode()
{
return ((parentNodeId == null ? 0 : parentNodeId.hashCode()) +
(name == null ? 0 : name.hashCode()) +
(childNodeId == null ? 0 : childNodeId.hashCode()));
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
{
return true;
}
else if (obj instanceof AVMChildEntryEntity)
{
AVMChildEntryEntity that = (AVMChildEntryEntity) obj;
return (EqualsHelper.nullSafeEquals(this.parentNodeId, that.parentNodeId) &&
EqualsHelper.nullSafeEquals(this.name, that.name) &&
EqualsHelper.nullSafeEquals(this.childNodeId, that.childNodeId));
}
else
{
return false;
}
}
}