summaryrefslogtreecommitdiff
path: root/Lib/java/java.swg
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2011-11-25 20:56:56 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2011-11-25 20:56:56 +0000
commit6a74028e65821de5cf1650bb906d8deaf177a4a5 (patch)
treea641cde6e6a7cc6666ab7845b5e73ce96418762b /Lib/java/java.swg
parent959fdf20538cdec8e8ed7f5890512d323f9865a4 (diff)
downloadswig-6a74028e65821de5cf1650bb906d8deaf177a4a5.tar.gz
Fix inconsistencies in Java and C# getCPtr() and pointer constructor visibility - change to protected/internal from public. Add SWIG_JAVABODY_PROXY, SWIG_JAVABODY_TYPEWRAPPER and SWIG_CSBODY_PROXY, SWIG_CSBODY_TYPEWRAPPER for users to easily change when using multiple modules.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12843 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'Lib/java/java.swg')
-rw-r--r--Lib/java/java.swg36
1 files changed, 20 insertions, 16 deletions
diff --git a/Lib/java/java.swg b/Lib/java/java.swg
index 159aafb17..fbea6a07c 100644
--- a/Lib/java/java.swg
+++ b/Lib/java/java.swg
@@ -1116,9 +1116,11 @@ SWIGINTERN const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
/* javabody typemaps */
-%define SWIG_JAVABODY_METHODS(PTRCTOR_VISIBILITY, CPTR_VISIBILITY, TYPENAME...)
+%define SWIG_JAVABODY_METHODS(PTRCTOR_VISIBILITY, CPTR_VISIBILITY, TYPE...) SWIG_JAVABODY_PROXY(PTRCTOR_VISIBILITY, CPTR_VISIBILITY, TYPE) %enddef // legacy name
+
+%define SWIG_JAVABODY_PROXY(PTRCTOR_VISIBILITY, CPTR_VISIBILITY, TYPE...)
// Base proxy classes
-%typemap(javabody) TYPENAME %{
+%typemap(javabody) TYPE %{
private long swigCPtr;
protected boolean swigCMemOwn;
@@ -1133,7 +1135,7 @@ SWIGINTERN const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
%}
// Derived proxy classes
-%typemap(javabody_derived) TYPENAME %{
+%typemap(javabody_derived) TYPE %{
private long swigCPtr;
PTRCTOR_VISIBILITY $javaclassname(long cPtr, boolean cMemoryOwn) {
@@ -1147,43 +1149,45 @@ SWIGINTERN const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
%}
%enddef
-/* Set the default for SWIGTYPE: pointer constructor is protected,
- getCPtr is protected. Season to your own taste! */
-
-SWIG_JAVABODY_METHODS(public, public, SWIGTYPE)
-
+%define SWIG_JAVABODY_TYPEWRAPPER(PTRCTOR_VISIBILITY, DEFAULTCTOR_VISIBILITY, CPTR_VISIBILITY, TYPE...)
// Typewrapper classes
-%typemap(javabody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [] %{
+%typemap(javabody) TYPE *, TYPE &, TYPE [] %{
private long swigCPtr;
- protected $javaclassname(long cPtr, boolean futureUse) {
+ PTRCTOR_VISIBILITY $javaclassname(long cPtr, boolean futureUse) {
swigCPtr = cPtr;
}
- protected $javaclassname() {
+ DEFAULTCTOR_VISIBILITY $javaclassname() {
swigCPtr = 0;
}
- protected static long getCPtr($javaclassname obj) {
+ CPTR_VISIBILITY static long getCPtr($javaclassname obj) {
return (obj == null) ? 0 : obj.swigCPtr;
}
%}
-%typemap(javabody) SWIGTYPE (CLASS::*) %{
+%typemap(javabody) TYPE (CLASS::*) %{
private String swigCMemberPtr;
- protected $javaclassname(String cMemberPtr, boolean futureUse) {
+ PTRCTOR_VISIBILITY $javaclassname(String cMemberPtr, boolean futureUse) {
swigCMemberPtr = cMemberPtr;
}
- protected $javaclassname() {
+ DEFAULTCTOR_VISIBILITY $javaclassname() {
swigCMemberPtr = null;
}
- protected static String getCMemberPtr($javaclassname obj) {
+ CPTR_VISIBILITY static String getCMemberPtr($javaclassname obj) {
return obj.swigCMemberPtr;
}
%}
+%enddef
+
+/* Set the default javabody typemaps to use protected visibility.
+ Use the macros to change to public if using multiple modules. */
+SWIG_JAVABODY_PROXY(public, public, SWIGTYPE)
+SWIG_JAVABODY_TYPEWRAPPER(protected, protected, protected, SWIGTYPE)
%typemap(javafinalize) SWIGTYPE %{
protected void finalize() {