001/*
002 * (C) Copyright 2006-2008 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 *
016 * Contributors:
017 *     Alexandre Russel
018 *
019 * $Id$
020 */
021
022package org.nuxeo.ecm.platform.annotations.service;
023
024import java.util.List;
025
026import org.nuxeo.ecm.platform.annotations.api.UriResolver;
027import org.nuxeo.ecm.platform.annotations.descriptors.PermissionMapperDescriptor;
028
029/**
030 * @author Alexandre Russel
031 */
032public interface AnnotationConfigurationService {
033
034    void setUriResolver(UriResolver resolver);
035
036    UriResolver getUriResolver();
037
038    void setFilter(URLPatternFilter filter);
039
040    URLPatternFilter getUrlPatternFilter();
041
042    void setMetadataMapper(MetadataMapper mapper);
043
044    MetadataMapper getMetadataMapper();
045
046    void setPermissionManager(PermissionManager manager);
047
048    PermissionManager getPermissionManager();
049
050    void setAnnotabilityManager(AnnotabilityManager annotabilityManager);
051
052    AnnotabilityManager getAnnotabilityManager();
053
054    void addListener(EventListener listener);
055
056    List<EventListener> getListeners();
057
058    void setIDGenerator(AnnotationIDGenerator generator);
059
060    AnnotationIDGenerator getIDGenerator();
061
062    void setPermissionMapper(PermissionMapperDescriptor contribution);
063
064    String getCreateAnnotationPermission();
065
066    String getDeleteAnnotationPermission();
067
068    String getReadAnnotationPermission();
069
070    String getUpdateAnnotationPermission();
071}