/* * Copyright (c) 2006, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * Licensed 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.wso2.carbon.registry.cmis.impl; import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition; import org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed; import org.apache.chemistry.opencmis.commons.impl.dataobjects.DocumentTypeDefinitionImpl; import org.wso2.carbon.registry.cmis.RegistryDocument; import org.wso2.carbon.registry.cmis.RegistryTypeManager; import org.wso2.carbon.registry.cmis.RegistryUnversionedDocument; import org.wso2.carbon.registry.cmis.util.CMISConstants; import org.wso2.carbon.registry.core.Registry; import org.wso2.carbon.registry.core.Resource; import org.wso2.carbon.registry.cmis.PathManager; /** * Type handler that provides cmis:unversioned-document. */ public class UnversionedDocumentTypeHandler extends DocumentTypeHandler { public static final String DOCUMENT_UNVERSIONED_TYPE_ID = "cmis:unversioned-document"; public UnversionedDocumentTypeHandler(Registry repository, PathManager pathManager, RegistryTypeManager typeManager) { super(repository, pathManager, typeManager); } @Override public String getTypeId() { return DOCUMENT_UNVERSIONED_TYPE_ID; } @Override public TypeDefinition getTypeDefinition() { DocumentTypeDefinitionImpl unversionedDocument = new DocumentTypeDefinitionImpl(); unversionedDocument.initialize(super.getTypeDefinition()); unversionedDocument.setDescription(CMISConstants.DESC_UNVERSIONED_DOCUMENT); unversionedDocument.setDisplayName(CMISConstants.DESC_UNVERSIONED_DOCUMENT); unversionedDocument.setLocalName(CMISConstants.DESC_UNVERSIONED_DOCUMENT); unversionedDocument.setIsQueryable(true); unversionedDocument.setQueryName(DOCUMENT_UNVERSIONED_TYPE_ID); unversionedDocument.setId(DOCUMENT_UNVERSIONED_TYPE_ID); unversionedDocument.setParentTypeId(RegistryTypeManager.DOCUMENT_TYPE_ID); unversionedDocument.setIsVersionable(false); unversionedDocument.setContentStreamAllowed(ContentStreamAllowed.ALLOWED); RegistryTypeManager.addBasePropertyDefinitions(unversionedDocument); RegistryTypeManager.addDocumentPropertyDefinitions(unversionedDocument); return unversionedDocument; } @Override public RegistryDocument getGregNode(Resource node) { return new RegistryUnversionedDocument(repository, node, typeManager, pathManager); } }