001package org.intellimate.izou.sdk.output; 002 003import com.google.common.reflect.TypeToken; 004import org.intellimate.izou.events.EventModel; 005import org.intellimate.izou.sdk.Context; 006 007import java.util.List; 008 009/** 010 * an OutputPlugin without an Argument 011 * @param <T> the return type 012 * @author Leander Kurscheidt 013 * @version 1.0 014 */ 015public abstract class OutputPlugin<T> extends OutputPluginArgument<Object, T> { 016 /** 017 * creates a new output-plugin with a new id 018 * 019 * @param context context 020 * @param id the id of the new output-plugin 021 */ 022 public OutputPlugin(Context context, String id) { 023 super(context, id); 024 } 025 026 027 028 /** 029 * returns the Type of the argument for the OutputExtensions, or null if none 030 * 031 * @return the type of the Argument 032 */ 033 @Override 034 public TypeToken<Object> getArgumentType() { 035 return null; 036 } 037 038 /** 039 * returns the argument for the OutputExtensions 040 * 041 * @return the argument 042 */ 043 @Override 044 public Object getArgument() { 045 return null; 046 } 047 048 /** 049 * method that uses the data from the OutputExtensions to generate a final output that will then be rendered. 050 * 051 * @param data the data generated 052 * @param eventModel the Event which caused the whole thing 053 */ 054 @Override 055 public abstract void renderFinalOutput(List<T> data, EventModel eventModel); 056}