/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal.livetrace; import java.util.List; import java.util.TreeSet; import com.google.common.collect.ImmutableList; /** * Oct 6, 2010 */ public class LongestPortalRequests { private int maxSize; private final TreeSet<PortalRequestTrace> list; public LongestPortalRequests( int maxSize ) { this.maxSize = maxSize; list = new TreeSet<PortalRequestTrace>( new PortalRequestTraceComparatorByLongestTime() ); } public void add( PortalRequestTrace item ) { synchronized ( list ) { list.add( item ); doRetainSize(); } } public List<PortalRequestTrace> getList() { synchronized ( list ) { return ImmutableList.copyOf( list ); } } private void doRetainSize() { if ( list.size() > maxSize ) { list.remove( list.last() ); } } public void clear() { synchronized ( list ) { list.clear(); } } }