/* (c) 2014 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.validator; import org.geoserver.wps.process.ByteArrayRawData; import org.geoserver.wps.process.ResourceRawData; import org.geoserver.wps.process.StringRawData; /** * Estimates non stream oriented raw data implementations * * @author Andrea Aime - GeoSolutions */ public class RawDataSizeEstimator implements ObjectSizeEstimator { @Override public long getSizeOf(Object object) { // we can estimate selected types of raw if (object instanceof ByteArrayRawData) { ByteArrayRawData raw = (ByteArrayRawData) object; return raw.getData().length; } else if (object instanceof StringRawData) { StringRawData raw = (StringRawData) object; return raw.getData().length() * 2; } else if (object instanceof ResourceRawData) { ResourceRawData raw = (ResourceRawData) object; return raw.getResource().file().length(); } return ObjectSizeEstimator.UNKNOWN_SIZE; } }