01: /*
02: * Copyright 2005-2007 Noelios Consulting.
03: *
04: * The contents of this file are subject to the terms of the Common Development
05: * and Distribution License (the "License"). You may not use this file except in
06: * compliance with the License.
07: *
08: * You can obtain a copy of the license at
09: * http://www.opensource.org/licenses/cddl1.txt See the License for the specific
10: * language governing permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL HEADER in each file and
13: * include the License file at http://www.opensource.org/licenses/cddl1.txt If
14: * applicable, add the following below this CDDL HEADER, with the fields
15: * enclosed by brackets "[]" replaced with your own identifying information:
16: * Portions Copyright [yyyy] [name of copyright owner]
17: */
18:
19: package org.restlet.resource;
20:
21: import java.io.IOException;
22: import java.nio.channels.ReadableByteChannel;
23: import java.nio.channels.WritableByteChannel;
24:
25: import org.restlet.data.MediaType;
26: import org.restlet.util.ByteUtils;
27:
28: /**
29: * Representation based on a BIO stream.
30: *
31: * @author Jerome Louvel (contact@noelios.com)
32: */
33: public abstract class StreamRepresentation extends Representation {
34: /**
35: * Constructor.
36: *
37: * @param mediaType
38: * The media type.
39: */
40: public StreamRepresentation(MediaType mediaType) {
41: super (mediaType);
42: }
43:
44: /**
45: * Returns a readable byte channel. If it is supported by a file a read-only
46: * instance of FileChannel is returned.
47: *
48: * @return A readable byte channel.
49: */
50: public ReadableByteChannel getChannel() throws IOException {
51: return ByteUtils.getChannel(getStream());
52: }
53:
54: /**
55: * Writes the representation to a byte channel.
56: *
57: * @param writableChannel
58: * A writable byte channel.
59: */
60: public void write(WritableByteChannel writableChannel)
61: throws IOException {
62: write(ByteUtils.getStream(writableChannel));
63: }
64:
65: }
|