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