You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/04/29 08:17:41 UTC
svn commit: r1741556 - in
/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments:
Part.java PartDataSource.java PartImpl.java
Author: veithen
Date: Fri Apr 29 06:17:41 2016
New Revision: 1741556
URL: http://svn.apache.org/viewvc?rev=1741556&view=rev
Log:
AXIOM-350: Expose the underlying Blob via the Part interface.
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java?rev=1741556&r1=1741555&r2=1741556&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/Part.java Fri Apr 29 06:17:41 2016
@@ -23,6 +23,8 @@ import java.io.InputStream;
import javax.activation.DataHandler;
+import org.apache.axiom.blob.Blob;
+
/**
* Interface representing a MIME part. A part can be the SOAP part (or more generally the root part
* for non-MTOM XOP encoded messages) or an attachment part.
@@ -34,11 +36,6 @@ public interface Part {
public DataHandler getDataHandler();
/**
- * @return size
- */
- public long getSize();
-
- /**
* @return content type of the part
*/
public String getContentType();
@@ -60,6 +57,13 @@ public interface Part {
/**
* Get the content of this part.
+ *
+ * @return the content of this part
+ */
+ public Blob getBlob();
+
+ /**
+ * Get the content of this part.
*
* @param preserve
* {@code true} if the content should be preserved so that it can be read multiple
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java?rev=1741556&r1=1741555&r2=1741556&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartDataSource.java Fri Apr 29 06:17:41 2016
@@ -53,6 +53,6 @@ class PartDataSource implements SizeAwar
}
public long getSize() {
- return part.getSize();
+ return part.getBlob().getSize();
}
}
Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java?rev=1741556&r1=1741555&r2=1741556&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/attachments/PartImpl.java Fri Apr 29 06:17:41 2016
@@ -20,6 +20,7 @@
package org.apache.axiom.attachments;
import org.apache.axiom.attachments.Part;
+import org.apache.axiom.blob.Blob;
import org.apache.axiom.blob.OverflowableBlob;
import org.apache.axiom.blob.WritableBlob;
import org.apache.axiom.blob.WritableBlobFactory;
@@ -137,10 +138,6 @@ final class PartImpl implements Part {
return dataHandler;
}
- public long getSize() {
- return getContent().getSize();
- }
-
private WritableBlob getContent() {
switch (state) {
case STATE_UNREAD:
@@ -153,6 +150,18 @@ final class PartImpl implements Part {
}
}
+ @Override
+ public Blob getBlob() {
+ WritableBlob blob = getContent();
+ if (blob instanceof OverflowableBlob) {
+ WritableBlob overflowBlob = ((OverflowableBlob)blob).getOverflowBlob();
+ if (overflowBlob != null) {
+ blob = overflowBlob;
+ }
+ }
+ return blob;
+ }
+
private static void checkParserState(EntityState state, EntityState expected) throws IllegalStateException {
if (expected != state) {
throw new IllegalStateException("Internal error: expected parser to be in state "