/* Copyright (c) 2001 - 2013 OpenPlans - www.openplans.org. All rights reserved.
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wps.ppio;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import org.geotools.filter.text.cql2.CQL;
import org.geotools.filter.text.ecql.ECQL;
import org.opengis.filter.Filter;
/**
* Parses and encodes an OGC filter using ECQL
*
* @author Andrea Aime - GeoSolutions
*/
public class CQLFilterPPIO extends CDataPPIO {
public CQLFilterPPIO() {
super(Filter.class, Filter.class, "text/plain; subtype=cql");
}
@Override
public Object decode(String value) throws Exception {
return ECQL.toFilter(value);
}
@Override
public void encode(Object value, OutputStream os) throws IOException {
// TODO: switch this to ECQL once http://jira.codehaus.org/browse/GEOT-3326
// is fixed
String cql = CQL.toCQL((Filter) value);
os.write(cql.getBytes("UTF-8"));
}
@Override
public Object decode(InputStream input) throws Exception {
return decode(IOUtils.toString(input));
}
@Override
public String getFileExtension() {
return "txt";
}
}