001/* 002 * Stallion Core: A Modern Web Framework 003 * 004 * Copyright (C) 2015 - 2016 Stallion Software LLC. 005 * 006 * This program is free software: you can redistribute it and/or modify it under the terms of the 007 * GNU General Public License as published by the Free Software Foundation, either version 2 of 008 * the License, or (at your option) any later version. This program is distributed in the hope that 009 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 011 * License for more details. You should have received a copy of the GNU General Public License 012 * along with this program. If not, see <http://www.gnu.org/licenses/gpl-2.0.html>. 013 * 014 * 015 * 016 */ 017 018package io.stallion.dataAccess.filtering; 019 020import java.util.Collection; 021import java.util.List; 022import java.util.Map; 023 024import static io.stallion.utils.Literals.*; 025 026import io.stallion.services.Log; 027import net.sf.ehcache.pool.Size; 028import net.sf.ehcache.pool.SizeOfEngine; 029 030 031public class EstimatedSizeOfEngine implements SizeOfEngine { 032 public EstimatedSizeOfEngine() { 033 Log.finer("EstimatedSizeOfEngine being loaded."); 034 } 035 @Override 036 public Size sizeOf(Object key, Object value, Object container) { 037 int itemCount = 0; 038 if (value instanceof Pager) { 039 itemCount = ((Pager) value).getItems().size(); 040 } else if (value instanceof Collection) { 041 itemCount = ((Collection) value).size(); 042 } 043 044 if (itemCount > 0) { 045 return new Size(10000 * itemCount, false); 046 } else { 047 return new Size(10000, false); 048 } 049 050 } 051 052 @Override 053 public SizeOfEngine copyWith(int i, boolean b) { 054 return new EstimatedSizeOfEngine(); 055 } 056}