This project has retired. For details please refer to its Attic page.
CmisBinding xref

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.chemistry.opencmis.commons.spi;
20  
21  /**
22   * Entry point for all CMIS binding related operations. It provides access to
23   * the service interface objects which are very similar to the CMIS 1.0 domain
24   * model.
25   * 
26   * <p>
27   * Each instance of this class represents a session. A session comprises of a
28   * connection to one CMIS endpoint over one binding for one particular user and
29   * a set of caches. All repositories that are exposed by this CMIS endpoint are
30   * accessible in this session. All CMIS operations and extension points are
31   * provided if they are supported by the underlying binding.
32   * </p>
33   */
34  public interface CmisBinding {
35  
36      /**
37       * Gets a Repository Service interface object.
38       */
39      RepositoryService getRepositoryService();
40  
41      /**
42       * Gets a Navigation Service interface object.
43       */
44      NavigationService getNavigationService();
45  
46      /**
47       * Gets an Object Service interface object.
48       */
49      ObjectService getObjectService();
50  
51      /**
52       * Gets a Versioning Service interface object.
53       */
54      VersioningService getVersioningService();
55  
56      /**
57       * Gets a Relationship Service interface object.
58       */
59      RelationshipService getRelationshipService();
60  
61      /**
62       * Gets a Discovery Service interface object.
63       */
64      DiscoveryService getDiscoveryService();
65  
66      /**
67       * Gets a Multifiling Service interface object.
68       */
69      MultiFilingService getMultiFilingService();
70  
71      /**
72       * Gets an ACL Service interface object.
73       */
74      AclService getAclService();
75  
76      /**
77       * Gets a Policy Service interface object.
78       */
79      PolicyService getPolicyService();
80  
81      /**
82       * Gets a factory for CMIS binding specific objects.
83       */
84      BindingsObjectFactory getObjectFactory();
85  
86      /**
87       * Gets the authentication provider.
88       */
89      AuthenticationProvider getAuthenticationProvider();
90  
91      /**
92       * Clears all caches of the current CMIS binding session.
93       */
94      void clearAllCaches();
95  
96      /**
97       * Clears all caches of the current CMIS binding session that are related to
98       * the given repository.
99       * 
100      * @param repositoryId
101      *            the repository id
102      */
103     void clearRepositoryCache(String repositoryId);
104 
105     /**
106      * Releases all resources assigned to this binding instance.
107      */
108     void close();
109 }