]> Creatis software - CreaPhase.git/blobdiff - octave_packages/java-1.2.8/javaclasspath.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / java-1.2.8 / javaclasspath.m
diff --git a/octave_packages/java-1.2.8/javaclasspath.m b/octave_packages/java-1.2.8/javaclasspath.m
new file mode 100644 (file)
index 0000000..50b17ee
--- /dev/null
@@ -0,0 +1,106 @@
+## Copyright (C) 2007 Michael Goffioul, 2010 Martin Hepperle
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; If not, see <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn {Function file}  {}          javaclasspath
+## @deftypefnx {Function file} {@var{STATIC} =} javaclasspath
+## @deftypefnx {Function file} {[@var{STATIC}, @var{DYNAMIC}] =} javaclasspath
+## @deftypefnx {Function file} {@var{PATH} =} javaclasspath (@var{WHAT})
+##
+## Returns the class path of the Java virtual machine in
+## the form of a cell array of strings. 
+##
+## If called without input parameter:@*
+## @itemize
+## @item If no output variable is given, the result is simply printed 
+## on the standard output.
+## @item If one output variable @var{STATIC} is given, the result is
+## the static classpath.
+## @item If two output variables @var{STATIC} and @var{DYNAMIC} are 
+## given, the first variable will contain the static classpath,
+## the second will be filled with the dynamic claspath.
+## @end itemize
+## 
+## If called with a single input parameter @var{WHAT}:@*
+## @itemize
+## @item If @var{WHAT} is '-static' the static classpath is returned.
+## @item If @var{WHAT} is '-dynamic' the dynamic  classpath is returned.
+## @item If @var{WHAT} is '-all' the static and the dynamic classpath 
+## are returned in a single cell array
+## @end itemize
+## @end deftypefn
+## @seealso{javaaddpath,javarmpath}
+
+function varargout = javaclasspath (which)
+
+  % dynamic classpath
+  dynamic_path = java_invoke ("org.octave.ClassHelper", "getClassPath");
+  dynamic_path_list = strsplit (dynamic_path, pathsep ());
+
+  % static classpath
+  static_path = java_invoke ('java.lang.System', 'getProperty', 'java.class.path');
+  static_path_list = strsplit (static_path, pathsep ());
+  if (length (static_path_list) > 1)
+    % remove first element (which is .../octave.jar)
+    static_path_list = static_path_list(2:length (static_path_list));
+  else
+    static_path_list = {};
+  end
+
+  switch nargin
+    case 0
+      switch nargout
+        case 0
+          disp_path_list ( 'STATIC', static_path_list )
+          disp('');
+          disp_path_list ( 'DYNAMIC', dynamic_path_list )
+        case 1
+          varargout{1} = cellstr (dynamic_path_list);
+        case 2
+          varargout{1} = cellstr (dynamic_path_list);
+          varargout{2} = cellstr (static_path_list);
+      endswitch
+        
+    case 1
+      switch nargout
+        case 0
+          if (strcmp (which, '-static') == 1)
+            disp_path_list ( 'STATIC', static_path_list )
+          elseif (strcmp (which, '-dynamic') == 1)
+            disp_path_list ( 'DYNAMIC', dynamic_path_list )
+          end
+        case 1
+          if (strcmp (which, '-static') == 1)
+            varargout{1} = cellstr (static_path_list);
+          elseif (strcmp (which, '-dynamic') == 1)
+            varargout{1} = cellstr (dynamic_path_list);
+          elseif (strcmp (which, '-all') == 1)
+            varargout{1} = cellstr ([static_path_list, dynamic_path_list]);
+          end
+      endswitch
+  endswitch
+  
+end
+#
+# Display cell array of paths
+#
+function disp_path_list ( which, path_list )
+  printf ('   %s JAVA PATH\n\n', which);
+  if (length (path_list) > 0)
+    printf ('      %s\n', path_list{:});
+  else
+    printf ('      - empty -\n');
+  endif
+end