From 92d17c596ca8d82a0ad7c56a2a8b8b02bd3cd45d Mon Sep 17 00:00:00 2001
From: Julien Malik <julien.malik@c-s.fr>
Date: Sat, 5 Nov 2011 18:02:11 +0100
Subject: [PATCH] ENH: [SWIG] wrap destructors for Java

---
 Code/Wrappers/SWIG/Java.i           |  4 ++--
 Code/Wrappers/SWIG/itkBase.i        | 20 +++++++++++++++-----
 Code/Wrappers/SWIG/otbApplication.i |  6 +++---
 3 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/Code/Wrappers/SWIG/Java.i b/Code/Wrappers/SWIG/Java.i
index d99259b5b7..e918752355 100644
--- a/Code/Wrappers/SWIG/Java.i
+++ b/Code/Wrappers/SWIG/Java.i
@@ -61,7 +61,7 @@
        void UnRegister();
      protected:
   };
-
+/*
   %extend itkClass {
     public:
     itkClass() {
@@ -75,7 +75,7 @@
       self->UnRegister();
     }
   }
-/*
+
   %typemap(out) itkClass##_Pointer {
     itkClass* ptrRaw = $1.GetPointer();
     if (ptrRaw) {
diff --git a/Code/Wrappers/SWIG/itkBase.i b/Code/Wrappers/SWIG/itkBase.i
index 3cc1b1c9c4..ae99d91479 100644
--- a/Code/Wrappers/SWIG/itkBase.i
+++ b/Code/Wrappers/SWIG/itkBase.i
@@ -68,7 +68,9 @@ class itkIndent {
      virtual void SetReferenceCount(int arg0);
    protected:
      itkLightObject();
-     //~itkLightObject();
+#if SWIGJAVA
+     ~itkLightObject();
+#endif
  };
  DECLARE_REF_COUNT_CLASS( itkLightObject )
  
@@ -100,7 +102,9 @@ class itkIndent {
      void SetMetaDataDictionary(itkMetaDataDictionary const & rhs);
    protected:
      itkObject();
-     //~itkObject();
+#if SWIGJAVA
+     ~itkObject();
+#endif
  };
  DECLARE_REF_COUNT_CLASS( itkObject )
 
@@ -110,7 +114,9 @@ class itkIndent {
      const float& GetProgress();
    protected:
      itkProcessObject();
-     //~itkProcessObject();
+#if SWIGJAVA
+     ~itkProcessObject();
+#endif
  };
  DECLARE_REF_COUNT_CLASS( itkProcessObject )
 
@@ -136,7 +142,9 @@ class itkIndent {
      char const * GetLibraryPath();
    protected:
      itkObjectFactoryBase();
-     //~itkObjectFactoryBase();
+#if SWIGJAVA
+     ~itkObjectFactoryBase();
+#endif
  };
  DECLARE_REF_COUNT_CLASS( itkObjectFactoryBase )
 
@@ -156,7 +164,9 @@ class itkIndent {
      virtual void Execute(itkObject * caller, itkEventObject const & event) = 0;
    protected:
      itkCommand();
-     //~itkCommand();
+#if SWIGJAVA
+     ~itkCommand();
+#endif
  };
  DECLARE_REF_COUNT_CLASS( itkCommand )
 
diff --git a/Code/Wrappers/SWIG/otbApplication.i b/Code/Wrappers/SWIG/otbApplication.i
index f45bd0ded8..5a68db0ba7 100644
--- a/Code/Wrappers/SWIG/otbApplication.i
+++ b/Code/Wrappers/SWIG/otbApplication.i
@@ -176,10 +176,10 @@ public:
 
 protected:
   Application();
-  //virtual ~Application();
-
+#if SWIGJAVA
+  virtual ~Application();
+#endif
 private:
-
   Application(const Application &);
   void operator =(const Application&);
 };
-- 
GitLab