10888a09821a98ac0680fad765217302858e70fa4Paul Duffin/* 20888a09821a98ac0680fad765217302858e70fa4Paul Duffin * Copyright (C) 2011 The Guava Authors 30888a09821a98ac0680fad765217302858e70fa4Paul Duffin * 40888a09821a98ac0680fad765217302858e70fa4Paul Duffin * Licensed under the Apache License, Version 2.0 (the "License"); you may not 50888a09821a98ac0680fad765217302858e70fa4Paul Duffin * use this file except in compliance with the License. You may obtain a copy of 60888a09821a98ac0680fad765217302858e70fa4Paul Duffin * the License at 70888a09821a98ac0680fad765217302858e70fa4Paul Duffin * 80888a09821a98ac0680fad765217302858e70fa4Paul Duffin * http://www.apache.org/licenses/LICENSE-2.0 90888a09821a98ac0680fad765217302858e70fa4Paul Duffin * 100888a09821a98ac0680fad765217302858e70fa4Paul Duffin * Unless required by applicable law or agreed to in writing, software 110888a09821a98ac0680fad765217302858e70fa4Paul Duffin * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 120888a09821a98ac0680fad765217302858e70fa4Paul Duffin * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 130888a09821a98ac0680fad765217302858e70fa4Paul Duffin * License for the specific language governing permissions and limitations under 140888a09821a98ac0680fad765217302858e70fa4Paul Duffin * the License. 150888a09821a98ac0680fad765217302858e70fa4Paul Duffin */ 160888a09821a98ac0680fad765217302858e70fa4Paul Duffin 170888a09821a98ac0680fad765217302858e70fa4Paul Duffinpackage com.google.common.collect; 180888a09821a98ac0680fad765217302858e70fa4Paul Duffin 190888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport com.google.common.annotations.Beta; 200888a09821a98ac0680fad765217302858e70fa4Paul Duffin 210888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport java.util.Comparator; 220888a09821a98ac0680fad765217302858e70fa4Paul Duffinimport java.util.SortedSet; 230888a09821a98ac0680fad765217302858e70fa4Paul Duffin 240888a09821a98ac0680fad765217302858e70fa4Paul Duffin/** 250888a09821a98ac0680fad765217302858e70fa4Paul Duffin * GWT emulation of {@code SortedMultiset}, with {@code elementSet} reduced 260888a09821a98ac0680fad765217302858e70fa4Paul Duffin * to returning a {@code SortedSet} for GWT compatibility. 270888a09821a98ac0680fad765217302858e70fa4Paul Duffin * 280888a09821a98ac0680fad765217302858e70fa4Paul Duffin * @author Louis Wasserman 290888a09821a98ac0680fad765217302858e70fa4Paul Duffin * @since 11.0 300888a09821a98ac0680fad765217302858e70fa4Paul Duffin */ 310888a09821a98ac0680fad765217302858e70fa4Paul Duffin@Beta 320888a09821a98ac0680fad765217302858e70fa4Paul Duffinpublic interface SortedMultiset<E> extends Multiset<E>, SortedIterable<E> { 330888a09821a98ac0680fad765217302858e70fa4Paul Duffin Comparator<? super E> comparator(); 340888a09821a98ac0680fad765217302858e70fa4Paul Duffin 350888a09821a98ac0680fad765217302858e70fa4Paul Duffin Entry<E> firstEntry(); 360888a09821a98ac0680fad765217302858e70fa4Paul Duffin 370888a09821a98ac0680fad765217302858e70fa4Paul Duffin Entry<E> lastEntry(); 380888a09821a98ac0680fad765217302858e70fa4Paul Duffin 390888a09821a98ac0680fad765217302858e70fa4Paul Duffin Entry<E> pollFirstEntry(); 400888a09821a98ac0680fad765217302858e70fa4Paul Duffin 410888a09821a98ac0680fad765217302858e70fa4Paul Duffin Entry<E> pollLastEntry(); 420888a09821a98ac0680fad765217302858e70fa4Paul Duffin 430888a09821a98ac0680fad765217302858e70fa4Paul Duffin /** 440888a09821a98ac0680fad765217302858e70fa4Paul Duffin * Returns a {@link SortedSet} view of the distinct elements in this multiset. 450888a09821a98ac0680fad765217302858e70fa4Paul Duffin * (Outside GWT, this returns a {@code NavigableSet}.) 460888a09821a98ac0680fad765217302858e70fa4Paul Duffin */ 470888a09821a98ac0680fad765217302858e70fa4Paul Duffin @Override SortedSet<E> elementSet(); 480888a09821a98ac0680fad765217302858e70fa4Paul Duffin 490888a09821a98ac0680fad765217302858e70fa4Paul Duffin SortedMultiset<E> descendingMultiset(); 500888a09821a98ac0680fad765217302858e70fa4Paul Duffin 510888a09821a98ac0680fad765217302858e70fa4Paul Duffin SortedMultiset<E> headMultiset(E upperBound, BoundType boundType); 520888a09821a98ac0680fad765217302858e70fa4Paul Duffin 530888a09821a98ac0680fad765217302858e70fa4Paul Duffin SortedMultiset<E> subMultiset(E lowerBound, BoundType lowerBoundType, 540888a09821a98ac0680fad765217302858e70fa4Paul Duffin E upperBound, BoundType upperBoundType); 550888a09821a98ac0680fad765217302858e70fa4Paul Duffin 560888a09821a98ac0680fad765217302858e70fa4Paul Duffin SortedMultiset<E> tailMultiset(E lowerBound, BoundType boundType); 570888a09821a98ac0680fad765217302858e70fa4Paul Duffin} 58