/* * Copyright (C) 2009 eXo Platform SAS. * * This 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 2.1 of * the License, or (at your option) any later version. * * This software 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 this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.services.jcr.impl; import org.exoplatform.services.jcr.datamodel.IllegalPathException; import org.exoplatform.services.jcr.datamodel.InternalQName; import org.exoplatform.services.jcr.datamodel.QPath; import org.exoplatform.services.log.ExoLogger; import org.exoplatform.services.log.Log; /** * Created by The eXo Platform SAS. * * @author <a href="mailto:geaz@users.sourceforge.net">Gennady Azarenkov</a> * @version $Id: Constants.java 13986 2008-05-08 10:48:43Z pnedonosko $ */ public class Constants { private static final Log LOG = ExoLogger.getLogger("exo.jcr.component.core.Constants"); /** * Default namespace prefix (empty uri). */ public static final String NS_EMPTY_PREFIX = ""; /** * Default namespace URI (empty). */ public static final String NS_DEFAULT_URI = ""; /** * Namespace prefix used for XMLSchema Instance. */ public static final String NS_XSI_PREFIX = "xsi"; /** * The namespace URI for XMLSchema Instance. */ public static final String NS_XSI_URI = "http://www.w3.org/2001/XMLSchema-instance"; /** * Reserved namespace for exo node types. */ public static final String NS_EXO_PREFIX = "exo"; /** * Reserved namespace URI for exo node types. */ public static final String NS_EXO_URI = "http://www.exoplatform.com/jcr/exo/1.0"; /** * Reserved namespace for items defined by built-in node types. */ public static final String NS_JCR_PREFIX = "jcr"; /** * Reserved namespace URI for items defined by built-in node types. */ public static final String NS_JCR_URI = "http://www.jcp.org/jcr/1.0"; /** * Reserved namespace for built-in primary node types. */ public static final String NS_NT_PREFIX = "nt"; /** * Reserved namespace URI for built-in primary node types. */ public static final String NS_NT_URI = "http://www.jcp.org/jcr/nt/1.0"; /** * Reserved namespace for built-in mixin node types. */ public static final String NS_MIX_PREFIX = "mix"; /** * Reserved namespace URI for built-in mixin node types. */ public static final String NS_MIX_URI = "http://www.jcp.org/jcr/mix/1.0"; /** * Reserved namespace used in the system view XML serialization format. */ public static final String NS_SV_PREFIX = "sv"; /** * Reserved namespace URI used in the system view XML serialization format. */ public static final String NS_SV_URI = "http://www.jcp.org/jcr/sv/1.0"; /** * Reserved namespaces that must not be redefined and should not be used. */ public static final String NS_XML_PREFIX = "xml"; /** * Reserved namespaces URI that must not be redefined and should not be used. */ public static final String NS_XML_URI = "http://www.w3.org/XML/1998/namespace"; // public static final String NS_XMLNS_PREFIX = "xmlns"; // public static final String NS_XMLNS_URI = "http://www.w3.org/2000/xmlns/"; // public static final String NS_XS_URI = "http://www.w3.org/2001/XMLSchema"; // public static final String NS_FN_URI = "http://www.w3.org/2004/10/xpath-functions"; /** * Default JCR name (empty). */ public static final InternalQName JCR_DEFAULT_NAME = new InternalQName(NS_DEFAULT_URI, ""); /** * The special wildcard name used as the name of residual item definitions. */ public static final InternalQName JCR_ANY_NAME = new InternalQName("", "*"); /** * Reserved namespace for exo node types (Portal/ECM). */ public static final String NS_REP_PREFIX = "rep"; /** * Reserved namespace URI for exo node types (Portal/ECM). */ public static final String NS_REP_URI = "internal"; /** * jcr:primaryType internal name. */ public static final InternalQName JCR_PRIMARYTYPE = new InternalQName(NS_JCR_URI, "primaryType"); /** * jcr:system internal name. */ public static final InternalQName JCR_SYSTEM = new InternalQName(NS_JCR_URI, "system"); /** * jcr:mixinTypes internal name. */ public static final InternalQName JCR_MIXINTYPES = new InternalQName(NS_JCR_URI, "mixinTypes"); /** * jcr:uuid internal name. */ public static final InternalQName JCR_UUID = new InternalQName(NS_JCR_URI, "uuid"); /** * jcr:frozenUuid internal name. */ public static final InternalQName JCR_FROZENUUID = new InternalQName(NS_JCR_URI, "frozenUuid"); /** * jcr:frozenNode internal name. */ public static final InternalQName JCR_FROZENNODE = new InternalQName(NS_JCR_URI, "frozenNode"); /** * jcr:path internal name. */ public static final InternalQName JCR_PATH = new InternalQName(NS_JCR_URI, "path"); /** * jcr:versionHistory internal name. */ public static final InternalQName JCR_VERSIONHISTORY = new InternalQName(NS_JCR_URI, "versionHistory"); /** * jcr:childVersionHistory internal name. */ public static final InternalQName JCR_CHILDVERSIONHISTORY = new InternalQName(NS_JCR_URI, "childVersionHistory"); /** * jcr:baseVersion internal name. */ public static final InternalQName JCR_BASEVERSION = new InternalQName(NS_JCR_URI, "baseVersion"); /** * jcr:isCheckedOut internal name. */ public static final InternalQName JCR_ISCHECKEDOUT = new InternalQName(NS_JCR_URI, "isCheckedOut"); /** * jcr:versionLabels internal name. */ public static final InternalQName JCR_VERSIONLABELS = new InternalQName(NS_JCR_URI, "versionLabels"); /** * jcr:versionStorage internal name. */ public static final InternalQName JCR_VERSIONSTORAGE = new InternalQName(NS_JCR_URI, "versionStorage"); /** * jcr:versionableUuid internal name. */ public static final InternalQName JCR_VERSIONABLEUUID = new InternalQName(NS_JCR_URI, "versionableUuid"); /** * jcr:predecessors internal name. */ public static final InternalQName JCR_PREDECESSORS = new InternalQName(NS_JCR_URI, "predecessors"); /** * jcr:rootVersion internal name. */ public static final InternalQName JCR_ROOTVERSION = new InternalQName(NS_JCR_URI, "rootVersion"); /** * jcr:created internal name. */ public static final InternalQName JCR_CREATED = new InternalQName(NS_JCR_URI, "created"); /** * jcr:mimeType internal name. */ public static final InternalQName JCR_MIMETYPE = new InternalQName(NS_JCR_URI, "mimeType"); /** * jcr:encoding internal name. */ public static final InternalQName JCR_ENCODING = new InternalQName(NS_JCR_URI, "encoding"); /** * jcr:content internal name. */ public static final InternalQName JCR_CONTENT = new InternalQName(NS_JCR_URI, "content"); /** * jcr:content internal name. */ public static final InternalQName JCR_XMLTEXT = new InternalQName(NS_JCR_URI, "xmltext"); /** * jcr:xmlcharacters internal name. */ public static final InternalQName JCR_XMLCHARACTERS = new InternalQName(NS_JCR_URI, "xmlcharacters"); /** * jcr:score internal name. */ public static final InternalQName JCR_SCORE = new InternalQName(NS_JCR_URI, "score"); /** * jcr:nodeTypeName internal name. */ public static final InternalQName JCR_NODETYPENAME = new InternalQName(NS_JCR_URI, "nodeTypeName"); /** * jcr:isMixin internal name. */ public static final InternalQName JCR_ISMIXIN = new InternalQName(NS_JCR_URI, "isMixin"); /** * jcr:hasOrderableChildNodes internal name. */ public static final InternalQName JCR_HASORDERABLECHILDNODES = new InternalQName(NS_JCR_URI, "hasOrderableChildNodes"); /** * jcr:primaryItemName internal name. */ public static final InternalQName JCR_PRIMARYITEMNAME = new InternalQName(NS_JCR_URI, "primaryItemName"); /** * jcr:frozenNode internal name. */ public static final InternalQName JCR_SUPERTYPES = new InternalQName(NS_JCR_URI, "supertypes"); /** * jcr:supertypes internal name. */ public static final InternalQName JCR_PROPERTYDEFINITION = new InternalQName(NS_JCR_URI, "propertyDefinition"); /** * jcr:childNodeDefinition internal name. */ public static final InternalQName JCR_CHILDNODEDEFINITION = new InternalQName(NS_JCR_URI, "childNodeDefinition"); /** * jcr:name internal name. */ public static final InternalQName JCR_NAME = new InternalQName(NS_JCR_URI, "name"); /** * jcr:autoCreated internal name. */ public static final InternalQName JCR_AUTOCREATED = new InternalQName(NS_JCR_URI, "autoCreated"); /** * jcr:protected internal name. */ public static final InternalQName JCR_PROTECTED = new InternalQName(NS_JCR_URI, "protected"); /** * jcr:multiple internal name. */ public static final InternalQName JCR_MULTIPLE = new InternalQName(NS_JCR_URI, "multiple"); /** * jcr:onParentVersion internal name. */ public static final InternalQName JCR_ONPARENTVERSION = new InternalQName(NS_JCR_URI, "onParentVersion"); /** * jcr:mandatory internal name. */ public static final InternalQName JCR_MANDATORY = new InternalQName(NS_JCR_URI, "mandatory"); /** * jcr:requiredType internal name. */ public static final InternalQName JCR_REQUIREDTYPE = new InternalQName(NS_JCR_URI, "requiredType"); /** * jcr:requiredType internal name. */ public static final InternalQName JCR_VALUECONSTRAINTS = new InternalQName(NS_JCR_URI, "valueConstraints"); /** * jcr:defaultValues internal name. */ public static final InternalQName JCR_DEFAULTVALUES = new InternalQName(NS_JCR_URI, "defaultValues"); /** * jcr:requiredPrimaryTypes internal name. */ public static final InternalQName JCR_REQUIREDPRIMARYTYPES = new InternalQName(NS_JCR_URI, "requiredPrimaryTypes"); /** * jcr:sameNameSiblings internal name. */ public static final InternalQName JCR_SAMENAMESIBLINGS = new InternalQName(NS_JCR_URI, "sameNameSiblings"); /** * jcr:defaultPrimaryType internal name. */ public static final InternalQName JCR_DEFAULTPRIMNARYTYPE = new InternalQName(NS_JCR_URI, "defaultPrimaryType"); /** * jcr:mergeFailed internal name. */ public static final InternalQName JCR_MERGEFAILED = new InternalQName(NS_JCR_URI, "mergeFailed"); /** * jcr:lockOwner internal name. */ public static final InternalQName JCR_LOCKOWNER = new InternalQName(NS_JCR_URI, "lockOwner"); /** * jcr:lockIsDeep internal name. */ public static final InternalQName JCR_LOCKISDEEP = new InternalQName(NS_JCR_URI, "lockIsDeep"); /** * jcr:nodetypes internal name. */ public static final InternalQName JCR_NODETYPES = new InternalQName(NS_JCR_URI, "nodetypes"); /** * jcr:frozenPrimaryType internal name. */ public static final InternalQName JCR_FROZENPRIMARYTYPE = new InternalQName(NS_JCR_URI, "frozenPrimaryType"); /** * jcr:frozenMixinTypes internal name. */ public static final InternalQName JCR_FROZENMIXINTYPES = new InternalQName(NS_JCR_URI, "frozenMixinTypes"); /** * jcr:successors internal name. */ public static final InternalQName JCR_SUCCESSORS = new InternalQName(NS_JCR_URI, "successors"); /** * jcr:language internal name. */ public static final InternalQName JCR_LANGUAGE = new InternalQName(NS_JCR_URI, "language"); /** * jcr:statement internal name. */ public static final InternalQName JCR_STATEMENT = new InternalQName(NS_JCR_URI, "statement"); /** * jcr:data internal name. */ public static final InternalQName JCR_DATA = new InternalQName(NS_JCR_URI, "data"); /** * jcr:lastModified internal name. */ public static final InternalQName JCR_LASTMODIFIED = new InternalQName(NS_JCR_URI, "lastModified"); /** * nt:base internal name. */ public static final InternalQName NT_BASE = new InternalQName(NS_NT_URI, "base"); /** * mix:referenceable internal name. */ public static final InternalQName MIX_REFERENCEABLE = new InternalQName(NS_MIX_URI, "referenceable"); /** * mix:versionable internal name. */ public static final InternalQName MIX_VERSIONABLE = new InternalQName(NS_MIX_URI, "versionable"); /** * mix:lockable internal name. */ public static final InternalQName MIX_LOCKABLE = new InternalQName(NS_MIX_URI, "lockable"); /** * nt:versionHistory internal name. */ public static final InternalQName NT_VERSIONHISTORY = new InternalQName(NS_NT_URI, "versionHistory"); /** * nt:versionLabels internal name. */ public static final InternalQName NT_VERSIONLABELS = new InternalQName(NS_NT_URI, "versionLabels"); /** * nt:version internal name. */ public static final InternalQName NT_VERSION = new InternalQName(NS_NT_URI, "version"); /** * nt:frozenNode internal name. */ public static final InternalQName NT_FROZENNODE = new InternalQName(NS_NT_URI, "frozenNode"); /** * nt:unstructured internal name. */ public static final InternalQName NT_UNSTRUCTURED = new InternalQName(NS_NT_URI, "unstructured"); /** * nt:resource internal name. */ public static final InternalQName NT_RESOURCE = new InternalQName(NS_NT_URI, "resource"); /** * nt:nodeType internal name. */ public static final InternalQName NT_NODETYPE = new InternalQName(NS_NT_URI, "nodeType"); /** * nt:propertyDefinition internal name. */ public static final InternalQName NT_PROPERTYDEFINITION = new InternalQName(NS_NT_URI, "propertyDefinition"); /** * nt:childNodeDefinition internal name. */ public static final InternalQName NT_CHILDNODEDEFINITION = new InternalQName(NS_NT_URI, "childNodeDefinition"); /** * nt:hierarchyNode internal name. */ public static final InternalQName NT_HIERARCHYNODE = new InternalQName(NS_NT_URI, "hierarchyNode"); /** * nt:versionedChild internal name. */ public static final InternalQName NT_VERSIONEDCHILD = new InternalQName(NS_NT_URI, "versionedChild"); /** * nt:query internal name. */ public static final InternalQName NT_QUERY = new InternalQName(NS_NT_URI, "query"); /** * nt:file internal name. */ public static final InternalQName NT_FILE = new InternalQName(NS_NT_URI, "file"); /** * nt:folder internal name. */ public static final InternalQName NT_FOLDER = new InternalQName(NS_NT_URI, "folder"); /** * Workspace root node URI. */ public static final String ROOT_URI = "[]:1"; /** * Workspace root node virtual parent node UUID. */ public static final String ROOT_PARENT_UUID = " ".intern(); // empty /** * Workspace root node virtual parent node name. */ public static final String ROOT_PARENT_NAME = "__root_parent"; /** * Workspace root node virtual container name. */ public static final String ROOT_PARENT_CONAINER_NAME = "__root_parent_container"; /** * Workspace root node UUID. */ public static final String ROOT_UUID = "00exo0jcr0root0uuid0000000000000"; /** * /jcr:system UUID. */ public static final String SYSTEM_UUID = "00exo0jcr0system0uuid00000000000"; /** * /jcr:system/jcr:versionStorage UUID. */ public static final String VERSIONSTORAGE_UUID = "00exo0jcr0version0storage0uuid00"; /** * /jcr:system/jcr:nodetypes UUID. */ public static final String NODETYPESROOT_UUID = "00exo0jcr0node0types0root0uuid00"; /** * JCR base URI. */ public static final String JCR_URI = "[http://www.jcp.org/jcr/1.0]"; /** * jcr:primaryType URI. */ public static final String PRIMARY_TYPE_URI = "[http://www.jcp.org/jcr/1.0]primaryType"; /** * jcr:mixinTypes URI. */ public static final String MIXIN_TYPE_URI = "[http://www.jcp.org/jcr/1.0]mixinTypes"; public static final String ACCESS_TYPE_URI = "[http://www.exoplatform.com/jcr/exo/1.0]accessControllable"; public static final String PRIVILEGABLE_TYPE_URI = "[http://www.exoplatform.com/jcr/exo/1.0]privilegeable"; public static final String JCR_VERSION_STORAGE_URI = "[]:1[http://www.jcp.org/jcr/1.0]system:1[http://www.jcp.org/jcr/1.0]versionStorage:1"; public static final String JCR_NODETYPES_URI = "[]:1[http://www.jcp.org/jcr/1.0]system:1[http://www.jcp.org/jcr/1.0]nodetypes:1"; public static final String JCR_SYSTEM_URI = "[]:1[http://www.jcp.org/jcr/1.0]system:1"; public static final InternalQName EXO_NAMESPACE = new InternalQName(NS_EXO_URI, "namespace"); public static final InternalQName EXO_NAMESPACES = new InternalQName(NS_EXO_URI, "namespaces"); public static final InternalQName EXO_URI_NAME = new InternalQName(NS_EXO_URI, "uri"); public static final InternalQName EXO_PREFIX = new InternalQName(NS_EXO_URI, "prefix"); public static final InternalQName EXO_VERSIONSTORAGE = new InternalQName(NS_EXO_URI, "versionStorage"); public static final InternalQName EXO_ACCESS_CONTROLLABLE = new InternalQName(NS_EXO_URI, "accessControllable"); public static final InternalQName EXO_OWNEABLE = new InternalQName(NS_EXO_URI, "owneable"); public static final InternalQName EXO_PRIVILEGEABLE = new InternalQName(NS_EXO_URI, "privilegeable"); public static final InternalQName EXO_OWNER = new InternalQName(NS_EXO_URI, "owner"); public static final InternalQName EXO_PERMISSIONS = new InternalQName(NS_EXO_URI, "permissions"); // -------- system view name constants /** * SV_NODE. */ public static final String SV_NODE = "node"; /** * SV_VERSION_HISTORY. */ public static final String SV_VERSION_HISTORY = "versionhistory"; /** * SV_PROPERTY. */ public static final String SV_PROPERTY = "property"; /** * SV_VALUE. */ public static final String SV_VALUE = "value"; /** * SV_TYPE. */ public static final String SV_TYPE = "type"; /** * SV_NAME. */ public static final String SV_NAME = "name"; /** * EXO_ID. */ public static final String EXO_ID = "id"; /** * EXO_MULTIVALUED. */ public static final String EXO_MULTIVALUED = "multivalued"; /** * sv:node internal name. */ public static final InternalQName SV_NODE_NAME = new InternalQName(NS_SV_URI, SV_NODE); /** * sv:versionhistory internal name. */ public static final InternalQName SV_VERSION_HISTORY_NAME = new InternalQName(NS_SV_URI, SV_VERSION_HISTORY); /** * sv:property internal name. */ public static final InternalQName SV_PROPERTY_NAME = new InternalQName(NS_SV_URI, SV_PROPERTY); /** * sv:value internal name. */ public static final InternalQName SV_VALUE_NAME = new InternalQName(NS_SV_URI, SV_VALUE); /** * sv:type internal name. */ public static final InternalQName SV_TYPE_NAME = new InternalQName(NS_SV_URI, SV_TYPE); /** * sv:name internal name. */ public static final InternalQName SV_NAME_NAME = new InternalQName(NS_SV_URI, SV_NAME); /** * xsi:type internal name */ public static final InternalQName XSI_TYPE_NAME = new InternalQName(NS_XSI_URI, "type"); /** * exo:id internal name. */ public static final InternalQName EXO_ID_NAME = new InternalQName(NS_EXO_URI, EXO_ID); /** * /jcr:system/jcr:versionStorage internal path. */ public static QPath JCR_VERSION_STORAGE_PATH; /** * /jcr:system/jcr:nodetypes internal path. */ public static QPath JCR_NODETYPES_PATH; /** * /jcr:system internal path. */ public static QPath JCR_SYSTEM_PATH; /** * /jcr:system/exo:namespaces internal path. */ public static QPath EXO_NAMESPACES_PATH; /** * Workspace root node path. */ public static QPath ROOT_PATH; /** * Chars quantity in a UUID String. */ public static final int UUID_UNFORMATTED_LENGTH = 32; /** * Chars quantity in a UUID String. */ public static final int UUID_FORMATTED_LENGTH = 32; /** * eXo JCR default Strings encoding. */ public static final String DEFAULT_ENCODING = "UTF-8"; /** * System identifier for remote workspace initializer changes. */ public static final String JCR_CORE_RESTORE_WORKSPACE_INITIALIZER_SYSTEM_ID = "JCR_CORE_RESOTRE_WORKSPACE_INITIALIZER_SYSTEM_ID"; /** * "unknown" constant. */ public static final String UNKNOWN = "unknown"; static { try { JCR_SYSTEM_PATH = QPath.parse(JCR_SYSTEM_URI); } catch (IllegalPathException e) { LOG.error("ERROR: Can't parse JCR_SYSTEM_URI for constant JCR_SYSTEM (" + JCR_SYSTEM_URI + "): " + e, e); } try { JCR_VERSION_STORAGE_PATH = QPath.parse(JCR_VERSION_STORAGE_URI); } catch (IllegalPathException e) { LOG.error("ERROR: Can't parse JCR_VERSION_STORAGE_URI for constant JCR_VERSION_STORAGE_PATH (" + JCR_VERSION_STORAGE_URI + "): " + e, e); } try { JCR_NODETYPES_PATH = QPath.parse(JCR_NODETYPES_URI); } catch (IllegalPathException e) { LOG.error("ERROR: Can't parse JCR_NODETYPES_URI for constant JCR_NODETYPES_PATH (" + JCR_NODETYPES_URI + "): " + e, e); } String nsUri = JCR_SYSTEM_URI + EXO_NAMESPACES.getAsString() + ":1"; try { EXO_NAMESPACES_PATH = QPath.parse(nsUri); } catch (IllegalPathException e) { LOG.error("ERROR: Can't parse EXO_NAMESPACES_URI for constant EXO_NAMESPACES (" + nsUri + "): " + e, e); } try { ROOT_PATH = QPath.parse(ROOT_URI); } catch (IllegalPathException e) { LOG.error("ERROR: Can't parse ROOT_URI " + e, e); } } }