View Javadoc
1   /***
2    * Copyright (C) 2009 TM-Search Community.
3    *
4    * This file is part of TM-Search Services.
5    *
6    * Foobar is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * Foobar is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package eu.europa.tmsearch.services.resources.BodyWriters;
21  
22  import java.io.IOException;
23  import java.io.OutputStream;
24  import java.lang.annotation.Annotation;
25  import java.lang.reflect.Type;
26  
27  import javax.ws.rs.Produces;
28  import javax.ws.rs.WebApplicationException;
29  import javax.ws.rs.core.MediaType;
30  import javax.ws.rs.core.MultivaluedMap;
31  import javax.ws.rs.ext.MessageBodyWriter;
32  import javax.ws.rs.ext.Provider;
33  
34  import eu.europa.tmsearch.services.model.TradeMarkImage;
35  
36  @Provider
37  @Produces("image/jpg")
38  public class TradeMarkImageBodyWriterImpl implements MessageBodyWriter<TradeMarkImage> {
39  
40      public long getSize(TradeMarkImage tradeMarkImage, Class<?> type, Type genericType,
41  	    Annotation annotations[], MediaType mediaType) {
42  	return tradeMarkImage.getImageData().length;
43      }
44  
45      public boolean isWriteable(Class<?> type, Type genericType, Annotation annotations[], MediaType mediaType) {
46  	return (TradeMarkImage.class.isAssignableFrom(type));
47      }
48  
49      public void writeTo(TradeMarkImage image, Class<?> arg1, Type arg2, Annotation[] arg3, MediaType arg4,
50  	    MultivaluedMap<String, Object> arg5, OutputStream outputStream) throws IOException,
51  	    WebApplicationException {
52  	TradeMarkImage tradeMarkImage = (TradeMarkImage) image;
53  	outputStream.write(tradeMarkImage.getImageData());
54      }
55  
56  }