*HEADDESK* Ugh. It would have helped if I'd spelled "doMkdir" as "doMkDir" since that's what it's actually called. I think I'll step away of the keyboard now. Obviously my brain's not firing on all cylinders tonight.
Thanks Daniel for the tip about into-array. Much better than writing my own. // ben On Sun, Feb 20, 2011 at 19:25, B Smith-Mannschott <[email protected]> wrote: > (sorry, the first message got sent before it was actually done. > butterfingers.) > > > Hi all! > > My new goal in life is to learn my way around the SVNKit API, using > Clojure. It didn't take me long to reach the first stumbling block: > > Here's the situation: > > The class SVNCommitClient [1] defines two overloads of doMkDir. I'm > trying to call the two argument version: > > SVNCommitInfo doMkDir(SVNURL[] urls, String commitMessage) > > [1] http://svnkit.com/javadoc/org/tmatesoft/svn/core/wc/SVNCommitClient.html > > Instead of getting back and SVNCommitInfo, I'm getting an exception > out of the bowels of the compiler telling me that it can not resolve > the method: > > No matching method found: doMkdir for class > org.tmatesoft.svn.core.wc.SVNCommitClient > [Thrown class java.lang.IllegalArgumentException] > > Here's what I'm trying to do: > > (ns bpsmithmannschott.svnkit > (:import > [org.tmatesoft.svn.core SVNURL] > [org.tmatesoft.svn.core.wc SVNClientManager])) > > (.. (SVNClientManager/newInstance) > (getCommitClient) > (doMkdir (new-array SVNURL > [(SVNURL/parseURIEncoded "svn://meh/scratch/foo")]) > "foo")) > > new-array is something I wrote myself, which is like to-array except that > one can specify the element type of the array instead of always getting > Object[] > and like to-array except that the array contents can be specified: > > bpsmithmannschott.svnkit> (type (new-array String ["Foo" "Bar"])) > [Ljava.lang.String; > > (defn new-array [type elements] > (let [n (count elements), > a (make-array type n) > store (case type > Boolean/TYPE #(aset-boolean a %1 %2) > Byte/TYPE #(aset-byte a %1 %2) > Char/TYPE #(aset-char a %1 %2) > Double/TYPE #(aset-double a %1 %2) > Float/TYPE #(aset-float a %1 %2) > Integer/TYPE #(aset-int a %1 %2) > Long/TYPE #(aset-long a %1 %2) > Short/TYPE #(aset-short a %1 %2) > #(aset a %1 %2))] > (dorun (map-indexed store elements)) > a)) > > I've also tried type hinting the arguments to the doMkdir call, but the > results are the same as above: > > (doMkdir ^"[Lorg.tmatesoft.svn.core.SVNURL;" (new-array SVNURL > [(SVNURL/parseURIEncoded "svn://meh/scratch/foo")]) > "foo") > > What am I doing wrong? > > Do I have to write static casting functions a'la "ints", "floats" etc > *in* *Java* to get this to work? > > Thanks, > > // Ben > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en
