/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wps.gs; import javax.xml.namespace.QName; import org.geoserver.config.util.SecureXStream; import org.geoserver.wps.ppio.XStreamPPIO; import org.geotools.process.vector.AggregateProcess; import com.thoughtworks.xstream.mapper.MapperWrapper; import java.util.EnumMap; import java.util.List; import java.util.Set; /** * A PPIO to generate good looking xml for the aggreagate process results * @author Andrea Aime - GeoSolutions */ public class AggregateProcessPPIO extends XStreamPPIO { static final QName AggregationResults = new QName("AggregationResults"); protected AggregateProcessPPIO() { super(AggregateProcess.Results.class, AggregationResults); } @Override protected SecureXStream buildXStream() { SecureXStream xstream = new SecureXStream() { protected MapperWrapper wrapMapper(MapperWrapper next) { return new UppercaseTagMapper(next); }; }; xstream.allowTypes(new Class[] { AggregateProcess.Results.class }); xstream.omitField(AggregateProcess.Results.class, "aggregateAttribute"); xstream.omitField(AggregateProcess.Results.class, "functions"); xstream.omitField(AggregateProcess.Results.class, "groupByAttributes"); xstream.omitField(AggregateProcess.Results.class, "results"); xstream.alias(AggregationResults.getLocalPart(), AggregateProcess.Results.class); xstream.omitField(AggregateProcess.Results.class, "aggregateAttribute"); xstream.omitField(AggregateProcess.Results.class, "functions"); xstream.omitField(AggregateProcess.Results.class, "groupByAttributes"); xstream.omitField(AggregateProcess.Results.class, "results"); return xstream; } }