API for java-utils
(master branch)
by
Stuart Halloway, Stephen C. Gilardi, Shawn Hoover, Perry Trolard, Stuart Sierra
Usage:
(ns your-namespace
(:require clojure.contrib.java-utils))
Overview
A set of utilties for dealing with Java stuff like files and properties.
Design goals:
(1) Ease-of-use. These APIs should be convenient. Performance is secondary.
(2) Duck typing. I hate having to think about the difference between
a string that names a file, and a File. Ditto for a ton of other
wrapper classes in the Java world (URL, InternetAddress). With these
APIs you should be able to think about domain equivalence, not type
equivalence.
(3) No bossiness. I am not marking any of these functions as private
the docstrings will tell you the intended usage but do what works for you.
Feedback welcome!
If something in this module violates the principle of least surprise, please
let me (Stu) and the Clojure community know via the mailing list.
Public Variables and Functions
as-file
multimethod
No usage documentation available
Interpret a String or a java.io.File as a File. Building block
for clojure.contrib.java-utils/file, which you should prefer
in most cases.
as-properties
function
Usage: (as-properties m)
Convert any seq of pairs to a java.utils.Properties instance.
Uses as-str to convert both keys and values into strings.
as-str
function
Usage: (as-str)
(as-str x)
(as-str x & ys)
Like clojure.core/str, but if an argument is a keyword or symbol,
its name will be used instead of its literal representation.
Example:
(str :foo :bar) ;;=> ":foo:bar"
(as-str :foo :bar) ;;=> "foobar"
Note that this does not apply to keywords or symbols nested within
data structures; they will be rendered as with str.
Example:
(str {:foo :bar}) ;;=> "{:foo :bar}"
(as-str {:foo :bar}) ;;=> "{:foo :bar}"
as-url
multimethod
Usage: (as-url arg)
Coerces argument (URL, URI, or String) to a java.net.URL.
delete-file
function
Usage: (delete-file f & [silently])
Delete file f. Raise an exception if it fails unless silently is true.
delete-file-recursively
function
Usage: (delete-file-recursively f & [silently])
Delete file f. If it's a directory, recursively delete all its contents.
Raise an exception if any deletion fails unless silently is true.
file
function
Usage: (file arg)
(file parent child)
(file parent child & more)
Returns a java.io.File from string or file args.
get-system-property
function
Usage: (get-system-property stringable)
(get-system-property stringable default)
Get a system property.
read-properties
function
Usage: (read-properties file-able)
Read properties from file-able.
relative-path-string
multimethod
No usage documentation available
Interpret a String or java.io.File as a relative path string.
Building block for clojure.contrib.java-utils/file.
set-system-properties
function
Usage: (set-system-properties settings)
Set some system properties. Nil clears a property.
wall-hack-field
function
Usage: (wall-hack-field class-name field-name obj)
Access to private or protected field.
wall-hack-method
function
Usage: (wall-hack-method class-name method-name params obj & args)
Calls a private or protected method.
params is a vector of class which correspond to the arguments to the method
obj is nil for static methods, the instance object otherwise
the method name is given as a symbol or a keyword (something Named)
with-system-properties
macro
Usage: (with-system-properties settings & body)
setting => property-name value
Sets the system properties to the supplied values, executes the body, and
sets the properties back to their original values. Values of nil are
translated to a clearing of the property.
write-properties
function
Usage: (write-properties m file-able)
(write-properties m file-able comments)
Write properties to file-able.