1 /** 2 * Copyright (C) 2005-2009 Alfresco Software Limited. 3 * 4 * This file is part of the Spring Surf Extension project. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package org.springframework.extensions.webscripts; 20 21 import java.io.OutputStream; 22 import java.io.Writer; 23 24 25 /** 26 * Converts a Java Object to a mimetype 27 * 28 * @author davidc 29 * @param <Type> 30 */ 31 public interface FormatWriter<Type> 32 { 33 /** 34 * Gets the source Java class to convert from 35 * 36 * @return Java class 37 */ 38 public Class<? extends Type> getSourceClass(); 39 40 /** 41 * Gets the mimetype to convert to 42 * 43 * @return mimetype 44 */ 45 public String getDestinationMimetype(); 46 47 /** 48 * Converts Java object to mimetype 49 * 50 * @param object 51 * @param output 52 */ 53 public void write(Type object, Writer output); 54 55 /** 56 * Converts Java object to mimetype 57 * 58 * @param object 59 * @param output 60 */ 61 public void write(Type object, OutputStream output); 62 63 }