1cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer/* 2cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * Copyright (C) 2014 The Android Open Source Project 3cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * 4cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * Licensed under the Apache License, Version 2.0 (the "License"); 5cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * you may not use this file except in compliance with the License. 6cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * You may obtain a copy of the License at 7cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * 8cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * http://www.apache.org/licenses/LICENSE-2.0 9cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * 10cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * Unless required by applicable law or agreed to in writing, software 11cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * distributed under the License is distributed on an "AS IS" BASIS, 12cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * See the License for the specific language governing permissions and 14cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * limitations under the License. 15cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer */ 16cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studerpackage com.android.server.notification; 17cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer 18cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studerimport java.util.Comparator; 19cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer 20cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer/** 21cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer * Sorts notifications by their global sort key. 22cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer */ 23cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studerpublic class GlobalSortKeyComparator implements Comparator<NotificationRecord> { 24cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer @Override 25cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer public int compare(NotificationRecord left, NotificationRecord right) { 26cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer if (left.getGlobalSortKey() == null) { 27cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer throw new IllegalStateException("Missing left global sort key: " + left); 28cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer } 29cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer if (right.getGlobalSortKey() == null) { 30cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer throw new IllegalStateException("Missing right global sort key: " + right); 31cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer } 32cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer return left.getGlobalSortKey().compareTo(right.getGlobalSortKey()); 33cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer } 34cd4adf8b5ef9ac1f90fdddbb405404e173aedc87Christoph Studer} 35