diff --git a/Code/JavaWrappers/csharp_wrapper/GraphMolCSharp.i b/Code/JavaWrappers/csharp_wrapper/GraphMolCSharp.i index fef92f1a8..113711fe8 100644 --- a/Code/JavaWrappers/csharp_wrapper/GraphMolCSharp.i +++ b/Code/JavaWrappers/csharp_wrapper/GraphMolCSharp.i @@ -46,8 +46,8 @@ /* Include the base types before anything that will utilize them */ %include "stdint.i" %include "std_string.i" -%include "../gmwrapper/std_list.i" -%include "../gmwrapper/std_vector.i" +%include "std_list.i" +%include "extend_std_vector.i" %include "std_map.i" %include "std_pair.i" %include "carrays.i" diff --git a/Code/JavaWrappers/csharp_wrapper/std_list.i b/Code/JavaWrappers/csharp_wrapper/std_list.i new file mode 100644 index 000000000..257295d19 --- /dev/null +++ b/Code/JavaWrappers/csharp_wrapper/std_list.i @@ -0,0 +1,65 @@ +/* ----------------------------------------------------------------------------- + * See the LICENSE file for information on copyright, usage and redistribution + * of SWIG, and the README file for authors - http://www.swig.org/release.html. + * + * std_list.i + * ----------------------------------------------------------------------------- */ + +%include + +%{ +#include +#include +%} + +namespace std { + + template class list { + public: + typedef size_t size_type; + typedef T value_type; + typedef const value_type& const_reference; + list(); + size_type size() const; + %rename(isEmpty) empty; + bool empty() const; + void clear(); + %rename(add) push_back; + void push_back(const value_type& x); + %extend { + const_reference get(int i) throw (std::out_of_range) { + int size = int(self->size()); + int j; + if (i>=0 && i::const_iterator p; + p=self->begin(); + for (j=0; j &o){ + if(self->size()==o.size()){ + std::list< T >::const_iterator sIt=self->begin(); + std::list< T >::const_iterator oIt=o.begin(); + while(sIt != self->end()){ + if(*sIt != *oIt) return false; + ++sIt; + ++oIt; + } + return true; + } else { + return false; + } + } + + } + }; +} + +%define specialize_std_list(T) +#warning "specialize_std_list - specialization for type T no longer needed" +%enddef + diff --git a/Code/JavaWrappers/extend_std_vector.i b/Code/JavaWrappers/extend_std_vector.i new file mode 100644 index 000000000..60d8ed87e --- /dev/null +++ b/Code/JavaWrappers/extend_std_vector.i @@ -0,0 +1,27 @@ +/* ----------------------------------------------------------------------------- + * extend_std_vector.i + * ----------------------------------------------------------------------------- */ + + +%extend std::vector { + bool equals(const vector &o){ + if(self->size()==o.size()){ + std::vector< T >::const_iterator sIt=self->begin(); + std::vector< T >::const_iterator oIt=o.begin(); + while(sIt != self->end()){ + if(*sIt != *oIt) return false; + ++sIt; + ++oIt; + } + return true; + } else { + return false; + } + } + }; + +%include + + + + diff --git a/Code/JavaWrappers/gmwrapper/GraphMolJava.i b/Code/JavaWrappers/gmwrapper/GraphMolJava.i index 7ee21ba88..edba8c4d9 100644 --- a/Code/JavaWrappers/gmwrapper/GraphMolJava.i +++ b/Code/JavaWrappers/gmwrapper/GraphMolJava.i @@ -47,7 +47,7 @@ %include "stdint.i" %include "std_string.i" %include "std_list.i" -%include "std_vector.i" +%include "extend_std_vector.i" %include "std_map.i" %include "std_pair.i" %include "carrays.i" @@ -262,4 +262,4 @@ typedef unsigned long long int uintmax_t; %{ #include %} -%include \ No newline at end of file +%include diff --git a/Code/JavaWrappers/gmwrapper/std_vector.i b/Code/JavaWrappers/gmwrapper/std_vector.i deleted file mode 100644 index 5b2252c27..000000000 --- a/Code/JavaWrappers/gmwrapper/std_vector.i +++ /dev/null @@ -1,99 +0,0 @@ -/* ----------------------------------------------------------------------------- - * std_vector.i - * ----------------------------------------------------------------------------- */ - -%include - -%{ -#include -#include -%} - -namespace std { - - template class vector { - public: - typedef size_t size_type; - typedef T value_type; - typedef const value_type& const_reference; - vector(); - vector(size_type n); - size_type size() const; - size_type capacity() const; - void reserve(size_type n); - %rename(isEmpty) empty; - bool empty() const; - void clear(); - %rename(add) push_back; - void push_back(const value_type& x); - %extend { - const_reference get(int i) throw (std::out_of_range) { - int size = int(self->size()); - if (i>=0 && isize()); - if (i>=0 && i &o){ - if(self->size()==o.size()){ - std::vector< T >::const_iterator sIt=self->begin(); - std::vector< T >::const_iterator oIt=o.begin(); - while(sIt != self->end()){ - if(*sIt != *oIt) return false; - ++sIt; - ++oIt; - } - return true; - } else { - return false; - } - } - } - }; - - // bool specialization - template<> class vector { - public: - typedef size_t size_type; - typedef bool value_type; - typedef bool const_reference; - vector(); - vector(size_type n); - size_type size() const; - size_type capacity() const; - void reserve(size_type n); - %rename(isEmpty) empty; - bool empty() const; - void clear(); - %rename(add) push_back; - void push_back(const value_type& x); - %extend { - const_reference get(int i) throw (std::out_of_range) { - int size = int(self->size()); - if (i>=0 && isize()); - if (i>=0 && i