File Source: newmediaobjecttask.java
/*
P/P * Method: net.sourceforge.pebble.ant.metaweblog.NewMediaObjectTask__static_init
*/
1 /*
2 * Copyright (c) 2003-2005, Simon Brown
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * - Neither the name of Pebble nor the names of its contributors may
17 * be used to endorse or promote products derived from this software
18 * without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32 package net.sourceforge.pebble.ant.metaweblog;
33
34 import java.io.File;
35 import java.io.FileInputStream;
36 import java.io.InputStream;
37 import java.util.Hashtable;
38 import java.util.Vector;
39
/*
P/P * Method: void net.sourceforge.pebble.ant.metaweblog.NewMediaObjectTask()
*
* Postconditions:
* this.handler == &"metaWeblog"
*/
40 import org.apache.tools.ant.BuildException;
41 import org.apache.tools.ant.Task;
42 import org.apache.xmlrpc.XmlRpcClient;
43
44 /**
45 * Ant task to post a file to a blog via the MetaWeblog API.
46 *
47 * @author Simon Brown
48 */
49 public class NewMediaObjectTask extends Task {
50
51 private String blogid;
52 private String username;
53 private String password;
54 private String src;
55 private String dest;
56 private String url;
57 private String handler = "metaWeblog";
58
59 /**
60 * Performs the work of this task.
61 *
62 * @throws org.apache.tools.ant.BuildException if something goes wrong
63 */
/*
P/P * Method: void execute()
*
* Preconditions:
* init'ed(this.blogid)
* init'ed(this.dest)
* init'ed(this.handler)
* init'ed(this.password)
* init'ed(this.src)
* init'ed(this.url)
* init'ed(this.username)
*
* Presumptions:
* java.lang.System.out != null
* org.apache.xmlrpc.XmlRpcClient:execute(...)@87 != null
*/
64 public void execute() throws BuildException {
65
66 try {
67 System.out.println("Calling " + handler + ".newMediaObject at " + url);
68 System.out.println(" blogid=" + blogid);
69 System.out.println(" username=" + username);
70 System.out.println(" password=********");
71 System.out.println(" name=" + dest);
72 System.out.println(" type=" + "");
73
74 XmlRpcClient xmlrpc = new XmlRpcClient(url);
75 Vector params = new Vector();
76 params.add(blogid);
77 params.add(username);
78 params.add(password);
79
80 Hashtable struct = new Hashtable();
81 struct.put("name", dest);
82 struct.put("type", "");
83 struct.put("bits", readFile());
84
85 params.add(struct);
86
87 struct = (Hashtable)xmlrpc.execute(handler + ".newMediaObject", params);
88
89 System.out.println("URL for media object is " + struct.get("url"));
90
91 } catch (Exception e) {
92 throw new BuildException(e);
93 }
94 }
95
/*
P/P * Method: byte[] readFile()
*
* Preconditions:
* init'ed(this.src)
*
* Presumptions:
* java.io.File:length(...)@100 >= 0
*
* Postconditions:
* return_value == &new byte[](readFile#3)
* new byte[](readFile#3) num objects == 1
* (soft) return_value.length <= 264-1
*/
96 private byte[] readFile() throws Exception {
97 byte bytes[];
98 File file = new File(src);
99 InputStream in = new FileInputStream(src);
100 bytes = new byte[(int)file.length()];
101 in.read(bytes);
102 in.close();
103
104 return bytes;
105 }
106
107 /**
108 * Sets the blog id.
109 *
110 * @param blogid a String
111 */
/*
P/P * Method: void setBlogid(String)
*
* Postconditions:
* this.blogid == blogid
* init'ed(this.blogid)
*/
112 public void setBlogid(String blogid) {
113 this.blogid = blogid;
114 }
115
116 /**
117 * Sets the XML-RPC username.
118 *
119 * @param username a String
120 */
/*
P/P * Method: void setUsername(String)
*
* Postconditions:
* this.username == username
* init'ed(this.username)
*/
121 public void setUsername(String username) {
122 this.username = username;
123 }
124
125 /**
126 * Sets the XML-RPC password.
127 *
128 * @param password a String
129 */
/*
P/P * Method: void setPassword(String)
*
* Postconditions:
* this.password == password
* init'ed(this.password)
*/
130 public void setPassword(String password) {
131 this.password = password;
132 }
133
134 /**
135 * Sets the URL of the XML-RPC call.
136 *
137 * @param url the URL as a String
138 */
/*
P/P * Method: void setUrl(String)
*
* Postconditions:
* this.url == url
* init'ed(this.url)
*/
139 public void setUrl(String url) {
140 this.url = url;
141 }
142
143 /**
144 * Sets the name of the XML-RPC Blogger API handler (e.g. "blogger").
145 *
146 * @param handler the name of the handler as a String
147 */
/*
P/P * Method: void setHandler(String)
*
* Postconditions:
* this.handler == handler
* init'ed(this.handler)
*/
148 public void setHandler(String handler) {
149 this.handler = handler;
150 }
151
152 /**
153 * Sets the source file.
154 *
155 * @param src the source as a String
156 */
/*
P/P * Method: void setSrc(String)
*
* Postconditions:
* this.src == src
* init'ed(this.src)
*/
157 public void setSrc(String src) {
158 this.src = src;
159 }
160
161 /**
162 * Sets the destination file.
163 *
164 * @param dest the destination as a String
165 */
/*
P/P * Method: void setDest(String)
*
* Postconditions:
* this.dest == dest
* init'ed(this.dest)
*/
166 public void setDest(String dest) {
167 this.dest = dest;
168 }
169
170 }
SofCheck Inspector Build Version : 2.22510
| newmediaobjecttask.java |
2010-Jun-25 19:40:32 |
| newmediaobjecttask.class |
2010-Jul-19 20:23:40 |