You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by je...@apache.org on 2011/11/02 09:49:46 UTC

svn commit: r1196504 [1/7] - in /chemistry/playground/moreq2010/moreq2010: main/ main/java/ main/java/org/ main/java/org/apache/ main/java/org/apache/chemistry/ main/java/org/apache/chemistry/moreq2010/ main/java/org/apache/chemistry/moreq2010/util/ ma...

Author: jens
Date: Wed Nov  2 08:49:45 2011
New Revision: 1196504

URL: http://svn.apache.org/viewvc?rev=1196504&view=rev
Log:
Create initial set of files

Added:
    chemistry/playground/moreq2010/moreq2010/main/
    chemistry/playground/moreq2010/moreq2010/main/java/
    chemistry/playground/moreq2010/moreq2010/main/java/org/
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/CmisClient.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/Constants.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/Dump.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/EntityDescription.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/FunctionDescription.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/Main.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/ModuleDescription.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/MoreqParserCallback.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/MoreqXmlParser.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/ParserCallbackFactory.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/PropertyDescription.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/ServiceDescription.java
    chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/Validator.java
    chemistry/playground/moreq2010/moreq2010/main/resources/
    chemistry/playground/moreq2010/moreq2010/main/resources/core_services.xsd
    chemistry/playground/moreq2010/moreq2010/main/resources/electronic_components.xsd
    chemistry/playground/moreq2010/moreq2010/main/resources/export.xsd
    chemistry/playground/moreq2010/moreq2010/main/resources/hierarchical_classification.xsd
    chemistry/playground/moreq2010/moreq2010/main/resources/log4j.properties
    chemistry/playground/moreq2010/moreq2010/main/resources/types.xml
    chemistry/playground/moreq2010/moreq2010/test/
    chemistry/playground/moreq2010/moreq2010/test/resources/
    chemistry/playground/moreq2010/moreq2010/test/resources/example1.xml
    chemistry/playground/moreq2010/moreq2010/test/resources/example2.xml

Added: chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/CmisClient.java
URL: http://svn.apache.org/viewvc/chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/CmisClient.java?rev=1196504&view=auto
==============================================================================
--- chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/CmisClient.java (added)
+++ chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/CmisClient.java Wed Nov  2 08:49:45 2011
@@ -0,0 +1,545 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.moreq2010.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.apache.chemistry.moreq2010.jaxb.AggregationTYPE;
+import org.apache.chemistry.moreq2010.jaxb.ClassTYPE;
+import org.apache.chemistry.moreq2010.jaxb.ComplianceTYPE;
+import org.apache.chemistry.moreq2010.jaxb.ComponentTYPE;
+import org.apache.chemistry.moreq2010.jaxb.ComponentsTYPE;
+import org.apache.chemistry.moreq2010.jaxb.ContextualdefinitionTYPE;
+import org.apache.chemistry.moreq2010.jaxb.DisposalholdTYPE;
+import org.apache.chemistry.moreq2010.jaxb.DisposalscheduleTYPE;
+import org.apache.chemistry.moreq2010.jaxb.DuplicatesTYPE;
+import org.apache.chemistry.moreq2010.jaxb.ElectronicComponent;
+import org.apache.chemistry.moreq2010.jaxb.EventTYPE;
+import org.apache.chemistry.moreq2010.jaxb.Export;
+import org.apache.chemistry.moreq2010.jaxb.GroupTYPE;
+import org.apache.chemistry.moreq2010.jaxb.RecordTYPE;
+import org.apache.chemistry.moreq2010.jaxb.RoleTYPE;
+import org.apache.chemistry.moreq2010.jaxb.TemplateTYPE;
+import org.apache.chemistry.moreq2010.jaxb.TextualTYPE;
+import org.apache.chemistry.moreq2010.jaxb.TitularTYPE;
+import org.apache.chemistry.moreq2010.jaxb.UserTYPE;
+import org.apache.chemistry.opencmis.client.api.Folder;
+import org.apache.chemistry.opencmis.client.api.ItemIterable;
+import org.apache.chemistry.opencmis.client.api.ObjectId;
+import org.apache.chemistry.opencmis.client.api.QueryResult;
+import org.apache.chemistry.opencmis.client.api.Session;
+import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
+import org.apache.chemistry.opencmis.commons.PropertyIds;
+import org.apache.chemistry.opencmis.commons.SessionParameter;
+import org.apache.chemistry.opencmis.commons.data.ContentStream;
+import org.apache.chemistry.opencmis.commons.enums.BindingType;
+import org.apache.chemistry.opencmis.commons.enums.VersioningState;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class CmisClient implements MoreqParserCallback {
+        
+    private static int INDENT_WIDTH = 2;
+    static final Log LOG = LogFactory.getLog(CmisClient.class);
+    public static final String PROPERTY_PREFIX = "cmis.";
+    public static final String SYSPROP_URL = PROPERTY_PREFIX + "url";
+    public static final String SYSPROP_BINDING = PROPERTY_PREFIX + "binding";
+    public static final String SYSPROP_AUTHENTICATION = PROPERTY_PREFIX + "authentication";
+    public static final String SYSPROP_COMPRESSION = PROPERTY_PREFIX + "compression";
+    public static final String SYSPROP_CLIENTCOMPRESSION = PROPERTY_PREFIX + "clientcompression";
+    public static final String SYSPROP_COOKIES = PROPERTY_PREFIX + "cookies";
+    public static final String SYSPROP_USER = PROPERTY_PREFIX + "user";
+    public static final String SYSPROP_PASSWORD = PROPERTY_PREFIX + "password";
+    public static final String SYSPROP_REPOSITORY = PROPERTY_PREFIX + "repository";
+
+    PrintWriter out;
+    Session session;
+
+    public CmisClient() {
+        out =  new PrintWriter(System.out, true);
+    }
+
+    public CmisClient(Writer writer) {
+        out =  new PrintWriter(writer, true);
+    }
+    
+    @Override
+    public void init() {
+ 
+//        String url = System.getProperty(SYSPROP_URL, "http://localhost:8080/inmemory/atom"); 
+        String url = System.getProperty(SYSPROP_URL, "http://localhost:8080/inmemory/services/RepositoryService?wsdl");
+        BindingType binding;
+        String username = System.getProperty(SYSPROP_USER, "user");        
+        String password = System.getProperty(SYSPROP_PASSWORD, "user");
+        boolean compression = !(System.getProperty(SYSPROP_COMPRESSION, "on").equalsIgnoreCase("off"));
+        boolean clientCompression = (System.getProperty(SYSPROP_CLIENTCOMPRESSION, "off").equalsIgnoreCase("on"));
+        boolean cookies = (System.getProperty(SYSPROP_COOKIES, "off").equalsIgnoreCase("on"));
+        String repositoryId = System.getProperty(SYSPROP_REPOSITORY, "A1");
+        
+        if (System.getProperty(SYSPROP_BINDING, "webservice").toLowerCase().charAt(0) == 'a')
+            binding = BindingType.ATOMPUB;
+        else
+            binding = BindingType.WEBSERVICES;
+        
+        Map<String, String> parameters = new LinkedHashMap<String, String>();
+        parameters.put(SessionParameter.USER, username);
+        parameters.put(SessionParameter.PASSWORD, password);
+        parameters.put(SessionParameter.REPOSITORY_ID, repositoryId);
+        
+        if (binding == BindingType.WEBSERVICES) {
+            parameters.put(SessionParameter.BINDING_TYPE, BindingType.WEBSERVICES.value());
+            parameters.put(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE, url);
+            parameters.put(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE, url);
+            parameters.put(SessionParameter.WEBSERVICES_OBJECT_SERVICE, url);
+            parameters.put(SessionParameter.WEBSERVICES_VERSIONING_SERVICE, url);
+            parameters.put(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE, url);
+            parameters.put(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE, url);
+            parameters.put(SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE, url);
+            parameters.put(SessionParameter.WEBSERVICES_ACL_SERVICE, url);
+            parameters.put(SessionParameter.WEBSERVICES_POLICY_SERVICE, url);
+        } else {
+            parameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
+            parameters.put(SessionParameter.ATOMPUB_URL, url);
+        }
+        
+        if (compression)
+            parameters.put(SessionParameter.COMPRESSION, "true");
+
+        if (clientCompression)
+            parameters.put(SessionParameter.CLIENT_COMPRESSION, "true");
+
+        if (cookies)
+            parameters.put(SessionParameter.COOKIES, "true");
+
+        LOG.debug("Connecting to repository " + url);
+        session = SessionFactoryImpl.newInstance().createSession(parameters);
+        LOG.debug("Connection succeeded ");
+//        List<Repository> repositories = SessionFactoryImpl.newInstance().getRepositories(parameters);
+//        int index = findRepository(repositories, repositoryId);
+//        session = repositories.get(index).createSession();
+    }
+    
+//    private int findRepository(List<Repository> repositories, String repositoryId) {
+//        int i = 0;
+//        for (Repository repository: repositories) {
+//            if (repository.getId().equals(repositoryId))
+//                return i;
+//        }
+//        return 0;
+//    }
+
+    @Override
+    public Object[] getContext() {
+        return new Object[] { new Integer(0) };
+    }
+
+    /**
+     * Print information about the export object to System.out
+     * @param export
+     */
+    @Override
+    public void onExportBegin(Export export, Object... context) {
+
+        out.println();
+        out.println();
+        out.println("*********************************************************************** ");
+        out.println("Dumping information about XML file.");
+        out.println();
+
+        out.println("Export commencing: " + dump(export.getExportCommencing()));
+        out.println("Export id: " + export.getExportId());
+        out.println("Export comment: " + dump(export.getExportComment()));
+        out.println();
+        out.println("Export compliance: ");
+        dump(export.getCompliance(), INDENT_WIDTH);
+        out.println();        
+        out.println("*********************************************************************** ");
+        Integer indentWidth = (Integer) context[0];
+        indentWidth += INDENT_WIDTH;
+        context[0] = indentWidth;
+    }
+
+    @Override
+    public void onExportEnd(Export export, Object... context) {
+
+        Integer indentWidth = (Integer) context[0];
+        indentWidth -= 2;
+        context[0] = INDENT_WIDTH;
+        out.println("Export completed: " + dump(export.getExportCompleted()));
+        out.println();
+        out.println("End of report ");
+        out.println("*********************************************************************** ");
+        out.println();
+
+    }
+
+    private  void dump(ComplianceTYPE compliance, int indent) {
+        if (null == compliance)
+            return;
+        out.println(ind(indent) + "implemented modules: " + compliance.getImplementsModules().getImplementsModuleId().size());
+        for (String id: compliance.getImplementsModules().getImplementsModuleId()) {
+            ModuleDescription md = ModuleDescription.getModuleInfo(id);
+            if (md == null)
+                out.println(ind(indent) + "module name UNKNOWN, id: " + id);
+            else
+                out.println(ind(indent) + "module name: " + md.getName() + " (" + md.getId() + ")");
+
+        }
+        out.println(ind(indent) + "implemented services: " + compliance.getImplementsServices().getImplementsServiceId().size());
+        for (String id: compliance.getImplementsServices().getImplementsServiceId()) {
+            ServiceDescription sd = ServiceDescription.getServiceInfo(id);
+            if (sd == null)
+                out.println(ind(indent) + "service id: UNKNOWN");
+            else
+                out.println(ind(indent) + "service name: " + sd.getName() + " (" + sd.getId() + ")");
+        }
+        out.println();
+    }
+
+
+    @Override
+    public void onAggregation(AggregationTYPE agg, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "Aggregation:");
+        out.println(ind(indent) + "Title: " + dump(agg.getTitle()));
+        out.println();
+        
+        Folder root = session.getRootFolder();
+
+        String parentId = agg.getParentAggregationId();
+        if (null == parentId)
+            parentId = root.getId();
+        else
+            parentId = findFolderBySystemId(parentId);
+        // create a CMIS folder
+        Map<String, Object> folderProps = new HashMap<String, Object>();
+        String typeId = Constants.AGGREGATION_ENTITY; // "c4bd4f18-e3f5-4dba-819d-8d58cbd0aed4";
+        folderProps.put(PropertyIds.OBJECT_TYPE_ID, typeId);
+        folderProps.put(PropertyIds.NAME, agg.getTitle().getValue());
+
+        folderProps.put(Constants.SYSTEM_IDENTIFIER, agg.getSystemId());
+        folderProps.put(Constants.CREATED_TIMESTAMP , convert(agg.getCreated()) );
+        folderProps.put(Constants.ORIGINATED_DATE_TIME , convert(agg.getOriginated()));
+        folderProps.put(Constants.FIRST_USED_TIMESTAMP , convert(agg.getFirstUsed()));
+        folderProps.put(Constants.LAST_ADDITION_TIMESTAMP , convert(agg.getLastAddition()));
+        folderProps.put(Constants.CLASS_IDENTIFIER , agg.getClassId() );
+        folderProps.put(Constants.TITLE , agg.getTitle().getValue() );
+        folderProps.put(Constants.DESCRIPTION , agg.getDescription().getValue() );
+        folderProps.put(Constants.CLOSED_TIMESTAMP , convert(agg.getClosed()));
+        folderProps.put(Constants.DESTROYED_TIMESTAMP , convert(agg.getDestroyed()));
+        folderProps.put(Constants.MAX_LEVELS_OF_AGGREGATION , agg.getMaxLevelsOfAggregation() );
+        folderProps.put(Constants.PARENT_AGGREGATION_IDENTIFIER , agg.getParentAggregationId() );
+        folderProps.put(Constants.AGGREGATED_TIMESTAMP , convert(agg.getAggregated()) );
+        Folder record = root.createFolder(folderProps);
+        LOG.debug("Folder created with id: " + record.getId());
+        
+        String newId = findFolderBySystemId(agg.getSystemId());
+        LOG.debug("Folder found by query with id: " + newId);
+    }
+
+
+    @Override
+    public void onRecord(RecordTYPE record, Object... context) {
+        int indent = (Integer) context[0];
+        LOG.debug(ind(indent) + "Record:");
+        LOG.debug(ind(indent) + "Title: " + dump(record.getTitle()));
+        LOG.debug(ind(indent) + "System Id: " + record.getSystemId());
+        
+        ContentStream contentStream = null;
+
+        String parentId = record.getParentAggregationId();
+        if (null == parentId)
+            parentId = session.getRootFolder().getId();
+        else
+            parentId = findFolderBySystemId(parentId);
+
+        // create a CMIS document
+        Map<String, Object> properties = new HashMap<String, Object>();
+        String typeId = Constants.RECORD_ENTITY; 
+        properties.put(PropertyIds.OBJECT_TYPE_ID, typeId);
+        properties.put(PropertyIds.NAME, convertToId(record.getTitle().getValue()));
+        properties.put(Constants.SYSTEM_IDENTIFIER, record.getSystemId());
+        properties.put(Constants.CREATED_TIMESTAMP , convert(record.getCreated()) );
+        properties.put(Constants.ORIGINATED_DATE_TIME , convert(record.getOriginated()));
+        properties.put(Constants.CLASS_IDENTIFIER , record.getClassId() );
+        if (record.getTitle() != null)
+            properties.put(Constants.TITLE , record.getTitle().getValue() );
+        if (record.getDescription() != null)
+            properties.put(Constants.DESCRIPTION , record.getDescription().getValue() );
+        properties.put(Constants.DESTROYED_TIMESTAMP , convert(record.getDestroyed()));
+        properties.put(Constants.PARENT_AGGREGATION_IDENTIFIER , record.getParentAggregationId() );
+        properties.put(Constants.AGGREGATED_TIMESTAMP , convert(record.getAggregated()) );
+        
+        properties.put(Constants.DISPOSAL_SCHEDULE_IDENTIFIER , record.getDisposalScheduleId());
+        properties.put(Constants.DISPOSAL_ACTION_DUE_DATE , convert(record.getDisposalActionDue()));
+        properties.put(Constants.DISPOSAL_CONFIRMATION_DUE_DATE, convert(record.getDisposalConfirmationDue()));
+        properties.put(Constants.DISPOSAL_OVERDUE_ALERT_TIMESTAMP, convert(record.getDisposalOverdueAlert()));
+        properties.put(Constants.LAST_REVIEWED_TIMESTAMP, convert(record.getLastReviewed()));
+        if (record.getLastReviewedComment() != null)
+            properties.put(Constants.LAST_REVIEW_COMMENT , record.getLastReviewedComment().getValue());
+        properties.put(Constants.RETENTION_START_DATE , convert(record.getRetentionStart()));
+        properties.put(Constants.TRANSFERRED_TIMESTAMP , convert(record.getTransferred()));
+        properties.put(Constants.DISPOSAL_ACTION_CODE, record.getDisposalAction().toString());
+        properties.put(Constants.DISPOSAL_SCHEDULE_IDENTIFIER , record.getDisposalScheduleId());
+
+        // TODO multi-value properties:
+        DuplicatesTYPE dup = record.getDuplicates();
+        if (dup != null && !dup.getDuplicateId().isEmpty())
+            properties.put(Constants.DUPLICATE_IDENTIFIER, dup.getDuplicateId().get(0));
+
+        // Content:
+        ComponentsTYPE comps = record.getComponents();
+        if (comps != null && !comps.getComponent().isEmpty()) {
+            JAXBElement<? extends ComponentTYPE> compJax = comps.getComponent().get(0);
+            if (compJax != null) {
+                ComponentTYPE comp = compJax.getValue();
+                if (comp != null && comp instanceof ElectronicComponent) {
+                    ElectronicComponent ec = (ElectronicComponent) comp;
+                    if (ec.getContentData() != null) {
+                        String mimeType = ec.getMediaType();
+                        if (mimeType == null)
+                            mimeType ="application/octet-stream";
+                        String name;
+                        if (null == ec.getTitle())
+                            name = "data";
+                        else
+                            name = ec.getTitle().getValue();
+                        ByteArrayInputStream input = new ByteArrayInputStream(ec.getContentData());
+                        contentStream = session.getObjectFactory().createContentStream(name, ec.getContentData().length,
+                                mimeType, input);                        
+                    }
+                }
+            }
+        }
+
+        
+        ObjectId recordId = session.createDocument(properties, session.createObjectId(parentId), contentStream, VersioningState.NONE);
+        LOG.debug("Record created with id: " + recordId);        
+    }
+
+    @Override
+    public void onClass(ClassTYPE clazz, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "Class:");
+        out.println(ind(indent) + "System id: " + clazz.getSystemId());
+        out.println(ind(indent) + "Title: " + dump(clazz.getTitle()));
+        out.println();
+    }
+
+    @Override
+    public void onTemplate(TemplateTYPE templ, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "Template: ");
+        out.println(ind(indent) + "System id: " + templ.getSystemId());
+        out.println(ind(indent) + "Title: " + dump(templ.getTitle()));
+        out.println();
+    }
+
+
+    @Override
+    public void onDisposalHold(DisposalholdTYPE hold, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "Hold:");
+        out.println(ind(indent) + "System id: " + hold.getSystemId());
+        out.println(ind(indent) + "Title: " + dump(hold.getTitle()));
+        out.println();
+    }
+
+    @Override
+    public void onDisposalSchedule(DisposalscheduleTYPE schedule, Object... context) {
+        int indent = (Integer) context[0];
+        LOG.debug(ind(indent) + "Disposal Schedule: ");
+        LOG.debug(ind(indent) + "System id: " + schedule.getSystemId());
+        LOG.debug(ind(indent) + "Title: " + dump(schedule.getTitle()));
+        
+        String parentId = session.getRootFolder().getId();
+
+        // create a CMIS document
+        Map<String, Object> properties = new HashMap<String, Object>();
+        String typeId = Constants.DISPOSAL_SCHEDULE_ENTITY; 
+        properties.put(PropertyIds.OBJECT_TYPE_ID, typeId);
+        properties.put(PropertyIds.NAME, convertToId(schedule.getTitle().getValue()));
+        properties.put(Constants.SYSTEM_IDENTIFIER, schedule.getSystemId());
+        properties.put(Constants.CREATED_TIMESTAMP , convert(schedule.getCreated()) );
+        properties.put(Constants.ORIGINATED_DATE_TIME , convert(schedule.getOriginated()));
+        if (schedule.getTitle() != null)
+            properties.put(Constants.TITLE , schedule.getTitle().getValue() );
+        if (schedule.getDescription() != null)
+            properties.put(Constants.DESCRIPTION , schedule.getDescription().getValue() );
+        properties.put(Constants.DESTROYED_TIMESTAMP , convert(schedule.getDestroyed()));
+        if (schedule.getDisposalAction() != null)
+        properties.put(Constants.DISPOSAL_ACTION_CODE, schedule.getDisposalAction().toString());
+        if (schedule.getMandate() != null)
+            properties.put(Constants.MANDATE , schedule.getMandate().getValue());
+        if (schedule.getRetentionInterval() != null)
+            properties.put(Constants.RETENTION_PERIOD_INTERVAL_CODE , schedule.getRetentionInterval().toString());
+        properties.put(Constants.RETENTION_PERIOD_DURATION_NUMBER , schedule.getRetentionIntervalDuration());
+        if (schedule.getRetentionOffsetMonth() != null)
+            properties.put(Constants.RETENTION_PERIOD_OFFSET_MONTH_CODE , schedule.getRetentionOffsetMonth().toString());
+        if (schedule.getRetentionOffset() != null)
+            properties.put(Constants.RETENTION_PERIOD_OFFSET_CODE , schedule.getRetentionOffset().toString());
+        if (schedule.getRetentionTrigger() != null)
+            properties.put(Constants.RETENTION_TRIGGER_CODE , schedule.getRetentionTrigger().toString());
+        if (schedule.getRetentionTriggerElementId() != null)
+            properties.put(Constants.RETENTION_TRIGGER_ELEMENT_IDENTIFIER , schedule.getRetentionTriggerElementId().toString());        
+        if (schedule.getScopeNotes() != null)
+            properties.put(Constants.SCOPE_NOTES , schedule.getScopeNotes().getValue());
+        if (schedule.getConfirmationInterval() != null)
+            properties.put(Constants.CONFIRMATION_PERIOD_INTERVAL_CODE , schedule.getConfirmationInterval().toString());
+        properties.put(Constants.CONFIRMATION_PERIOD_DURATION_NUMBER , schedule.getConfirmationIntervalDuration());
+        ObjectId recordId = session.createDocument(properties, session.createObjectId(parentId), null, VersioningState.NONE);
+        LOG.debug("Disposal Schedule created with id: " + recordId);        
+
+    }
+
+    @Override
+    public void onRole(RoleTYPE role, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "Role:");
+        out.println(ind(indent) + "System id: " + role.getSystemId());
+        out.println(ind(indent) + "Title: " + dump(role.getTitle()));
+        out.println();
+    }
+
+    @Override
+    public void onUser(UserTYPE user, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "User:");
+        out.println(ind(indent) + "System id: " + user.getSystemId());
+        out.println(ind(indent) + "Title: " + dump(user.getTitle()));
+        out.println();
+    }
+
+
+    @Override
+    public void onGroup(GroupTYPE group, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "Group:");
+        out.println(ind(indent) + "System id: " + group.getSystemId());
+        out.println(ind(indent) + "Title: " + dump(group.getTitle()));
+        out.println();
+    }
+
+    @Override
+    public void onContextualDefinition(ContextualdefinitionTYPE ctx, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "Contextual definition: ");
+        out.println(ind(indent) + "System id: " + ctx.getSystemId());
+        out.println(ind(indent) + "Title: " + dump(ctx.getTitle()));
+        out.println();
+    }
+
+
+    @Override
+    public void onEvent(EventTYPE event, Object... context) {
+        int indent = (Integer) context[0];
+        out.println(ind(indent) + "Event:");
+        out.println(ind(indent) + "System id: " + event.getSystemId());
+        out.println(ind(indent) + "Participating record ids: " + event.getPartRecordId());
+        out.println(ind(indent) + "Total entities: " + event.getTotalEntities());
+        out.println();
+    }
+
+
+    public static final String dump(XMLGregorianCalendar date) {
+        return date == null ? "" : date.toString();
+    }
+
+    public static final String dump(TextualTYPE text) {
+        return text == null ? "" : text.getValue() + " (Language: " + text.getLang()  + ")";
+    }
+
+    private String dump(TitularTYPE title) {
+        return title == null ? "" : title.getValue() + " (Language: " + title.getLang()  + ")";
+    }
+
+
+    private static String ind(int indent) {
+        return getIndent(indent);
+    }
+
+    private static String getIndent(int indent) {
+        switch (indent) {
+        case 2:
+            return "  ";
+        case 4:
+            return "    ";
+        case 6:
+            return "      ";
+        case 8:
+            return "        ";
+        case 10:
+            return "          ";
+        case 12:
+            return "            ";
+        case 14:
+            return "              ";
+        case 16:
+            return "                ";
+        case 18:
+            return "                  ";
+        case 20:
+            return "                    ";
+        default:
+            StringBuffer sb = new StringBuffer();
+            for (int i=0; i<indent; i++)
+                sb.append(" ");
+            return sb.toString();       
+        }
+    }
+
+    private GregorianCalendar convert(XMLGregorianCalendar xcal) {
+        return  xcal==null ? null : xcal.toGregorianCalendar();
+    }
+
+    private String convertToId(String id) {
+        StringBuffer sb = new StringBuffer(id);
+
+        for (int i = 0; i < id.length(); i++) {
+            char c = id.charAt(i);
+            if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '.' || c == '-'
+                    || c == '_' || c == ' ')) {
+                sb.setCharAt(i, '_');
+            }
+        }
+        return sb.toString();
+    }
+
+    private String findFolderBySystemId(String systemId) {
+        String query = "SELECT cmis:name, cmis:objectId, cmis:objectTypeId, cmis:baseTypeId FROM AGGREGATION WHERE SYSTEM_IDENTIFIER='" + systemId + "'";
+        ItemIterable<QueryResult> queryResult = session.query(query, false);
+        for (QueryResult item : queryResult) {
+            LOG.debug("Found folder: "
+                    + item.getPropertyByQueryName(PropertyIds.NAME).getFirstValue() + " of type "
+                    + item.getPropertyByQueryName(PropertyIds.OBJECT_TYPE_ID).getFirstValue());
+            return (String) item.getPropertyByQueryName(PropertyIds.OBJECT_ID).getFirstValue();
+        }
+        return null;
+    }
+
+}

Added: chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/Constants.java
URL: http://svn.apache.org/viewvc/chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/Constants.java?rev=1196504&view=auto
==============================================================================
--- chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/Constants.java (added)
+++ chemistry/playground/moreq2010/moreq2010/main/java/org/apache/chemistry/moreq2010/util/Constants.java Wed Nov  2 08:49:45 2011
@@ -0,0 +1,373 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.moreq2010.util;
+
+public class Constants {
+
+    // Services
+    public static final String USER_GROUP_SVC_ID = "cd532472-85b0-4c1c-82b4-5c8370b7d0e6";
+    public static final String MODEL_ROLE_SVC_ID = "2f6d05c6-51e6-4a32-a7fc-c0a6883eb85b";
+    public static final String CLASSIFICATION_SVC_ID = "10fea10e-9c2f-4760-9095-f4f9295f4b19";
+    public static final String RECORD_SVC_ID = "ced3d0df-3f9f-4807-9e96-b5b790adad4a";
+    public static final String MODEL_METADATA_SVC_ID = "a600f8d0-2d58-418e-bb41-211d1fd42350";
+    public static final String DISPOSAL_SCHEDULING_SVC_ID = "fd05e284-181f-4f5d-bd8c-4bed835c8931";
+    public static final String DISPOSAL_HOLDING_SVC_ID = "2e4a8618-c4b3-470f-8ccb-03e2d5e07026";
+    public static final String SEARCH_REPORTING_SVC_ID = "f09984a5-dd31-44d8-9607-22521667c78a";
+    public static final String EXPORT_SVC_ID = "2777ab81-057e-4aa4-9595-69459ec2dc1e";
+
+    // Entities
+    public static final String AGGREGATION_ENTITY = "c4bd4f18-e3f5-4dba-819d-8d58cbd0aed4";
+    public static final String CLASS_ENTITY = "5a5240e2-939b-43dd-a50b-2d3284d81735";
+    public static final String COMPONENT_ENTITY = "7af81a86-c6d4-43f7-b62d-6c7b905231dd";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_ENTITY = "5effc721-2184-4014-a4f0-5e399b41be57";
+    public static final String DISPOSAL_HOLD__ENTITY = "93645ca5-29c2-428b-9adc-b61b56d2c8bb";
+    public static final String DISPOSAL_SCHEDULE_ENTITY = "00b35d5d-301e-4000-ad18-211de45edb32";
+    public static final String ENTITY_TYPE_ENTITY = "5f423557-6130-43dc-930f-f95c6700e630";
+    public static final String EVENT_ENTITY = "97ff1eaa-30cd-4ea1-8ec2-2cbc50732d56";
+    public static final String FUNCTION_DEFINITION_ENTITY = "5c433e4e-f926-4206-ba3f-998b14b8dabb";
+    public static final String GROUP_ENTITY = "9cac7661-62c9-4a9d-8c64-d000210674ee";
+    public static final String METADATA_ELEMENT_DEFINITION__ENTITY = "e6682264-1902-434c-beb3-18a29795aaf4";
+    public static final String RECORD_ENTITY = "3ac228ef-c008-4524-9e41-5c4564eaa7f0";
+    public static final String ROLE_ENTITY = "fc9f9333-097f-4a84-96f2-11ad6b444ebf";
+    public static final String SERVICE_ENTITY = "363d5464-db6c-464b-980a-1851464cab45";
+    public static final String TEMPLATE_ENTITY = "92596e33-da23-4c9f-8de6-e585f027157a";
+    public static final String USER_ENTITY = "19c91384-1dfb-470a-bf1e-c1574ea4ba51";
+
+    // Properties
+    public static final String AGGREGATED_TIMESTAMP = "05fd550b-ff6c-4fd0-b1f6-b27df905076f";
+    public static final String APPLIED_TEMPLATE_IDENTIFIER = "65a2d42c-dfe3-4fbf-a894-8db373ac2d45"; 
+    public static final String AUTOMATIC_DELETION_FLAG = "4a9c44df-a9ac-4b06-8c87-d5940cd76046";  
+    public static final String CLASS_IDENTIFIER = "7d935531-e7e6-4a28-a474-431c68522cfa";
+    public static final String CLOSED_TIMESTAMP = "b0194c04-bd20-4582-af83-5da3d55c258a";
+    public static final String CONFIRMATION_PERIOD_DURATION_NUMBER = "4d99feb-2654-4c09-accd-a00417f78596";
+    public static final String CONFIRMATION_PERIOD_INTERVAL_CODE = "30cd2d6f-9957-4904-b0a7-ade8f181cb68";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_IDENTIFIER  = "1b4ee523-d46d-4614-a3a6-edad609f46ab";
+    public static final String CREATED_TIMESTAMP = "466a4378-db7d-4b2c-b35e-696722f58c6b";
+    public static final String DATATYPE = "e7f28bcc-0857-4361-b6e4-1bebffdd7578";
+    public static final String DEFAULT_DISPOSAL_SCHEDULE_IDENTIFIER = "b5a0997f-3285-4606-a20b-1d938b1415c7"; 
+    public static final String DEFAULT_LANGUAGE_IDENTIFIER = "ad13c98d-6ff4-4e0d-9ccd-a7d7238591f8";
+    public static final String DEFAULT_VALUE = "ae0b3b8e-f6fa-49e7-b411-d03bda7013f4";
+    public static final String DELETED_EVENT_FUNCTION_DEFINITION_IDENTIFIER = "eec57404-3539-4c24-b3f5-bf55f1a8f99e";
+    public static final String DELETED_METADATA_ELEMENT_DEFINITION_IDENTIFIER = "bb2a7c80-a367-4734-9676-a2bb2fab2e26"; 
+    public static final String DESCRIPTION = "c7e6aad5-27dd-47a4-97a6-ab541b47b37f";
+    public static final String DESTROYED_TIMESTAMP = "dbcf3076-c193-41fb-8043-635c8bc299b2";
+    public static final String DISPOSAL_ACTION_CODE = "83de3514-3888-4eff-88bd-d58cfb043cc7";
+    public static final String DISPOSAL_ACTION_DUE_DATE = "92e083e8-fe2b-4594-a287-685fad30c2b7";
+    public static final String DISPOSAL_CONFIRMATION_DUE_DATE = "39971796-dfd3-47b4-b36c-b2d5d0d770c7";
+    public static final String DISPOSAL_OVERDUE_ALERT_TIMESTAMP = "df4d965b-6e65-4131-b58b-0840c0bfd69d";
+    public static final String DISPOSAL_SCHEDULE_IDENTIFIER = "aee900e0-bb8b-4b9b-b714-738ed3bc14a3";
+    public static final String DUPLICATE_IDENTIFIER = "b887bda3-f34d-4ddd-8069-630567d949d2";
+    public static final String ENTITY_REFERENCE_TYPE_IDENTIFIER = "04ad1126-6673-4a73-a0c3-34871bb49905";
+    public static final String EVENT_COMMENT = "1f82121e-dcb9-475b-814e-6719031ca30b";
+    public static final String EVENT_FUNCTION_IDENTIFIER = "ea21de8f-1a0c-4bc5-939a-dc06dcff44c1"; 
+    public static final String EVENT_TIMESTAMP = "b51c08ed-d332-4bb5-974c-7cee3cb5c753";
+    public static final String EXPORT_COMMENCING_TIMESTAMP = "a252f442-6ab5-4325-94e5-00adaf908614";
+    public static final String EXPORT_COMPLETED_TIMESTAMP = "4220eaa9-fc78-4e33-ae94-0394824d4616";
+    public static final String EXPORT_IDENTIFIER = "885f5945-e724-466b-a84f-6ae3c603768b";
+    public static final String EXPORTED_IN_FULL_FLAG = "633bd60f-50df-4709-ab22-32cf63790598";
+    public static final String FIRST_USED_TIMESTAMP = "a937d097-856d-472f-836b-a2fae1811550";
+    public static final String FUNCTION_DEFINITION_IDENTIFIER = "55fcb00b-1d7a-4b6b-899c-3a9a9762dbf8";
+    public static final String GENERATE_EVENT_FLAG = "50a7cd32-ed4f-47b6-bcbb-bc1112e06eb9";
+    public static final String GRANTED_ROLE_IDENTIFIER = "1f50d91a-dac6-42ec-bb6e-d5dd5c0f4770";
+    public static final String GROUP_IDENTIFIER = "1d32086d-3855-4815-a294-f7d1977ce03a";
+    public static final String HELD_AGGREGATION_IDENTIFIER = "93856ba9-a0dd-4cfa-b8a9-edf031774076";
+    public static final String HELD_CLASS_IDENTIFIER = "29abe491-0c58-4816-97c2-8f60be62d9fa";
+    public static final String HELD_RECORD_IDENTIFIER = "374957cb-23ce-4987-81e9-5ccc00cfe9e3";
+    public static final String HISTORICAL_DATE_TIME = "8274fbf7-3145-4c23-a748-6c4682d6b7ed";
+    public static final String IMPLEMENTS_MODULE_IDENTIFIER = "92bddc26-aae5-493d-9278-94fbb00a2e44";
+    public static final String IMPLEMENTS_SERVICE_IDENTIFIER = "3960b7a5-624e-41e1-9976-248895b9352e"; 
+    public static final String INCLUDE_INHERITED_ROLES_FLAG = "4ad73ab1-4df8-40b7-b863-f8d63a584037";
+    public static final String IS_ADMINISTRATIVE_ROLE_FLAG = "d2e3b3da-a109-4ec0-ab26-5e6f53ad3673";
+    public static final String IS_ENTITY_REFERENCE_FLAG = "b52c2bbf-f27b-41c9-8885-3d906b4bd275";
+    public static final String IS_MODIFIABLE_FLAG = "7ff6a66e-b137-417c-aab0-aa327a0b119b";
+    public static final String IS_TEXTUAL_FLAG = "7e5ec95d-423c-4ac9-ac94-a835d3713e91";
+    public static final String LAST_ADDITION_TIMESTAMP = "71a6cf2d-c039-4b27-bd31-dcba471081ac";
+    public static final String LAST_REVIEW_COMMENT = "7036ec2e-644a-4309-9690-178690a6bc4f";
+    public static final String LAST_REVIEWED_TIMESTAMP = "dbbeb8a5-b019-46e1-983e-5f728f1dcc3a";
+    public static final String MANDATE = "a6986d60-1257-4046-bafe-fef680d5dc6c";
+    public static final String MAX_LEVELS_OF_AGGREGATION = "d0da657f-9345-4965-b2a8-17a0c300a896"; 
+    public static final String MAX_OCCURS = "4a69e008-50df-4506-b9a7-d6279b0c21d5";
+    public static final String MCRS_CERTIFICATION_IDENTIFIER = "bf8efec0-e182-47ec-bdfa-a83a24c602c8";
+    public static final String METADATA_ELEMENT_DEFINITION_IDENTIFIER = "8afb23cd-a741-4be0-97fd-f76aef411503";
+    public static final String MIN_OCCURS = "6e182700-4679-4ebf-938a-ef110828cba6";
+    public static final String NEW_VALUE = "d3d4f2ae-43f0-4567-99ae-ddd58e6cf2dd";
+    public static final String OVERDUE_DISPOSAL_ACTION_CODE = "60027dfb-2e3d-4456-b341-54737e83243c";
+    public static final String OVERDUE_DISPOSAL_ACTION_DUE_DATE = "75491c12-0c90-4f99-85ad-b583df082b45";
+    public static final String OVERDUE_DISPOSAL_CONFIRMATION_DUE_DATE = "1ac9514a-7e0e-4fd8-a543-4956c22f4089";
+    public static final String ORIGINATED_DATE_TIME = "50864023-dc92-4b1e-8e8a-66c284d40942";
+    public static final String OWNER_INFORMATION = "ae99f4f8-3edf-4874-aea2-ea50fa7a73f9";
+    public static final String PARENT_AGGREGATION_IDENTIFIER = "a74597a5-190a-4874-a350-083ac030aa55";
+    public static final String PARTICIPATING_AGGREGATION_IDENTIFIER = "daafbb4c-3183-40bd-9eff-759e88c725fc";
+    public static final String PARTICIPATING_CLASS_IDENTIFIER = "f046bdfa-5ef5-4217-9c4f-e24d0f15ea9a";
+    public static final String PARTICIPATING_COMPONENT_IDENTIFIER = "0686271b-b41f-40db-be27-9e6626b9ee54";
+    public static final String PARTICIPATING_DISPOSAL_HOLD_IDENTIFIER = "f9553093-24cb-4bd4-920e-c1341572b6f5";
+    public static final String PARTICIPATING_DISPOSAL_SCHEDULE_IDENTIFIER = "dfaf8f03-b7eb-49c0-b889-2c9b61ce1e3c";
+    public static final String PARTICIPATING_DUPLICATE_IDENTIFIER = "51afb74e-8729-46be-aac2-761c56e1b7d1";
+    public static final String PARTICIPATING_ENTITY_TYPE_IDENTIFIER = "7acf7c1d-d537-4548-a24d-ce92cf7cd68b";
+    public static final String PARTICIPATING_EVENT_IDENTIFIER = "b41e6d9c-c19d-41c1-8969-3090306b987f";
+    public static final String PARTICIPATING_FUNCTION_DEFINITION_IDENTIFIER = "56ee4c6d-ad65-468f-9de2-b9d5cf8b0557";
+    public static final String PARTICIPATING_GROUP_IDENTIFIER = "a6bf28b7-334b-465f-837b-34d8d09c7f2d";
+    public static final String PARTICIPATING_METADATA_ELEMENT_DEFINITION_IDENTIFIER = "bbbef444-bf3c-49ba-8560-0b5dfaeb8a88";
+    public static final String PARTICIPATING_NEW_PARENT_IDENTIFIER = "236e52dd-b117-4b6a-b60b-286d5dc5acd0";
+    public static final String PARTICIPATING_PREVIOUS_PARENT_IDENTIFIER = "736b0697-2078-4e50-b740-a52d4f16f18d";
+    public static final String PARTICIPATING_RECORD_IDENTIFIER = "74f1568c-bde8-45aa-895a-ac600c2de1c7";
+    public static final String PARTICIPATING_ROLE_IDENTIFIER = "a55947ec-b23e-413a-a840-21566aae0b4b";
+    public static final String PARTICIPATING_SERVICE_IDENTIFIER = "a5d104c2-e343-4c2b-82a3-8a30046e0e07";
+    public static final String PARTICIPATING_TEMPLATE_IDENTIFIER = "01afa124-8a2b-422b-888a-db7829564b4f";
+    public static final String PARTICIPATING_USER_IDENTIFIER = "35d1c4e2-4821-4e23-add8-fa14b9e38ca5";
+    public static final String PARTICIPATING_USER_OR_GROUP_IDENTIFIER = "2c159083-3b5b-4119-8bbd-ae39b2577ca2";
+    public static final String PERFORMED_BY_USER_IDENTIFIER = "ee568750-32b5-4441-b67b-d01ae9df5820";
+    public static final String PRESENTATION_ORDER = "92c9459d-aa29-4784-8646-6fc663d08c87";
+    public static final String PREVIOUS_VALUE = "ce3ec75a-7193-4fd2-9811-1c70419c7185";
+    public static final String RECORD_IDENTIFIER = "87daefe3-b429-4b7d-96ea-5dc9eabd8f56";
+    public static final String RESCINDED_ROLE_IDENTIFIER = "6c20a22d-0ca8-4dbb-a932-c950a1fce1e5";
+    public static final String RETAIN_ON_DESTRUCTION_FLAG = "222811d2-8c74-4f47-ae3f-c68698f55e2c";
+    public static final String RETENTION_PERIOD_DURATION_NUMBER = "1cf79293-5818-4141-876e-761448ae465b";
+    public static final String RETENTION_PERIOD_INTERVAL_CODE = "47aa0949-37a9-4f4f-ab0e-f33b0dd7d5fb";
+    public static final String RETENTION_PERIOD_OFFSET_CODE = "3882b1a6-48d7-45a2-a539-5871856a1b95";
+    public static final String RETENTION_PERIOD_OFFSET_MONTH_CODE = "557d941f-4be7-4dad-8113-39757547530a";
+    public static final String RETENTION_START_DATE = "199494ea-0ca4-47ef-883a-4bcc5ccdcc02";
+    public static final String RETENTION_TRIGGER_CODE = "30891ecb-5b36-453d-baf0-9aaa19eba4a6";
+    public static final String RETENTION_TRIGGER_ELEMENT_IDENTIFIER = "72fc68f0-5437-4d8e-a719-b4c4ecd1b649";
+    public static final String ROLE_IDENTIFIER = "0394b604-5865-42e2-ab23-2e983ecdf454";
+    public static final String SCOPE_NOTES = "c5c12c32-d263-44a3-91ae-26f80cb75a3c";
+    public static final String SEARCH_QUERY = "e7f82f8c-80de-4cb5-a28e-6761abca27b0";
+    public static final String SUPPLIER_INFORMATION = "8276d84b-a3fe-4b49-82a4-a8a58de14a7e";
+    public static final String SYSTEM_IDENTIFIER = "01806231-2c8c-4482-9bb1-8e47e747784f";
+    public static final String TEMPLATE_CLASS_IDENTIFIER = "ee03c826-39ee-4cdf-b2c7-6cc0c2782967";
+    public static final String TEMPLATE_ENTITY_TYPE_IDENTIFIER = "caaaf2e6-2ed4-4a53-adba-9363385127ac";
+    public static final String TEMPLATE_SERVICE_IDENTIFIER = "2dd54e70-5b60-4d5a-89be-5f967735d515";
+    public static final String TITLE = "077fc367-48ba-44a8-8afb-012d05ed1a16";
+    public static final String TOTAL_ENTITIES = "2131929b-7c06-471d-a96c-19b3560069d8";
+    public static final String TRANSFERRED_TIMESTAMP = "09c440b3-b040-465f-a79f-9dae3243cce6";
+    public static final String USER_OR_GROUP_IDENTIFIER = "2b1820f7-97ef-4010-8de8-f0745e0855c0";
+    
+    // Module Description
+    public static final String GUI_MODULE = "0f9584e5-552a-4a79-a8ea-3c2801765255";
+    public static final String API_MODULE = "654633ec-8b17-4a3c-a483-436ee2bd506a"; 
+    public static final String HIERARCICAL_CLASSIFICATION_MODULE = "5c772478-0a49-4391-a1d4-a5cd142a72d1";
+    // not a real module but a sun-type of class
+    public static final String HIERARCICAL_CLASS_MODULE = "8e98092d-e20b-48ea-b3d6-ca75375590ee";
+    public static final String ELECTRONIC_COMPONENT_MODULE = "13b6976c-2409-48ff-a576-a6f6662c5044";
+
+    // Function Descriptions
+    public static final String AGGREGATION_ADD_AGGREGATION_FUNC_ID = "f6c7d6a4-c69e-4d33-9d4a-4137274b68da";
+    public static final String AGGREGATION_ADD_CONTEXTUAL_METADATA_FUNC_ID = "746b7ffc-d9a4-43d9-9dfa-01f6d1e8f671";
+    public static final String AGGREGATION_ADD_RECORD_FUNC_ID = "0ef1d20b-a65f-4b0a-b2a0-e7b3a9a665f4";
+    public static final String AGGREGATION_CLOSE_FUNC_ID = "09fb9edc-d179-49dc-b069-a435f162e6fd";
+    public static final String AGGREGATION_CREATE_FUNC_ID = "6054ae16-2036-424e-9bb7-aedb6e8229cc";
+    public static final String AGGREGATION_DELETE_FUNC_ID = "ae8dd3fe-3e02-4aa5-b9d0-840e0ea5b68b";
+    public static final String AGGREGATION_DELETE_RESIDUAL_EVENT_FUNC_ID = "bff0f6be-8b87-454e-b4a9-a8ca584e574b";
+    public static final String AGGREGATION_DELETE_RESIDUAL_METADATA_FUNC_ID = "8e6f41c0-fe66-4147-865b-7c3fd0d3b3aa";
+    public static final String AGGREGATION_DESTROY_FUNC_ID = "60aa99a4-cf98-4e03-b64d-1fd137e90296";
+    public static final String AGGREGATION_EXPORTED_FUNC_ID = "3f124e3f-64e8-4627-ac32-d1aa7b95ffa9";
+    public static final String AGGREGATION_INHERIT_DEFAULT_CLASS_FUNC_ID = "d54f1e11-36c9-451e-abff-9cfa6b7b28e7";
+    public static final String AGGREGATION_INSPECT_FUNC_ID = "f607266f-e7fd-4bba-bbd3-462772c1d653";
+    public static final String AGGREGATION_INSPECT_ACL_FUNC_ID = "c1de7c62-b4be-4622-99f5-f78ee88f41da";
+    public static final String AGGREGATION_INSPECT_EVENT_FUNC_ID = "db9c7774-0799-45e0-999e-0018cbd71e97";
+    public static final String AGGREGATION_MODIFY_ACL_FUNC_ID = "2b8f6950-8dce-41ba-aec3-a3b8181a4739";
+    public static final String AGGREGATION_MODIFY_MAX_LEVELS_OF_AGGREGATION_FUNC_ID = "148427cb-6e55-498d-8352-c13729ad09c5";
+    public static final String AGGREGATION_MODIFY_METADATA_FUNC_ID = "d4104970-759a-45fc-aa83-43ca632a2307";
+    public static final String AGGREGATION_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "3ed4bcd1-ae2f-4c34-a0e1-5ddde22d1453";
+    public static final String AGGREGATION_OPEN_FUNC_ID = "7c533508-1967-401c-9aa4-a6ad85fb63d5";
+    public static final String AGGREGATION_OVERRIDE_CLASS_FUNC_ID = "a938c62a-6dff-4f7f-9490-9780cfc74f8b";
+    public static final String AGGREGATION_REMOVE_AGGREGATION_FUNC_ID = "41388b8a-b380-4997-8925-9f678c1655fc";
+    public static final String AGGREGATION_REMOVE_RECORD_FUNC_ID = "d7d6dc0f-3d13-4f98-8fd5-b2ad9163d2cc";
+    public static final String CLASS_ADD_CONTEXTUAL_METADATA_FUNC_ID = "5e4be488-5911-4fee-bb5b-bbc1e76bf8d4";
+    public static final String CLASS_CREATE_FUNC_ID = "c4285bfb-b62b-403c-9078-49522d881a85";
+    public static final String CLASS_DELETE_FUNC_ID = "f6134d1a-649d-4b0a-9da4-ce9e4b713d6f";
+    public static final String CLASS_DELETE_RESIDUAL_EVENT_FUNC_ID = "e8adbb3a-6e5d-49d2-989f-dabbcc384133";
+    public static final String CLASS_DELETE_RESIDUAL_METADATA_FUNC_ID = "145d6256-0974-46b1-b698-bc0d0ecadb57";
+    public static final String CLASS_DESTROY_FUNC_ID = "fed36daf-26ce-4d44-8452-b0cc3607ab75";
+    public static final String CLASS_EXPORTED_FUNC_ID = "476a72fd-0d53-470c-b962-afe9b1780759";
+    public static final String CLASS_INSPECT_FUNC_ID = "1ce37d0a-be50-410b-9518-a4919921255f";
+    public static final String CLASS_INSPECT_ACL_FUNC_ID = "1107cc8a-798c-4d6f-8d95-55c9f87b43bc";
+    public static final String CLASS_INSPECT_EVENT_FUNC_ID = "8753d035-a402-4346-be10-5010e1f278b3";
+    public static final String CLASS_MODIFY_ACL_FUNC_ID = "caced2b7-3496-4f0c-b679-6a8abc692c4a";
+    public static final String CLASS_MODIFY_DEFAULT_DISPOSAL_SCHEDULE_FUNC_ID = "7308ee79-510a-4738-bf79-07fd0e85f4af";
+    public static final String CLASS_MODIFY_METADATA_FUNC_ID = "aa06e05a-2d32-4a08-9902-bf1628ce506e";
+    public static final String CLASS_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "db27260a-e681-42b9-ad2f-64c5929b4f33";
+    public static final String COMPONENT_ADD_CONTEXTUAL_METADATA_FUNC_ID = "4c36756b-c66d-4469-9379-c3d979a777dc";
+    public static final String COMPONENT_CREATE_FUNC_ID = "0d6d5d46-4bab-4e92-8311-7d93ea476fd1";
+    public static final String COMPONENT_DELETE_RESIDUAL_EVENT_FUNC_ID = "a0efddae-9c93-4bd4-bca1-11e4e12086d4";
+    public static final String COMPONENT_DELETE_RESIDUAL_METADATA_FUNC_ID = "18378b4a-db17-4309-9c04-a88e15888e1e";
+    public static final String COMPONENT_DESTROY_FUNC_ID = "4bc532be-b33b-407b-9c59-28bb6c65e1ff";
+    public static final String COMPONENT_DUPLICATE_FUNC_ID = "9cd765ac-a511-4da1-9bee-90b40f769d60";
+    public static final String COMPONENT_EXPORTED_FUNC_ID = "cad7c66b-50ef-479c-9403-f61af0cffea4";
+    public static final String COMPONENT_INSPECT_FUNC_ID = "31b1b287-7de3-4f67-a637-c0f7063d19ac";
+    public static final String COMPONENT_INSPECT_EVENT_FUNC_ID = "351ea1cf-87e0-4499-a397-f608ad3033c3";
+    public static final String COMPONENT_MODIFY_METADATA_FUNC_ID = "fbc13347-7576-4aaa-9109-d5ff69a43021";
+    public static final String COMPONENT_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "94480ab5-c230-4c54-b0a4-4980441bde4c";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_CREATE_FUNC_ID = "e12e910b-8a2e-4939-a34b-1f0eb06a9697";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_DELETE_FUNC_ID = "be1eadc6-d5a2-4d39-9a79-43c501b70cdb";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_DELETE_RESIDUAL_EVENT_FUNC_ID = "f791a9a7-2470-491c-b5e5-31cc04a90788";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_DESTROY_FUNC_ID = "59e9e6a6-b87a-4ca2-a615-36d04518e064";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_EXPORTED_FUNC_ID = "c1a541d1-d68a-4dc4-93d0-ae5596263d73";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_MODIFY_BEFORE_USE_FUNC_ID = "31e98553-840c-48ab-8514-df2a77e9ae87";
+    public static final String CONTEXTUAL_METADATA_ELEMENT_DEFINITION_MODIFY_ORIGINATED_FUNC_ID = "23ab0db8-2a0a-495b-b7a2-211d577b2e00";
+    public static final String DISPOSAL_HOLD_ADD_CONTEXTUAL_METADATA_FUNC_ID = "d3110710-a391-4b15-b6c2-8e3f904549e2";
+    public static final String DISPOSAL_HOLD_ADD_ENTITY_FUNC_ID = "3fa1c42b-1d1a-4888-8e26-f57a8d76df27";
+    public static final String DISPOSAL_HOLD_CREATE_FUNC_ID = "45e638b2-3eda-4a2d-b320-3b156ed82897";
+    public static final String DISPOSAL_HOLD_DELETE_FUNC_ID = "52e2be2e-3aa6-4854-8b7d-d58141cec8a5";
+    public static final String DISPOSAL_HOLD_DELETE_RESIDUAL_EVENT_FUNC_ID = "e6b9b61f-7b7e-4a30-84bc-0908b44d21af";
+    public static final String DISPOSAL_HOLD_DELETE_RESIDUAL_METADATA_FUNC_ID = "462a20ad-18d6-4875-b47e-b2ec992c612a";
+    public static final String DISPOSAL_HOLD_DESTROY_FUNC_ID = "4b02e580-7fdb-4780-85ce-fdaa88fff88d";
+    public static final String DISPOSAL_HOLD_EXPORTED_FUNC_ID = "1b60af30-8fb7-44af-8441-425004fc2780";
+    public static final String DISPOSAL_HOLD_INSPECT_FUNC_ID = "cc102e9a-953f-410f-9cf2-e527ba70e49b";
+    public static final String DISPOSAL_HOLD_INSPECT_ACL_FUNC_ID = "971b7480-cb7e-43de-9a37-41c65cd65c7a";
+    public static final String DISPOSAL_HOLD_INSPECT_EVENT_FUNC_ID = "a729cbb2-ae32-46ca-a31b-de9a1b010100";
+    public static final String DISPOSAL_HOLD_MODIFY_ACL_FUNC_ID = "f308349e-fd2a-46ed-a3bc-abfd458f30bd";
+    public static final String DISPOSAL_HOLD_MODIFY_METADATA_FUNC_ID = "1ff0d40d-2a88-4b31-88f9-c1efc135c618";
+    public static final String DISPOSAL_HOLD_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "812a29d1-a7ad-44d8-a7aa-4bab741e1e5b";
+    public static final String DISPOSAL_HOLD_REMOVE_ENTITY_FUNC_ID = "dcde1a11-f6e8-44f6-b48b-d3e61e53b9e2";
+    public static final String DISPOSAL_SCHEDULE_ADD_CONTEXTUAL_METADATA_FUNC_ID = "88fed471-3f1a-4171-8099-b35304d9aee5";
+    public static final String DISPOSAL_SCHEDULE_CREATE_FUNC_ID = "25556d43-6aa9-41e5-b146-e98473e14024";
+    public static final String DISPOSAL_SCHEDULE_DELETE_FUNC_ID = "bac5ebc1-c4c3-4ec0-ba97-7421d17ca968";
+    public static final String DISPOSAL_SCHEDULE_DELETE_RESIDUAL_EVENT_FUNC_ID = "8b26a551-b2c9-4940-ade6-ddf9ce771e62";
+    public static final String DISPOSAL_SCHEDULE_DELETE_RESIDUAL_METADATA_FUNC_ID = "2ef9758c-9143-4859-bf7f-f7e3384c8750";
+    public static final String DISPOSAL_SCHEDULE_DESTROY_FUNC_ID = "20f4d0e0-98c7-45b5-81d2-a14e67325f8e";
+    public static final String DISPOSAL_SCHEDULE_EXPORTED_FUNC_ID = "48f27df0-580a-4804-ab94-425dda402347";
+    public static final String DISPOSAL_SCHEDULE_INSPECT_FUNC_ID = "a87eaf88-b537-4061-b57a-2d50e6fb5f9d";
+    public static final String DISPOSAL_SCHEDULE_INSPECT_ACL_FUNC_ID = "624f62eb-7e01-4e98-b886-291a1166698d";
+    public static final String DISPOSAL_SCHEDULE_INSPECT_EVENT_FUNC_ID = "028167e8-309a-458f-8ae3-5dfbab73451d";
+    public static final String DISPOSAL_SCHEDULE_MODIFY_ACL_FUNC_ID = "31b963f1-392c-4bd6-a696-934a53142632";
+    public static final String DISPOSAL_SCHEDULE_MODIFY_METADATA_FUNC_ID = "8ec42472-e351-4c7e-8c02-9da97677d9ac";
+    public static final String DISPOSAL_SCHEDULE_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "d98a38e4-8a18-4141-a245-58043ada13c1";
+    public static final String ENTITY_TYPE_INSPECT_FUNC_ID = "e9975a09-acdf-4ef7-8ae8-eae72c66cb03";
+    public static final String ENTITY_TYPE_INSPECT_ACL_FUNC_ID = "a500ff2b-0518-459e-94d6-1f2f281b30d8";
+    public static final String ENTITY_TYPE_INSPECT_EVENT_FUNC_ID = "e6d3f367-ec8f-4cac-b65b-7285dd4b3358";
+    public static final String ENTITY_TYPE_MODIFY_ACL_FUNC_ID = "0704069a-0129-4978-9e69-401da1dbdc0a";
+    public static final String FUNCTION_DEFINITION_INSPECT_FUNC_ID = "eedac611-18b3-46ab-9f78-ce5d105343f3";
+    public static final String FUNCTION_DEFINITION_INSPECT_ACL_FUNC_ID = "eceb7200-db40-40cd-8140-a8a2fb2adfea";
+    public static final String FUNCTION_DEFINITION_INSPECT_EVENT_FUNC_ID = "4ba33648-4e99-421a-acc3-92f1579839e4";
+    public static final String FUNCTION_DEFINITION_MODIFY_ACL_FUNC_ID = "c1c23be7-1bfe-49bb-a9e6-648a947926af";
+    public static final String FUNCTION_DEFINITION_MODIFY_EVENT_GENERATION_FUNC_ID = "e2cf111d-faa8-4dd4-ad4c-36e15ad603f7";
+    public static final String FUNCTION_DEFINITION_MODIFY_RETAIN_EVENT_ON_DESTRUCTION_FUNC_ID = "712df19b-80e1-4dda-b3a4-1971b8ebcf67";
+    public static final String GROUP_ADD_CONTEXTUAL_METADATA_FUNC_ID = "60d37b06-55e5-44d9-998b-8b866afbecb9";
+    public static final String GROUP_ADD_USER_FUNC_ID = "5327775f-2899-4268-aa59-92f5f6ee2f4f";
+    public static final String GROUP_CREATE_FUNC_ID = "97039415-a9c2-4cf7-999d-f4135304d97a";
+    public static final String GROUP_DELETE_FUNC_ID = "30e6e15b-f889-4ff7-8a66-a695498b5565";
+    public static final String GROUP_DELETE_RESIDUAL_EVENT_FUNC_ID = "ac82726d-804e-491d-a5ec-a27ffb986a91";
+    public static final String GROUP_DELETE_RESIDUAL_METADATA_FUNC_ID = "41d00f75-2403-4d16-b825-f85acf6ee746";
+    public static final String GROUP_DESTROY_FUNC_ID = "0201d5d3-e201-4c5a-90b1-1a98913ba09a";
+    public static final String GROUP_EXPORTED_FUNC_ID = "6978b25b-0036-44f9-ae99-b80e10027fe6";
+    public static final String GROUP_INSPECT_FUNC_ID = "642ce23c-542f-40c1-912d-07897a1415de";
+    public static final String GROUP_INSPECT_ACL_FUNC_ID = "d52f4721-d55b-4eee-aaab-f77d83e0dd55";
+    public static final String GROUP_INSPECT_EVENT_FUNC_ID = "bcadb823-13a1-4ba5-ae36-62b106132c7a";
+    public static final String GROUP_MODIFY_ACL_FUNC_ID = "f48f825f-2afb-427e-bdaa-056bb025521c";
+    public static final String GROUP_MODIFY_METADATA_FUNC_ID = "b6d7687f-d94e-4281-8575-1302556ca6ba";
+    public static final String GROUP_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "b5ed9497-7ac2-4f95-8728-fd23d30d3b86";
+    public static final String GROUP_REMOVE_USER_FUNC_ID = "c3713f12-feb6-459e-a21a-7e63aaeeea6c";
+    public static final String GROUP_REPORT_USER_MEMBERSHIP_FUNC_ID = "8b8c09d4-30aa-41c4-b0fc-1a0ecf4f9d88";
+    public static final String METADATA_ELEMENT_DEFINITION_INSPECT_FUNC_ID = "a5423f4d-0f15-4376-8d22-b10affe3ae3a";
+    public static final String METADATA_ELEMENT_DEFINITION_INSPECT_ACL_FUNC_ID = "35f8d31b-9db2-4d37-96a2-d0ad36533a92";
+    public static final String METADATA_ELEMENT_DEFINITION_INSPECT_EVENT_FUNC_ID = "72459e48-ea29-4b05-a125-75a36a0ea74f";
+    public static final String METADATA_ELEMENT_DEFINITION_MODIFY_ACL_FUNC_ID = "2f04f823-c37a-4c68-b6fa-76be4a76cf7d";
+    public static final String METADATA_ELEMENT_DEFINITION_MODIFY_METADATA_FUNC_ID = "2a70d3d6-4f38-4666-82ac-82d0ceb5e608";
+    public static final String METADATA_ELEMENT_DEFINITION_MODIFY_RETAIN_ON_DESTRUCTION_FUNC_ID = "f8f0cbb3-8f9e-4dc9-807e-36e351b85960";
+    public static final String RECORD_ADD_CONTEXTUAL_METADATA_FUNC_ID = "83fa3a37-8bee-494e-af7a-8c23e56bb106";
+    public static final String RECORD_CANCEL_DESTRUCTION_FUNC_ID = "09cb99bb-bcd8-45cd-b0a3-436aab6a46b5";
+    public static final String RECORD_CANCEL_TRANSFER_FUNC_ID = "19e3483a-dded-4e5f-a812-15b5a06da197";
+    public static final String RECORD_COMPLETE_REVIEW_FUNC_ID = "339c50b5-3e06-4507-80e5-946cfa9b3ba5";
+    public static final String RECORD_CONFIRM_DESTRUCTION_FUNC_ID = "a221b6c3-4b3e-4737-a4f6-def8bded9af2";
+    public static final String RECORD_CONFIRM_TRANSFER_FUNC_ID = "601253a3-723e-458b-be7d-2f4659c88eae";
+    public static final String RECORD_CREATE_FUNC_ID = "13d444bf-3ba2-4c38-adc5-b57ec9e86f74";
+    public static final String RECORD_DELETE_RESIDUAL_EVENT_FUNC_ID = "9a91e950-48cd-4270-a592-dd41f4248ecc";
+    public static final String RECORD_DELETE_RESIDUAL_METADATA_FUNC_ID = "5812baba-fd3f-49c0-8560-2068d3f8c994";
+    public static final String RECORD_DESTROY_FUNC_ID = "508e5ad6-0c8a-4ece-9b46-b8b39b53c857";
+    public static final String RECORD_DISPOSAL_ALERT_FUNC_ID = "fdb351ed-d8eb-41e9-9e15-8b1bf32a3798";
+    public static final String RECORD_DUPLICATE_FUNC_ID = "e6f97ac3-c9cc-4036-a471-a00c865db8a6";
+    public static final String RECORD_EXPORTED_FUNC_ID = "1140f9cc-99e9-40e3-b3dd-be485170f718";
+    public static final String RECORD_HELD_FUNC_ID = "38f887ed-7021-460d-8820-d26af5ce63a1";
+    public static final String RECORD_INHERIT_DEFAULT_CLASS_FUNC_ID = "e62728b4-13d7-4ef4-9833-7d8931c748e2";
+    public static final String RECORD_INHERIT_DEFAULT_DISPOSAL_SCHEDULE_FUNC_ID = "eb4f94b8-9c0d-4f44-8d7c-b73c45735e49";
+    public static final String RECORD_INSPECT_FUNC_ID = "4f5f638f-f6ef-4917-adc0-82f90d065ef6";
+    public static final String RECORD_INSPECT_ACL_FUNC_ID = "7e4d0e6b-e726-4e3b-87a4-d1f6df60137e";
+    public static final String RECORD_INSPECT_EVENT_FUNC_ID = "29ee9ad5-6f9d-4663-9f99-99dca188c70e";
+    public static final String RECORD_MODIFY_ACL_FUNC_ID = "5e3380b4-da4a-4e1c-9387-5b83934ff1c2";
+    public static final String RECORD_MODIFY_METADATA_FUNC_ID = "b793efb9-fa12-41e9-9327-784324368bad";
+    public static final String RECORD_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "2249c5a3-e760-4a82-89b5-47b804ff4c32";
+    public static final String RECORD_OVERRIDE_CLASS_FUNC_ID = "069c29c9-15d9-42d8-8de4-a46b0405552a";
+    public static final String RECORD_OVERRIDE_DISPOSAL_SCHEDULE_FUNC_ID = "c53ebf62-c69f-4e3d-b728-33252f4faa01";
+    public static final String RECORD_RELEASED_FUNC_ID = "185d46fa-22c8-4a65-904b-c51604df1189";
+    public static final String RECORD_UPDATE_DISPOSAL_FUNC_ID = "08f23ade-4023-46af-add7-39e6d399a5c3";
+    public static final String ROLE_ADD_CONTEXTUAL_METADATA_FUNC_ID = "c10b0afa-87b6-42be-a45d-55a663f2df54";
+    public static final String ROLE_ADD_FUNCTION_DEFINITION_FUNC_ID = "b5782d06-9597-4c2b-aa18-1845e650ce05";
+    public static final String ROLE_CREATE_FUNC_ID = "246af58d-72a1-4e03-9a1d-3fe7094e00af";
+    public static final String ROLE_DELETE_FUNC_ID = "451fda23-8a3a-4a80-976f-9dd45a7eb1a5";
+    public static final String ROLE_DELETE_RESIDUAL_EVENT_FUNC_ID = "8eec771e-6441-4b58-b771-cccbaa94c55f";
+    public static final String ROLE_DELETE_RESIDUAL_METADATA_FUNC_ID = "55e02943-a58f-4f31-8207-dc44a390bd03";
+    public static final String ROLE_DESTROY_FUNC_ID = "b969e173-ec5f-4046-95b5-f8e903d1e77b";
+    public static final String ROLE_EXPORTED_FUNC_ID = "32673385-e87a-410c-ad54-0556ae1ed332";
+    public static final String ROLE_INSPECT_FUNC_ID = "f5833cf6-4d4a-43f9-bea8-77f768ba4e72";
+    public static final String ROLE_INSPECT_ACL_FUNC_ID = "5a336626-eab8-451e-8e7c-547b8933f5f4";
+    public static final String ROLE_INSPECT_EVENT_FUNC_ID = "bd6c020f-9ef6-4263-880f-99f28b75ac13";
+    public static final String ROLE_MODIFY_ACL_FUNC_ID = "2803e039-8e4c-44a3-9e50-aebf5c2649e7";
+    public static final String ROLE_MODIFY_METADATA_FUNC_ID = "59c2b665-aa89-4e87-8666-3d294f35a9e8";
+    public static final String ROLE_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "4cd52e0d-7972-499a-bc32-d7c81540094c";
+    public static final String ROLE_REMOVE_FUNCTION_DEFINITION_FUNC_ID = "d0df9562-d560-4374-8ed8-07e4c3572d2a";
+    public static final String ROLE_REPORT_FUNCTION_DEFINITIONS_FUNC_ID = "00a53f17-9866-4f0f-a387-16b549249284";
+    public static final String SERVICE_ADD_CONTEXTUAL_METADATA_FUNC_ID = "e2a1ab27-0a63-4abe-a2c7-a08c8027824c";
+    public static final String SERVICE_INSPECT_FUNC_ID = "e9a0bfa5-6292-4ba2-80c4-eeab1a4c9a7f";
+    public static final String SERVICE_INSPECT_ACL_FUNC_ID = "ad683cd9-9f6a-45f7-a00d-a34550196b27";
+    public static final String SERVICE_INSPECT_EVENT_FUNC_ID = "40015ae8-17d7-4be4-a381-ae79066351ac";
+    public static final String SERVICE_MODIFY_ACL_FUNC_ID = "537292ac-e4c4-45c0-8188-5597ffa58997";
+    public static final String SERVICE_MODIFY_METADATA_FUNC_ID = "d5be380f-b172-402a-898b-117d968c0ce3";
+    public static final String SERVICE_REPORT_COMPLIANCE_FUNC_ID = "8dbe7172-8919-4c42-a989-3d114a0812d4";
+    public static final String TEMPLATE_ADD_CONTEXTUAL_METADATA_FUNC_ID = "9540ba23-531f-45cf-9d9c-99150890bd2f";
+    public static final String TEMPLATE_CREATE_FUNC_ID = "92634d40-ac65-4f87-ae90-fbe914dfe318";
+    public static final String TEMPLATE_DELETE_FUNC_ID = "5643fb8d-380b-4b0a-a30c-e0f09d3c2b0e";
+    public static final String TEMPLATE_DELETE_RESIDUAL_EVENT_FUNC_ID = "5a95ef31-8881-424e-adfa-e6a4bfd3456e";
+    public static final String TEMPLATE_DELETE_RESIDUAL_METADATA_FUNC_ID = "aa439637-6d4f-43e0-a63f-90b96f6be54f";
+    public static final String TEMPLATE_DESTROY_FUNC_ID = "37ff38c4-e14e-442c-aca6-1f1ad94ed41f";
+    public static final String TEMPLATE_EXPORTED_FUNC_ID = "376e669e-9c7a-455c-bc2c-a46f344ad6da";
+    public static final String TEMPLATE_INSPECT_FUNC_ID = "1d699116-21ca-4318-8b2c-5a72851de157";
+    public static final String TEMPLATE_INSPECT_ACL_FUNC_ID = "9c75f837-16aa-4e1c-b8d7-705376cd800b";
+    public static final String TEMPLATE_INSPECT_EVENT_FUNC_ID = "142ba8e5-1cdf-4ca7-a6d6-2f8db1e4b08a";
+    public static final String TEMPLATE_MODIFY_ACL_FUNC_ID = "f5b7c65a-9b73-4769-969a-fde91d197381";
+    public static final String TEMPLATE_MODIFY_METADATA_FUNC_ID = "d49046d1-984a-4ff0-b676-8598c2577466";
+    public static final String TEMPLATE_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "acf69ef4-7c80-48de-a11a-896c09d58b05";
+    public static final String USER_ADD_CONTEXTUAL_METADATA_FUNC_ID = "2601f4d6-79df-4978-b860-b8e17b6520ce";
+    public static final String USER_BROWSE_RECORDS_DUE_FOR_DISPOSAL_FUNC_ID = "2c3722d2-bc17-4008-9c60-58d3d7d72f83";
+    public static final String USER_CREATE_FUNC_ID = "2cde7448-6c71-4cff-988a-973e0701a824";
+    public static final String USER_DELETE_FUNC_ID = "3be51e0b-efd1-49e9-be3d-419ef6a60660";
+    public static final String USER_DELETE_RESIDUAL_EVENT_FUNC_ID = "b2593eb6-a542-4d20-8942-3f2cd0218edf";
+    public static final String USER_DELETE_RESIDUAL_METADATA_FUNC_ID = "a8783b53-6557-4885-88c5-3781508809cd";
+    public static final String USER_DESTROY_FUNC_ID = "c33e48b3-2bc6-4851-b2e7-a40d602bfe1c";
+    public static final String USER_DETAILED_REPORT_FUNC_ID = "428eb316-5eb8-4bda-87d6-fa4cc42331a3";
+    public static final String USER_EXPORT_FUNC_ID = "1262769d-024d-430f-a917-48b6a8e58d21";
+    public static final String USER_EXPORTED_FUNC_ID = "6da05d24-5cbb-4b2b-9eb8-45d75564c6ab";
+    public static final String USER_INSPECT_FUNC_ID = "246c3b2f-66cb-4585-8b6f-d38162ddaf99";
+    public static final String USER_INSPECT_ACL_FUNC_ID = "93dde507-4b84-4231-9641-8572f7b14c13";
+    public static final String USER_INSPECT_EVENT_FUNC_ID = "8fe366ae-0e72-4042-8a8a-57e296927ee5";
+    public static final String USER_MODIFY_ACL_FUNC_ID = "ef1deffd-68a5-4f19-ac54-ae3184d991d3";
+    public static final String USER_MODIFY_METADATA_FUNC_ID = "53b191b5-def2-4ab3-a110-3959c52784dc";
+    public static final String USER_MODIFY_ORIGINATED_DATE_TIME_FUNC_ID = "e3e88cce-a4b1-4860-9868-d9561f7417b3";
+    public static final String USER_REPORT_AUTHORISATION_FUNC_ID = "25315f00-835e-4dfb-9894-80688eadbf2b";
+    public static final String USER_REPORT_GROUP_MEMBERSHIP_FUNC_ID = "868fd38a-74d4-4534-b3ec-37b0ec4d65aa";
+    public static final String USER_SEARCH_FUNC_ID = "34dcf951-8608-46b5-808f-84fe8c378e7a";
+    public static final String USER_SUMMARY_REPORT_FUNC_ID = "aafece46-99dd-4e55-b0b2-81e5c0f1cf23";
+    public static final String HIERARCHICAL_CLASS_ADD_CLASS_FUNC_ID = "9ccb3ff0-b225-42bc-9edc-e05ed74547a5";
+    public static final String HIERARCHICAL_CLASS_CREATE_FUNC_ID = "a148a5ee-58ab-4b7b-a925-bb6f426b0d7a";
+    public static final String HIERARCHICAL_CLASS_REMOVE_CLASS_FUNC_ID = "2b0c7c88-ee72-4e83-87dd-ad9d98567789";
+    public static final String ELECTRONIC_COMPONENT_CREATE_FUNC_ID = "ea33d749-92aa-421b-9eba-6fb90786d4b9";
+    public static final String ELECTRONIC_COMPONENT_GET_CONTENT_FUNC_ID = "c1a3d38b-72ee-48c2-983b-b028db002d7f";
+    public static final String ELECTRONIC_COMPONENT_GET_CONTENT_URI_FUNC_ID = "1f0784ee-3825-4422-ad45-46c3dee59c74";
+
+}