001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.juneau.http.resource; 018 019import java.io.*; 020import java.util.function.*; 021 022import org.apache.http.*; 023import org.apache.juneau.http.entity.*; 024import org.apache.juneau.http.header.*; 025 026/** 027 * A repeatable resource that obtains its content from a {@link File}. 028 * 029 * <h5 class='section'>See Also:</h5><ul> 030 * <li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/JuneauRestCommonBasics">juneau-rest-common Basics</a> 031 * </ul> 032 */ 033public class FileResource extends BasicResource { 034 /** 035 * Constructor. 036 */ 037 public FileResource() { 038 super(new FileEntity()); 039 } 040 041 /** 042 * Constructor. 043 * 044 * @param contentType The entity content type. 045 * @param contents The entity contents. 046 */ 047 public FileResource(ContentType contentType, File contents) { 048 super(new FileEntity(contentType, contents)); 049 } 050 051 /** 052 * Copy constructor. 053 * 054 * @param copyFrom The bean being copied. 055 */ 056 protected FileResource(FileResource copyFrom) { 057 super(copyFrom); 058 } 059 060 @Override /* Overridden from BasicResource */ 061 public FileResource addHeader(String name, String value) { 062 super.addHeader(name, value); 063 return this; 064 } 065 066 @Override /* Overridden from BasicResource */ 067 public FileResource addHeaders(Header...values) { 068 super.addHeaders(values); 069 return this; 070 } 071 072 @Override 073 public FileResource copy() { 074 return new FileResource(this); 075 } 076 077 @Override /* Overridden from BasicResource */ 078 public FileResource setCached() throws IOException { 079 super.setCached(); 080 return this; 081 } 082 083 @Override /* Overridden from BasicResource */ 084 public FileResource setChunked() { 085 super.setChunked(); 086 return this; 087 } 088 089 @Override /* Overridden from BasicResource */ 090 public FileResource setChunked(boolean value) { 091 super.setChunked(value); 092 return this; 093 } 094 095 @Override /* Overridden from BasicResource */ 096 public FileResource setContent(Object value) { 097 super.setContent(value); 098 return this; 099 } 100 101 @Override /* Overridden from BasicResource */ 102 public FileResource setContent(Supplier<?> value) { 103 super.setContent(value); 104 return this; 105 } 106 107 @Override /* Overridden from BasicResource */ 108 public FileResource setContentEncoding(ContentEncoding value) { 109 super.setContentEncoding(value); 110 return this; 111 } 112 113 @Override /* Overridden from BasicResource */ 114 public FileResource setContentEncoding(String value) { 115 super.setContentEncoding(value); 116 return this; 117 } 118 119 @Override /* Overridden from BasicResource */ 120 public FileResource setContentLength(long value) { 121 super.setContentLength(value); 122 return this; 123 } 124 125 @Override /* Overridden from BasicResource */ 126 public FileResource setContentType(ContentType value) { 127 super.setContentType(value); 128 return this; 129 } 130 131 @Override /* Overridden from BasicResource */ 132 public FileResource setContentType(String value) { 133 super.setContentType(value); 134 return this; 135 } 136 137 @Override /* Overridden from BasicResource */ 138 public FileResource setHeader(String name, String value) { 139 super.setHeader(name, value); 140 return this; 141 } 142 143 @Override /* Overridden from BasicResource */ 144 public FileResource setHeaders(Header...values) { 145 super.setHeaders(values); 146 return this; 147 } 148 149 @Override /* Overridden from BasicResource */ 150 public FileResource setHeaders(HeaderList value) { 151 super.setHeaders(value); 152 return this; 153 } 154 155 @Override /* Overridden from BasicResource */ 156 public FileResource setUnmodifiable() { 157 super.setUnmodifiable(); 158 return this; 159 } 160}