View Javadoc

1   /*
2    *
3    * Licensed to the Apache Software Foundation (ASF) under one
4    * or more contributor license agreements.  See the NOTICE file
5    * distributed with this work for additional information
6    * regarding copyright ownership.  The ASF licenses this file
7    * to you under the Apache License, Version 2.0 (the
8    * "License"); you may not use this file except in compliance
9    * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   *
20   */
21  package org.apache.chemistry.opencmis.client.bindings.spi.local;
22  
23  import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
24  import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
25  import org.apache.chemistry.opencmis.commons.server.CmisService;
26  import org.apache.chemistry.opencmis.commons.server.CmisServiceFactory;
27  import org.apache.chemistry.opencmis.commons.spi.MultiFilingService;
28  
29  public class MultiFilingServiceImpl extends AbstractLocalService implements MultiFilingService {
30  
31      /**
32       * Constructor.
33       */
34      public MultiFilingServiceImpl(BindingSession session, CmisServiceFactory factory) {
35          setSession(session);
36          setServiceFactory(factory);
37      }
38  
39      @Override
40      public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
41              ExtensionsData extension) {
42          CmisService service = getService(repositoryId);
43  
44          try {
45              if (stopBeforeService(service)) {
46                  return;
47              }
48  
49              service.addObjectToFolder(repositoryId, objectId, folderId, allVersions, extension);
50  
51              if (stopAfterService(service)) {
52                  return;
53              }
54          } finally {
55              service.close();
56          }
57      }
58  
59      @Override
60      public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
61          CmisService service = getService(repositoryId);
62  
63          try {
64              if (stopBeforeService(service)) {
65                  return;
66              }
67  
68              service.removeObjectFromFolder(repositoryId, objectId, folderId, extension);
69  
70              if (stopAfterService(service)) {
71                  return;
72              }
73          } finally {
74              service.close();
75          }
76      }
77  }