/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: ContentTransformer.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.cmf.transform; import com.uwyn.rife.cmf.dam.exceptions.ContentManagerException; import java.util.Map; /** * This interface defines the API that has to be implemented by classes that * are capable of transforming content data after it's initially loaded. * <p>The content attributes are provided to the {@link * #transform(Object data, Map attributes) transform} method and can be used * to provide hints for the transformation. * <p>Each transformer is supposed to transform content data of a certain data * type and return the transformed content in the same data type. You should * be careful that this data type corresponds to the data type that's returned * by the {@link com.uwyn.rife.cmf.format.Formatter#format format} method of * the {@link com.uwyn.rife.cmf.format.Formatter formatter} that handles the * content's mime type. * * @author Geert Bevin (gbevin[remove] at uwyn dot com) * @version $Revision: 3918 $ * @since 1.0 */ public interface ContentTransformer<InternalType> { /** * Transforms the content data and returns the transformed data in the * same data type as the original. * * @param data the content data that has to be transformed * @param attributes a map of content attributes that can be used to * provide hints or parameters for the transformation * @return the transformed data * @since 1.0 */ public InternalType transform(InternalType data, Map<String, String> attributes) throws ContentManagerException; }