1 /*
2  * Copyright 2021 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 foo.bar;
18 import androidx.room.*;
19 
20 @Entity
21 public class Artist {
22     @PrimaryKey
23     public final int mArtistId;
24     public final String mArtistName;
25     public final boolean mIsActive;
26 
Artist(int artistId, String artistName, boolean isActive)27     public Artist(int artistId, String artistName, boolean isActive) {
28         mArtistId = artistId;
29         mArtistName = artistName;
30         mIsActive = isActive;
31     }
32 
33     @Override
equals(Object o)34     public boolean equals(Object o) {
35         if (this == o) return true;
36         if (o == null || getClass() != o.getClass()) return false;
37 
38         Artist artist = (Artist) o;
39 
40         if (mArtistId != artist.mArtistId) return false;
41         if (mArtistName != null ? !mArtistName.equals(artist.mArtistName) :
42                 artist.mArtistName != null && mIsActive == artist.mIsActive) {
43             return false;
44         }
45         return true;
46     }
47 
48     @Override
hashCode()49     public int hashCode() {
50         int result = mArtistId;
51         result = 31 * result + (mArtistName != null ? mArtistName.hashCode() : 0);
52         return result;
53     }
54 }