1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.server.display.mode;
18 
19 import android.annotation.NonNull;
20 
21 import java.util.Collections;
22 import java.util.List;
23 import java.util.Objects;
24 
25 class CombinedVote implements Vote {
26     final List<Vote> mVotes;
27 
CombinedVote(List<Vote> votes)28     CombinedVote(List<Vote> votes) {
29         mVotes = Collections.unmodifiableList(votes);
30     }
31 
32     @Override
updateSummary(@onNull VoteSummary summary)33     public void updateSummary(@NonNull VoteSummary summary) {
34         mVotes.forEach(vote -> vote.updateSummary(summary));
35     }
36 
37     @Override
equals(Object o)38     public boolean equals(Object o) {
39         if (this == o) return true;
40         if (!(o instanceof CombinedVote that)) return false;
41         return Objects.equals(mVotes, that.mVotes);
42     }
43 
44     @Override
hashCode()45     public int hashCode() {
46         return Objects.hash(mVotes);
47     }
48 
49     @Override
toString()50     public String toString() {
51         return "CombinedVote{ mVotes=" + mVotes + " }";
52     }
53 }
54