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
12
* http://www.apache.org/licenses/LICENSE-2.0
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
20
* ====================================================================
24
#ifndef SVN_JAVAHL_EXTERNAL_ITEM_HPP
25
#define SVN_JAVAHL_EXTERNAL_ITEM_HPP
34
#include "jniwrapper/jni_object.hpp"
35
#include "jniwrapper/jni_string.hpp"
40
* Object wrapper for @c org.apache.subversion.javahl.types.ExternalItem.
44
class ExternalItem : public ::Java::Object
48
* Constructs a wrapper around @a jthis.
49
* The constructor does not verify the class of the wrapped object.
51
explicit ExternalItem(::Java::Env env, jobject jthis);
54
* Constructs a new @c ExternalItem object and wrapper.
56
explicit ExternalItem(::Java::Env env,
57
const char* target_dir,
59
const svn_opt_revision_t* revision,
60
const svn_opt_revision_t* peg_revision);
63
* Returns the value of the wrapped object's @c targetDir member.
65
std::string target_dir() const
67
const ::Java::String::Contents contents(m_target_dir);
68
return std::string(contents.c_str());
72
* Returns the value of the wrapped object's @c url member.
74
std::string url() const
76
const ::Java::String::Contents contents(m_url);
77
return std::string(contents.c_str());
81
* Returns the value of the wrapped object's @c revision member.
83
const svn_opt_revision_t* revision() const
89
* Returns the value of the wrapped object's @c pegRevision member.
91
const svn_opt_revision_t* peg_revision() const
93
return &m_peg_revision;
97
* Returns an @c svn_wc_external_item2_t allocated from @a pool and
98
* filled in with this object's values.
100
svn_wc_external_item2_t* get_external_item(SVN::Pool& pool) const;
104
* This object's implementation details.
106
class ClassImpl : public Object::ClassImpl
108
friend class ::Java::ClassCacheImpl;
111
explicit ClassImpl(::Java::Env env, jclass cls);
114
virtual ~ClassImpl();
116
const ::Java::MethodID m_mid_ctor;
117
const ::Java::FieldID m_fid_target_dir;
118
const ::Java::FieldID m_fid_url;
119
const ::Java::FieldID m_fid_revision;
120
const ::Java::FieldID m_fid_peg_revision;
123
const ClassImpl& impl() const
125
return *dynamic_cast<const ClassImpl*>(m_impl);
128
friend class ::Java::ClassCacheImpl;
129
static const char* const m_class_name;
131
::Java::String m_target_dir;
132
::Java::String m_url;
133
svn_opt_revision_t m_revision;
134
svn_opt_revision_t m_peg_revision;
137
} // namespace JavaHL
139
#endif // SVN_JAVAHL_EXTERNAL_ITEM_HPP