1 /**
2  * @copyright
3  * ====================================================================
4  *    Licensed to the Apache Software Foundation (ASF) under one
5  *    or more contributor license agreements.  See the NOTICE file
6  *    distributed with this work for additional information
7  *    regarding copyright ownership.  The ASF licenses this file
8  *    to you under the Apache License, Version 2.0 (the
9  *    "License"); you may not use this file except in compliance
10  *    with the License.  You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  *    Unless required by applicable law or agreed to in writing,
15  *    software distributed under the License is distributed on an
16  *    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  *    KIND, either express or implied.  See the License for the
18  *    specific language governing permissions and limitations
19  *    under the License.
20  * ====================================================================
21  * @endcopyright
22  *
23  * @file org_apache_subversion_javahl_types_RevisionRangeList.cpp
24  * @brief Implementation of the native methods in the Java class
25  * RevisionRangeList.
26  */
27 
28 
29 #include "../include/org_apache_subversion_javahl_types_RevisionRangeList.h"
30 #include "JNIStackElement.h"
31 #include "RevisionRangeList.h"
32 #include "Pool.h"
33 
34 #include "svn_mergeinfo.h"
35 #include "svn_private_config.h"
36 
37 JNIEXPORT jobject JNICALL
Java_org_apache_subversion_javahl_types_RevisionRangeList_remove(JNIEnv * env,jobject jthis,jobject jeraser,jboolean jconsider_inheritance)38 Java_org_apache_subversion_javahl_types_RevisionRangeList_remove(
39     JNIEnv* env, jobject jthis, jobject jeraser,
40     jboolean jconsider_inheritance)
41 {
42   JNIEntry(RevisionRangeList, remove);
43 
44   SVN::Pool request_pool;
45 
46   RevisionRangeList rangelist = RevisionRangeList::create(jthis, request_pool);
47   CPPADDR_NULL_PTR(rangelist.get(), NULL);
48 
49   RevisionRangeList eraser(jeraser, request_pool);
50   CPPADDR_NULL_PTR(eraser.get(), NULL);
51 
52   svn_rangelist_t *output;
53   SVN_JNI_ERR(svn_rangelist_remove(&output, eraser.get(), rangelist.get(),
54                                    bool(jconsider_inheritance),
55                                    request_pool.getPool()),
56               NULL);
57   return RevisionRangeList(output).toList();
58 }
59