/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wps.remote.plugin.output; import org.geoserver.wps.remote.plugin.XMPPClient; /** * Output Type Producer Base Class. * * * @author Alessio Fabiani, GeoSolutions * */ public class XMPPOutputDefaultProducer { /** * */ private final XMPPOutputVisitor visitor; /** * */ public static final XMPPOutputType[] outputProducers = { new XMPPTextualOutput(), new XMPPRawDataOutput() }; /** * */ public XMPPOutputDefaultProducer() { this.visitor = new XMPPOutputDefaultVisitor(); } /** * * @param outputs * @param value * @param type * @param pID * @param baseURL * @param xmppClient * @param publish * @param metadata * */ public Object produceOutput(Object value, String type, String pID, String baseURL, XMPPClient xmppClient, boolean publish, String name, String title, String description, String defaultStyle, String targetWorkspace, String metadata) throws Exception { Object wpsOutputValue = null; for (XMPPOutputType outputProducer : outputProducers) { wpsOutputValue = outputProducer.accept(this.visitor, value, type, pID, baseURL, xmppClient, publish, name, title, description, defaultStyle, targetWorkspace, metadata); if (wpsOutputValue != null) { return wpsOutputValue; } } return null; } }