add commons

This commit is contained in:
josch 2011-02-10 09:33:45 +01:00
parent cc94657d18
commit cc7e10fb45
4 changed files with 231 additions and 0 deletions

View file

@ -0,0 +1,48 @@
package de.unibremen.informatik.hets.common.io
public class IOUtils {
private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
static {
}
public IOUtils() {
super();
}
public static long copy(InputStream in, OutputStream out) throws IOException {
byte[] buf = new byte[DEFAULT_BUFFER_SIZE];
int nread = 0;
long count = 0;
while((nread = in.read(buf)) >= 0) {
out.write(buf, 0, nread);
count += nread;
}
return count;
}
public static long copy(Reader in, Writer out) throws IOException {
char[] buf = new char[DEFAULT_BUFFER_SIZE];
int nread = 0;
long count = 0;
while((nread = in.read(buf)) >= 0) {
out.write(buf, 0, nread);
count += nread;
}
return count;
}
public static StringWriter getStringWriter(InputStream in) throws IOException {
StringWriter sw = new StringWriter();
copy(new InputStreamReader(in), sw);
return sw;
}
public static String getString(InputStream in) throws IOException {
return getStringWriter(in).toString();
}
public static StringBuffer getBuffer(InputStream in) throws IOException {
return getStringWriter(in).getBuffer();
}
}

View file

@ -0,0 +1,71 @@
package de.unibremen.informatik.hets.common.net;
import java.net.URLConnection;
import java.net.URL;
import java.util.Map;
import java.util.Iterator;
import java.util.Random;
import java.io.IOException;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
public class HttpPostMultipart {
URLConnection connection;
OutputStream os = null;
String boundary = "---------------------------" + randomString() + randomString() + randomString();
private static Random random = new Random();
protected void write(String s) throws IOException {
os.write(s.getBytes());
}
protected static String randomString() {
return Long.toString(random.nextLong(), 36);
}
public HttpPostMultipart(URL url) throws IOException {
connection = url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type",
"multipart/form-data; boundary=" + boundary);
os = connection.getOutputStream();
}
public InputStream post(Map parameters) throws IOException {
String name;
Object object;
if (parameters != null) {
for (Iterator i = parameters.entrySet().iterator(); i.hasNext();) {
Map.Entry entry = (Map.Entry)i.next();
name = entry.getKey().toString();
object = entry.getValue();
write("--" + boundary + "\r\n");
write("Content-Disposition: form-data; name=\"" + name + "\"");
if (object instanceof File) {
write("; filename=\"" + ((File)object).getPath() + "\"\r\n");
String type = connection.guessContentTypeFromName(((File)object).getPath());
if (type == null)
type = "application/octet-stream";
write("Content-Type: " + type + "\r\n");
write("\r\n");
pipe(new FileInputStream((File)object), os);
} else {
write("\r\n");
write("\r\n");
write(object.toString());
}
write("\r\n");
}
}
write("--" + boundary + "--\r\n");
os.close();
return connection.getInputStream();
}
public static InputStream post(URL url, Map parameters) throws IOException {
return new HttpPostMultipart(url).post(parameters);
}
}

View file

@ -0,0 +1,55 @@
package de.unibremen.informatik.hets.common.net;
import java.net.URLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;
import java.util.Iterator;
import java.io.IOException;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
public class HttpPostUrlencoded {
URLConnection connection;
OutputStream os = null;
protected void write(String s) throws IOException {
os.write(s.getBytes());
}
public HttpPostUrlencoded(URL url) throws IOException {
connection = url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
os = connection.getOutputStream();
}
public InputStream post(Map parameters) throws IOException {
String name;
Object object;
if (parameters != null) {
for (Iterator i = parameters.entrySet().iterator(); i.hasNext();) {
Map.Entry entry = (Map.Entry)i.next();
name = entry.getKey().toString();
object = entry.getValue();
write(name + "=");
if (object instanceof File) {
write(URLEncoder.encode(InputStreamToString(new FileInputStream((File)object)), "UTF-8"));
} else {
write(object.toString());
}
write("&");
}
}
os.close();
return connection.getInputStream();
}
public static InputStream post(URL url, Map parameters) throws IOException {
return new HttpPostUrlencoded(url).post(parameters);
}
}

View file

@ -0,0 +1,57 @@
package de.unibremen.informatik.hets.common.xml
public class Dom {
static {
}
public Dom() {
super();
}
public static String getTextContent(Element item) {
StringBuilder sb = new StringBuilder();
NodeList list = ((Node)item).getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node child = list.item(i);
if (child.getNodeType() == Node.TEXT_NODE) {
sb.append(child.getNodeValue());
}
}
return sb.toString();
}
public static Element getFirstChildElement(Element item) {
return getFirstChildElement((Node)item);
}
public static Element getFirstChildElement(Node item) {
NodeList list = item.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node child = list.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
return (Element)child;
}
}
return null;
}
public static Node getFirstChild(Node item, String name) {
NodeList list = item.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
if (list.item(i).getNodeName() == name) {
return list.item(i);
}
}
return null;
}
public static boolean hasChildNode(Node item, String name) {
NodeList list = item.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
if (list.item(i).getNodeName() == name) {
return true;
}
}
return false;
}
}