mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged DEV/SWIFT to HEAD
26373: WIP: ALF-7339: RSOLR 009: Index track and build from SOLR - track content, track dates, basic sorting 26388: WIP: ALF-7339: RSOLR 009: Index track and build from SOLR - basic tracking of d:text and d:mltext (not dual tokenisation and identifier support) 26527: WIP ALF-7339: RSOLR 009: Index track and build from SOLR - track d:content, d:mltext, d:text - start of cross locale search and ordering support int the index (not at query time yet) - no dual tokenisation support yet - currently adding all fields for tokenized BOTH - .sort needs additional tokenisation support to use a different separator (\u0000 used to indicate locale and split stuff - better toe use {en}woof style with \u0000 split 26822: ALF-8166: RINF 10: treenode.get.js - tweak to use "childFileFolders" 26825: ALF-8133: RINF 10: ScriptNode - update "childByNamePath" to use optimised NodeService.getChildByName 26850: ALF-8133: RINF 10: ScriptNode - update "childByNamePath" to use optimised NodeService.getChildByName - follow-on to r26825 26862: ALF-8110: RINF 10: doclist.get.js - update "path" filter to use DB-based queries (by default) - milestone check-in for review and comparison (note: sorting will be pushed down as part of paging support in lower layers) 26872: Updated SOLR dev env 26915: ALF-8224: part 1: encapsulate cmis dictionary for SOLR usage 27017: Javadoc: removed uncommented param 27018: Added 'namePattern' property to NamedObjectRegistry to enforce naming conventions where required 27019: CannedQuery interface and related infrastructure - Provides basic support for query, sort, filter and page - CannedQueryFactory allows more complex implementations where required - Should be enough of a starter for tasks requiring miscellaneous queries - ALF-7167: Canned queries 27037: WCM QS Needs the Web-Client, so define the dependency to Eclipse 27041: Move WCM-QS test setup to a common base class 27044: Start to conver the WCM QS behaviour from JS to Java 27080: Added comment section for NodeLocator script declarations 27081: General cleanup: Removed non-javadocs, empty javadocs, unused code, etc 27104: Fixed ALF-7476: Typo in output from MMT 27114: ALF-7479: RSOLR 016: Query Handler ALF-7480: RSOLR 017: SOLR result set ALF-7481: RSOLR 018: Execute query against SOLR - First working stack git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28286 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,64 +0,0 @@
|
||||
/*
|
||||
* 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.cmis;
|
||||
|
||||
/**
|
||||
* @author andyh
|
||||
*
|
||||
*/
|
||||
public enum CMISAccessControlFormatEnum implements EnumLabel
|
||||
{
|
||||
/**
|
||||
* Report only CMIS basic permissions
|
||||
*/
|
||||
CMIS_BASIC_PERMISSIONS("onlyBasicPermissions"),
|
||||
|
||||
/**
|
||||
* May report CMIS basic permission, repository specific permissions or a mixture of both.
|
||||
*/
|
||||
REPOSITORY_SPECIFIC_PERMISSIONS("repositorySpecificPermissions");
|
||||
|
||||
private String label;
|
||||
|
||||
/**
|
||||
* Construct
|
||||
*
|
||||
* @param label
|
||||
*/
|
||||
CMISAccessControlFormatEnum(String label)
|
||||
{
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.alfresco.cmis.EnumLabel#label()
|
||||
*/
|
||||
public String getLabel()
|
||||
{
|
||||
return label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory for CMISAclPropagationEnum
|
||||
*/
|
||||
public static EnumFactory<CMISAccessControlFormatEnum> FACTORY = new EnumFactory<CMISAccessControlFormatEnum>(CMISAccessControlFormatEnum.class, CMIS_BASIC_PERMISSIONS, true);
|
||||
|
||||
}
|
@@ -20,6 +20,7 @@ package org.alfresco.cmis;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.alfresco.opencmis.CMISAccessControlFormatEnum;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
|
||||
/**
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS ACL capability
|
||||
*
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS ACL propagation
|
||||
*
|
||||
|
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
|
||||
/**
|
||||
* Specifies which types of permissions are supported..
|
||||
*
|
||||
|
@@ -23,6 +23,9 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Allowed Action Enum
|
||||
*
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* Enumeration of base Alfresco Object type Ids. Possible values:<br />
|
||||
* <b>DOCUMENT</b>,<br />
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* Enumeration of the <b>CMIS Changes Capability</b>
|
||||
*
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Property Cardinality Enum
|
||||
*
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* Enumeration of the <b>CMIS Change Type</b>. Possible values:<br />
|
||||
* <b>CREATED</b><br />
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Content Stream Allowed Enum
|
||||
*
|
||||
|
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Join Enum
|
||||
*
|
||||
|
@@ -1,71 +0,0 @@
|
||||
/*
|
||||
* 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.cmis;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.alfresco.service.cmr.repository.AssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
|
||||
/**
|
||||
* CMIS Property Accessor (get and set property values)
|
||||
*
|
||||
* @author davidc
|
||||
*/
|
||||
public interface CMISPropertyAccessor
|
||||
{
|
||||
/**
|
||||
* Get the CMIS Property Name
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getName();
|
||||
|
||||
/**
|
||||
* Get the (directly) mapped Alfresco property (if a direct mapping exists)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public QName getMappedProperty();
|
||||
|
||||
/**
|
||||
* Get the property value for a node
|
||||
*
|
||||
* @param nodeRef
|
||||
* @return
|
||||
*/
|
||||
public Serializable getValue(NodeRef nodeRef);
|
||||
|
||||
/**
|
||||
* Set the property value for a node
|
||||
*
|
||||
* @param nodeRef
|
||||
* @Param value
|
||||
*/
|
||||
public void setValue(NodeRef nodeRef, Serializable value);
|
||||
|
||||
/**
|
||||
* Get the property value for an association
|
||||
*
|
||||
* @param nodeRef
|
||||
* @return
|
||||
*/
|
||||
public Serializable getValue(AssociationRef assocRef);
|
||||
}
|
@@ -20,6 +20,9 @@ package org.alfresco.cmis;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import org.alfresco.opencmis.dictionary.CMISPropertyAccessor;
|
||||
import org.alfresco.opencmis.dictionary.CMISPropertyLuceneBuilder;
|
||||
|
||||
|
||||
/**
|
||||
* CMIS Property Definition
|
||||
@@ -159,5 +162,4 @@ public interface CMISPropertyDefinition
|
||||
* @return
|
||||
*/
|
||||
public CMISPropertyLuceneBuilder getPropertyLuceneBuilder();
|
||||
|
||||
}
|
||||
|
@@ -1,135 +0,0 @@
|
||||
/*
|
||||
* 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.cmis;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.alfresco.repo.search.impl.lucene.LuceneFunction;
|
||||
import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
|
||||
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
|
||||
import org.apache.lucene.queryParser.ParseException;
|
||||
import org.apache.lucene.search.Query;
|
||||
|
||||
/**
|
||||
* CMIS Property Lucene Builder
|
||||
*
|
||||
* @author andyh
|
||||
*/
|
||||
public interface CMISPropertyLuceneBuilder
|
||||
{
|
||||
/**
|
||||
* @param lqp
|
||||
* @param value
|
||||
* @param mode
|
||||
* @param luceneFunction
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneEquality(LuceneQueryParser lqp, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp
|
||||
* @param not
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneExists(LuceneQueryParser lqp, Boolean not) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp
|
||||
* @param value
|
||||
* @param mode
|
||||
* @param luceneFunction
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneGreaterThan(LuceneQueryParser lqp, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp
|
||||
* @param value
|
||||
* @param mode
|
||||
* @param luceneFunction
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneGreaterThanOrEquals(LuceneQueryParser lqp, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp
|
||||
* @param values
|
||||
* @param not
|
||||
* @param mode
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneIn(LuceneQueryParser lqp, Collection<Serializable> values, Boolean not, PredicateMode mode) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp
|
||||
* @param value
|
||||
* @param mode
|
||||
* @param luceneFunction
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneInequality(LuceneQueryParser lqp, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp
|
||||
* @param value
|
||||
* @param mode
|
||||
* @param luceneFunction
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneLessThan(LuceneQueryParser lqp, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp
|
||||
* @param value
|
||||
* @param mode
|
||||
* @param luceneFunction
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneLessThanOrEquals(LuceneQueryParser lqp, Serializable value, PredicateMode mode, LuceneFunction luceneFunction) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp
|
||||
* @param value
|
||||
* @param not
|
||||
* @return the query
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Query buildLuceneLike(LuceneQueryParser lqp, Serializable value, Boolean not) throws ParseException;
|
||||
|
||||
/**
|
||||
* @param lqp TODO
|
||||
* @return the sort field
|
||||
*/
|
||||
public String getLuceneSortField(LuceneQueryParser lqp);
|
||||
|
||||
/**
|
||||
* @return the field name
|
||||
*
|
||||
*/
|
||||
public String getLuceneFieldName();
|
||||
}
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Join Enum
|
||||
*
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Types Filter Enum
|
||||
*
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
|
||||
/**
|
||||
* The scope for a CMIS name
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* Copyright (C) 2005-2010 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
@@ -14,42 +14,45 @@
|
||||
* 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.cmis;
|
||||
|
||||
/**
|
||||
* CMIS Types Filter Enum
|
||||
*
|
||||
* @author davidc
|
||||
*/
|
||||
public enum CMISTypesFilterEnum implements EnumLabel
|
||||
{
|
||||
DOCUMENTS("documents"),
|
||||
FOLDERS("folders"),
|
||||
POLICIES("policies"),
|
||||
ANY("any");
|
||||
|
||||
|
||||
private String label;
|
||||
|
||||
/**
|
||||
* Construct
|
||||
*
|
||||
* @param label
|
||||
*/
|
||||
CMISTypesFilterEnum(String label)
|
||||
{
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.cmis.EnumLabel#label()
|
||||
*/
|
||||
public String getLabel()
|
||||
{
|
||||
return label;
|
||||
}
|
||||
|
||||
public static EnumFactory<CMISTypesFilterEnum> FACTORY = new EnumFactory<CMISTypesFilterEnum>(CMISTypesFilterEnum.class, ANY);
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Types Filter Enum
|
||||
*
|
||||
* @author davidc
|
||||
*/
|
||||
public enum CMISTypesFilterEnum implements EnumLabel
|
||||
{
|
||||
DOCUMENTS("documents"),
|
||||
FOLDERS("folders"),
|
||||
POLICIES("policies"),
|
||||
ANY("any");
|
||||
|
||||
|
||||
private String label;
|
||||
|
||||
/**
|
||||
* Construct
|
||||
*
|
||||
* @param label
|
||||
*/
|
||||
CMISTypesFilterEnum(String label)
|
||||
{
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.alfresco.cmis.EnumLabel#label()
|
||||
*/
|
||||
public String getLabel()
|
||||
{
|
||||
return label;
|
||||
}
|
||||
|
||||
public static EnumFactory<CMISTypesFilterEnum> FACTORY = new EnumFactory<CMISTypesFilterEnum>(CMISTypesFilterEnum.class, ANY);
|
||||
}
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Updatability Enum
|
||||
*
|
||||
|
@@ -18,6 +18,9 @@
|
||||
*/
|
||||
package org.alfresco.cmis;
|
||||
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* CMIS Versioning State Enumeration.
|
||||
*
|
||||
|
@@ -1,154 +0,0 @@
|
||||
/*
|
||||
* 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.cmis;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
|
||||
/**
|
||||
* Enum Factory for managing mapping between Enum name and Enum label
|
||||
*
|
||||
* @author dcaruana
|
||||
*
|
||||
* @param <E>
|
||||
*/
|
||||
public class EnumFactory<E extends Enum<E>>
|
||||
{
|
||||
private E defaultEnum;
|
||||
private Map<String, E> labelMap = new HashMap<String, E>(10);
|
||||
|
||||
/**
|
||||
* @param enumClass
|
||||
*/
|
||||
public EnumFactory(Class<E> enumClass)
|
||||
{
|
||||
this(enumClass, null, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param enumClass
|
||||
* @param defaultEnum
|
||||
*/
|
||||
public EnumFactory(Class<E> enumClass, E defaultEnum)
|
||||
{
|
||||
this(enumClass, defaultEnum, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param enumClass
|
||||
* @param defaultEnum
|
||||
* @param caseSensitive case-sensitive lookup for Enum label
|
||||
*/
|
||||
public EnumFactory(Class<E> enumClass, E defaultEnum, boolean caseSensitive)
|
||||
{
|
||||
this.defaultEnum = defaultEnum;
|
||||
|
||||
// setup label map
|
||||
labelMap = caseSensitive ? new HashMap<String, E>(10) : new TreeMap<String, E>(String.CASE_INSENSITIVE_ORDER);
|
||||
EnumSet<E> enumSet = EnumSet.allOf(enumClass);
|
||||
Iterator<E> iter = enumSet.iterator();
|
||||
while(iter.hasNext())
|
||||
{
|
||||
E e = iter.next();
|
||||
if (e instanceof EnumLabel)
|
||||
{
|
||||
labelMap.put(((EnumLabel)e).getLabel(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the default enum
|
||||
*
|
||||
* @return default enum (or null, if no default specified)
|
||||
*/
|
||||
public Enum<E> getDefaultEnum()
|
||||
{
|
||||
return defaultEnum;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the default label
|
||||
*
|
||||
* @return label of default enum (or null, if no default specified)
|
||||
*/
|
||||
public String getDefaultLabel()
|
||||
{
|
||||
return label(defaultEnum);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the label for the specified enum
|
||||
*
|
||||
* @param e enum
|
||||
* @return label (or null, if no label specified)
|
||||
*/
|
||||
public String label(E e)
|
||||
{
|
||||
if (e instanceof EnumLabel)
|
||||
{
|
||||
return ((EnumLabel)e).getLabel();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is valid label?
|
||||
*
|
||||
* @param label
|
||||
* @return true => valid, false => does not exist for this enum
|
||||
*/
|
||||
public boolean validLabel(String label)
|
||||
{
|
||||
return fromLabel(label) == null ? false : true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets enum from label
|
||||
*
|
||||
* @param label
|
||||
* @return enum (or null, if no enum has specified label)
|
||||
*/
|
||||
public E fromLabel(String label)
|
||||
{
|
||||
return labelMap.get(label);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets enum from label
|
||||
*
|
||||
* NOTE: If specified label is invalid, the default enum is returned
|
||||
*
|
||||
* @param label
|
||||
* @return enum (or default enum, if label is invalid)
|
||||
*/
|
||||
public E toEnum(String label)
|
||||
{
|
||||
E e = (label == null) ? null : fromLabel(label);
|
||||
if (e == null)
|
||||
{
|
||||
e = defaultEnum;
|
||||
}
|
||||
return e;
|
||||
}
|
||||
}
|
@@ -1,34 +0,0 @@
|
||||
/*
|
||||
* 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.cmis;
|
||||
|
||||
/**
|
||||
* Enum label (mapping from Enum name to CMIS name)
|
||||
*
|
||||
* @author davidc
|
||||
*/
|
||||
public interface EnumLabel
|
||||
{
|
||||
/**
|
||||
* Gets the enum label (as defined by CMIS)
|
||||
*
|
||||
* @return enum label
|
||||
*/
|
||||
public String getLabel();
|
||||
}
|
@@ -29,7 +29,6 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.cmis.CMISAccessControlEntry;
|
||||
import org.alfresco.cmis.CMISAccessControlFormatEnum;
|
||||
import org.alfresco.cmis.CMISAccessControlReport;
|
||||
import org.alfresco.cmis.CMISAccessControlService;
|
||||
import org.alfresco.cmis.CMISAclCapabilityEnum;
|
||||
@@ -42,6 +41,7 @@ import org.alfresco.cmis.CMISPermissionDefinition;
|
||||
import org.alfresco.cmis.CMISPermissionMapping;
|
||||
import org.alfresco.cmis.CMISTypeDefinition;
|
||||
import org.alfresco.cmis.mapping.CMISMapping;
|
||||
import org.alfresco.opencmis.CMISAccessControlFormatEnum;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.security.permissions.PermissionReference;
|
||||
import org.alfresco.repo.security.permissions.impl.AccessPermissionImpl;
|
||||
|
@@ -26,7 +26,6 @@ import java.util.Set;
|
||||
|
||||
import org.alfresco.cmis.CMISAccessControlEntriesGroupedByPrincipalId;
|
||||
import org.alfresco.cmis.CMISAccessControlEntry;
|
||||
import org.alfresco.cmis.CMISAccessControlFormatEnum;
|
||||
import org.alfresco.cmis.CMISAccessControlReport;
|
||||
import org.alfresco.cmis.CMISAccessControlService;
|
||||
import org.alfresco.cmis.CMISAclCapabilityEnum;
|
||||
@@ -37,6 +36,7 @@ import org.alfresco.cmis.CMISPermissionMapping;
|
||||
import org.alfresco.cmis.acl.CMISAccessControlServiceImpl.AccessPermissionComparator;
|
||||
import org.alfresco.cmis.mapping.BaseCMISTest;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.opencmis.CMISAccessControlFormatEnum;
|
||||
import org.alfresco.repo.security.permissions.PermissionReference;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.security.AccessPermission;
|
||||
|
@@ -18,8 +18,8 @@
|
||||
*/
|
||||
package org.alfresco.cmis.acl;
|
||||
|
||||
import org.alfresco.cmis.EnumFactory;
|
||||
import org.alfresco.cmis.EnumLabel;
|
||||
import org.alfresco.opencmis.EnumFactory;
|
||||
import org.alfresco.opencmis.EnumLabel;
|
||||
|
||||
/**
|
||||
* Part two of the allowable action key for the permission mappings
|
||||
|
@@ -195,7 +195,6 @@ public abstract class CMISAbstractDictionaryService extends AbstractLifecycleBea
|
||||
logger.debug(" Id: " + propDef.getPropertyId().getId());
|
||||
logger.debug(" Owning Type: " + propDef.getOwningType().getTypeId());
|
||||
logger.debug(" Property Accessor: " + propDef.getPropertyAccessor() + " , mappedProperty=" + propDef.getPropertyAccessor().getMappedProperty());
|
||||
logger.debug(" Property Lucene Builder: " + propDef.getPropertyLuceneBuilder());
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -30,10 +30,10 @@ import org.alfresco.cmis.CMISPropertyDefinition;
|
||||
import org.alfresco.cmis.CMISPropertyId;
|
||||
import org.alfresco.cmis.CMISTypeDefinition;
|
||||
import org.alfresco.cmis.CMISUpdatabilityEnum;
|
||||
import org.alfresco.cmis.CMISPropertyAccessor;
|
||||
import org.alfresco.cmis.CMISPropertyLuceneBuilder;
|
||||
import org.alfresco.cmis.mapping.AbstractProperty;
|
||||
import org.alfresco.cmis.mapping.CMISMapping;
|
||||
import org.alfresco.opencmis.dictionary.CMISPropertyAccessor;
|
||||
import org.alfresco.opencmis.dictionary.CMISPropertyLuceneBuilder;
|
||||
import org.alfresco.repo.dictionary.IndexTokenisationMode;
|
||||
import org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint;
|
||||
import org.alfresco.repo.dictionary.constraint.NumericRangeConstraint;
|
||||
|
@@ -21,8 +21,8 @@ package org.alfresco.cmis.mapping;
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.alfresco.cmis.CMISPropertyAccessor;
|
||||
import org.alfresco.cmis.CMISPropertyLuceneBuilder;
|
||||
import org.alfresco.opencmis.dictionary.CMISPropertyAccessor;
|
||||
import org.alfresco.opencmis.dictionary.CMISPropertyLuceneBuilder;
|
||||
import org.alfresco.repo.search.impl.lucene.LuceneFunction;
|
||||
import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
|
||||
import org.alfresco.repo.search.impl.querymodel.PredicateMode;
|
||||
|
@@ -27,7 +27,6 @@ import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.alfresco.cmis.CMISAccessControlFormatEnum;
|
||||
import org.alfresco.cmis.CMISAccessControlService;
|
||||
import org.alfresco.cmis.CMISActionEvaluator;
|
||||
import org.alfresco.cmis.CMISAllowedActionEnum;
|
||||
@@ -39,6 +38,7 @@ import org.alfresco.cmis.CMISServices;
|
||||
import org.alfresco.cmis.CMISTypeId;
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.opencmis.CMISAccessControlFormatEnum;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.dictionary.AspectDefinition;
|
||||
import org.alfresco.service.cmr.dictionary.AssociationDefinition;
|
||||
|
@@ -453,5 +453,4 @@ public class CmisFunctionEvaluationContext implements FunctionEvaluationContext
|
||||
return propDef.getCardinality() == CMISCardinalityEnum.MULTI_VALUED;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user