• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.adservices.service.stats;
18 
19 import android.annotation.NonNull;
20 
21 import java.util.Objects;
22 
23 /** class for measurement attribution stats. */
24 public class MeasurementAttributionStats {
25     private int mCode;
26     private int mSourceType;
27     private int mSurfaceType;
28     private int mResult;
29     private int mFailureType;
30     private boolean mIsSourceDerived;
31     private boolean mIsInstallAttribution;
32     private long mAttributionDelay;
33 
MeasurementAttributionStats()34     public MeasurementAttributionStats() {}
35 
36     @Override
equals(Object obj)37     public boolean equals(Object obj) {
38         if (!(obj instanceof MeasurementAttributionStats)) {
39             return false;
40         }
41         MeasurementAttributionStats measurementAttributionStats = (MeasurementAttributionStats) obj;
42         return mCode == measurementAttributionStats.getCode()
43                 && mSourceType == measurementAttributionStats.getSourceType()
44                 && mSurfaceType == measurementAttributionStats.getSurfaceType()
45                 && mResult == measurementAttributionStats.getResult()
46                 && mFailureType == measurementAttributionStats.getFailureType()
47                 && mIsSourceDerived == measurementAttributionStats.isSourceDerived()
48                 && mIsInstallAttribution == measurementAttributionStats.isInstallAttribution()
49                 && mAttributionDelay == measurementAttributionStats.getAttributionDelay();
50     }
51 
52     @Override
hashCode()53     public int hashCode() {
54         return Objects.hash(
55                 mCode,
56                 mSourceType,
57                 mSurfaceType,
58                 mResult,
59                 mFailureType,
60                 mIsSourceDerived,
61                 mIsInstallAttribution,
62                 mAttributionDelay);
63     }
64 
getCode()65     public int getCode() {
66         return mCode;
67     }
68 
getSourceType()69     public int getSourceType() {
70         return mSourceType;
71     }
72 
getSurfaceType()73     public int getSurfaceType() {
74         return mSurfaceType;
75     }
76 
getResult()77     public int getResult() {
78         return mResult;
79     }
80 
getFailureType()81     public int getFailureType() {
82         return mFailureType;
83     }
84 
isSourceDerived()85     public boolean isSourceDerived() {
86         return mIsSourceDerived;
87     }
88 
isInstallAttribution()89     public boolean isInstallAttribution() {
90         return mIsInstallAttribution;
91     }
92 
getAttributionDelay()93     public long getAttributionDelay() {
94         return mAttributionDelay;
95     }
96 
97     /** Builder for {@link MeasurementAttributionStats}. */
98     public static final class Builder {
99         private final MeasurementAttributionStats mBuilding;
100 
Builder()101         public Builder() {
102             mBuilding = new MeasurementAttributionStats();
103         }
104 
105         /** See {@link MeasurementAttributionStats#getCode()} . */
setCode(int code)106         public @NonNull MeasurementAttributionStats.Builder setCode(int code) {
107             mBuilding.mCode = code;
108             return this;
109         }
110 
111         /** See {@link MeasurementAttributionStats#getSourceType()} . */
setSourceType(int sourceType)112         public @NonNull MeasurementAttributionStats.Builder setSourceType(int sourceType) {
113             mBuilding.mSourceType = sourceType;
114             return this;
115         }
116 
117         /** See {@link MeasurementAttributionStats#getSurfaceType()} . */
setSurfaceType(int surfaceType)118         public @NonNull MeasurementAttributionStats.Builder setSurfaceType(int surfaceType) {
119             mBuilding.mSurfaceType = surfaceType;
120             return this;
121         }
122 
123         /** See {@link MeasurementAttributionStats#getResult()} . */
setResult(int result)124         public @NonNull MeasurementAttributionStats.Builder setResult(int result) {
125             mBuilding.mResult = result;
126             return this;
127         }
128 
129         /** See {@link MeasurementAttributionStats#getFailureType()} . */
setFailureType(int failureType)130         public @NonNull MeasurementAttributionStats.Builder setFailureType(int failureType) {
131             mBuilding.mFailureType = failureType;
132             return this;
133         }
134 
135         /** See {@link MeasurementAttributionStats#isSourceDerived()} . */
setSourceDerived( boolean isSourceDerived)136         public @NonNull MeasurementAttributionStats.Builder setSourceDerived(
137                 boolean isSourceDerived) {
138             mBuilding.mIsSourceDerived = isSourceDerived;
139             return this;
140         }
141 
142         /** See {@link MeasurementAttributionStats#isSourceDerived()} . */
setInstallAttribution( boolean isInstallAttribution)143         public @NonNull MeasurementAttributionStats.Builder setInstallAttribution(
144                 boolean isInstallAttribution) {
145             mBuilding.mIsInstallAttribution = isInstallAttribution;
146             return this;
147         }
148 
149         /** See {@link MeasurementAttributionStats#getAttributionDelay()} . */
setAttributionDelay( long attributionDelay)150         public @NonNull MeasurementAttributionStats.Builder setAttributionDelay(
151                 long attributionDelay) {
152             mBuilding.mAttributionDelay = attributionDelay;
153             return this;
154         }
155         /** Build the {@link MeasurementAttributionStats}. */
build()156         public @NonNull MeasurementAttributionStats build() {
157             return mBuilding;
158         }
159     }
160 }
161