1 /* 2 * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/ByteArrayPartSource.java,v 1.7 2004/04/18 23:51:37 jsdever Exp $ 3 * $Revision: 480424 $ 4 * $Date: 2006-11-29 06:56:49 +0100 (Wed, 29 Nov 2006) $ 5 * 6 * ==================================================================== 7 * 8 * Licensed to the Apache Software Foundation (ASF) under one or more 9 * contributor license agreements. See the NOTICE file distributed with 10 * this work for additional information regarding copyright ownership. 11 * The ASF licenses this file to You under the Apache License, Version 2.0 12 * (the "License"); you may not use this file except in compliance with 13 * the License. You may obtain a copy of the License at 14 * 15 * http://www.apache.org/licenses/LICENSE-2.0 16 * 17 * Unless required by applicable law or agreed to in writing, software 18 * distributed under the License is distributed on an "AS IS" BASIS, 19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 * See the License for the specific language governing permissions and 21 * limitations under the License. 22 * ==================================================================== 23 * 24 * This software consists of voluntary contributions made by many 25 * individuals on behalf of the Apache Software Foundation. For more 26 * information on the Apache Software Foundation, please see 27 * <http://www.apache.org/>. 28 * 29 */ 30 31 package com.android.internal.http.multipart; 32 33 import java.io.ByteArrayInputStream; 34 import java.io.InputStream; 35 36 /** 37 * A PartSource that reads from a byte array. This class should be used when 38 * the data to post is already loaded into memory. 39 * 40 * @author <a href="mailto:becke@u.washington.edu">Michael Becke</a> 41 * 42 * @since 2.0 43 */ 44 public class ByteArrayPartSource implements PartSource { 45 46 /** Name of the source file. */ 47 private String fileName; 48 49 /** Byte array of the source file. */ 50 private byte[] bytes; 51 52 /** 53 * Constructor for ByteArrayPartSource. 54 * 55 * @param fileName the name of the file these bytes represent 56 * @param bytes the content of this part 57 */ ByteArrayPartSource(String fileName, byte[] bytes)58 public ByteArrayPartSource(String fileName, byte[] bytes) { 59 60 this.fileName = fileName; 61 this.bytes = bytes; 62 63 } 64 65 /** 66 * @see PartSource#getLength() 67 */ getLength()68 public long getLength() { 69 return bytes.length; 70 } 71 72 /** 73 * @see PartSource#getFileName() 74 */ getFileName()75 public String getFileName() { 76 return fileName; 77 } 78 79 /** 80 * @see PartSource#createInputStream() 81 */ createInputStream()82 public InputStream createInputStream() { 83 return new ByteArrayInputStream(bytes); 84 } 85 86 } 87