Reviewers: t.broyer, Description: This patch adds getBytes() method to Blob (Gears 0.5.21.0)
Please review this at http://galgwt-reviews.appspot.com/41604 Affected files: gears/src/com/google/gwt/gears/client/blob/Blob.java Index: gears/src/com/google/gwt/gears/client/blob/Blob.java =================================================================== --- gears/src/com/google/gwt/gears/client/blob/Blob.java (revision 1519) +++ gears/src/com/google/gwt/gears/client/blob/Blob.java (working copy) @@ -16,6 +16,7 @@ package com.google.gwt.gears.client.blob; import com.google.gwt.core.client.JavaScriptObject; +import com.google.gwt.core.client.JsArrayInteger; /** * A Blob is a reference to an opaque block of binary data. @@ -57,6 +58,18 @@ protected Blob() { // required for overlay types } + + public byte[] getBytes() { + return toJavaArray(nativeGetBytes()); + } + + public byte[] getBytes(int offset) { + return toJavaArray(nativeGetBytes(offset)); + } + + public byte[] getBytes(int offset, int length) { + return toJavaArray(nativeGetBytes(offset, length)); + } public native int getLength()/*-{ return this.length; @@ -65,4 +78,25 @@ public native Blob slice(int offset, int length)/*-{ return this.slice(offset, length); }-*/; + + private native JsArrayInteger nativeGetBytes() /*-{ + return this.getBytes(); + }-*/; + + private native JsArrayInteger nativeGetBytes(int offset) /*-{ + return this.getBytes(offset); + }-*/; + + private native JsArrayInteger nativeGetBytes(int offset, int length) /*-{ + return this.getBytes(offset, length); + }-*/; + + private byte[] toJavaArray(JsArrayInteger bytes) { + int length = bytes.length(); + byte[] ret = new byte[length]; + for (int i = 0; i < length; i++) { + ret[i] = (byte) bytes.get(i); + } + return ret; + } } --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
