1 /* 2 * Copyright (C) 2022 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 import android.annotation.Nullable; 21 22 import java.util.Objects; 23 24 /** Class for measurement registration response Stats. */ 25 public class MeasurementRegistrationResponseStats { 26 private final int mCode; 27 private final int mRegistrationType; 28 private final long mResponseSize; 29 private final String mAdTechDomain; 30 private final int mInteractionType; 31 private final int mSurfaceType; 32 private final int mRegistrationStatus; 33 private final int mFailureType; 34 private final long mRegistrationDelay; 35 private final String mSourceRegistrant; 36 private final int mRetryCount; 37 private final boolean mIsRedirectOnly; 38 private final boolean mIsPARequest; 39 MeasurementRegistrationResponseStats(Builder builder)40 private MeasurementRegistrationResponseStats(Builder builder) { 41 mCode = builder.mCode; 42 mRegistrationType = builder.mRegistrationType; 43 mResponseSize = builder.mResponseSize; 44 mAdTechDomain = builder.mAdTechDomain; 45 mInteractionType = builder.mInteractionType; 46 mSurfaceType = builder.mSurfaceType; 47 mRegistrationStatus = builder.mRegistrationStatus; 48 mFailureType = builder.mFailureType; 49 mRegistrationDelay = builder.mRegistrationDelay; 50 mSourceRegistrant = builder.mSourceRegistrant; 51 mRetryCount = builder.mRetryCount; 52 mIsRedirectOnly = builder.mIsRedirectOnly; 53 mIsPARequest = builder.mIsPARequest; 54 } 55 56 @Override equals(Object o)57 public boolean equals(Object o) { 58 if (this == o) return true; 59 if (!(o instanceof MeasurementRegistrationResponseStats)) return false; 60 MeasurementRegistrationResponseStats that = (MeasurementRegistrationResponseStats) o; 61 return mCode == that.mCode 62 && mRegistrationType == that.mRegistrationType 63 && mResponseSize == that.mResponseSize 64 && Objects.equals(mAdTechDomain, that.mAdTechDomain) 65 && mInteractionType == that.mInteractionType 66 && mSurfaceType == that.mSurfaceType 67 && mRegistrationStatus == that.mRegistrationStatus 68 && mFailureType == that.mFailureType 69 && mRegistrationDelay == that.mRegistrationDelay 70 && Objects.equals(mSourceRegistrant, that.mSourceRegistrant) 71 && mRetryCount == that.mRetryCount 72 && mIsRedirectOnly == that.mIsRedirectOnly 73 && mIsPARequest == that.mIsPARequest; 74 } 75 76 @Override hashCode()77 public int hashCode() { 78 return Objects.hash( 79 mCode, 80 mRegistrationType, 81 mResponseSize, 82 mAdTechDomain, 83 mInteractionType, 84 mSurfaceType, 85 mRegistrationStatus, 86 mFailureType, 87 mRegistrationDelay, 88 mSourceRegistrant, 89 mRetryCount, 90 mIsRedirectOnly, 91 mIsPARequest); 92 } 93 94 @Override toString()95 public String toString() { 96 return "MeasurementRegistrationResponseStats{" 97 + "mCode=" 98 + mCode 99 + ", mRegistrationType=" 100 + mRegistrationType 101 + ", mResponseSize=" 102 + mResponseSize 103 + ", mAdTechDomain='" 104 + mAdTechDomain 105 + ", mInteractionType=" 106 + mInteractionType 107 + ", mSurfaceType=" 108 + mSurfaceType 109 + ", mRegistrationStatus=" 110 + mRegistrationStatus 111 + ", mFailureType=" 112 + mFailureType 113 + ", mRegistrationDelay=" 114 + mRegistrationDelay 115 + ", mSourceRegistrant=" 116 + mSourceRegistrant 117 + ", mRetryCount=" 118 + mRetryCount 119 + ", mIsRedirectOnly=" 120 + mIsRedirectOnly 121 + ", mIsPARequest=" 122 + mIsPARequest 123 + '}'; 124 } 125 getCode()126 public int getCode() { 127 return mCode; 128 } 129 getRegistrationType()130 public int getRegistrationType() { 131 return mRegistrationType; 132 } 133 getResponseSize()134 public long getResponseSize() { 135 return mResponseSize; 136 } 137 138 @Nullable getAdTechDomain()139 public String getAdTechDomain() { 140 return mAdTechDomain; 141 } 142 getInteractionType()143 public int getInteractionType() { 144 return mInteractionType; 145 } 146 getSurfaceType()147 public int getSurfaceType() { 148 return mSurfaceType; 149 } 150 getRegistrationStatus()151 public int getRegistrationStatus() { 152 return mRegistrationStatus; 153 } 154 getFailureType()155 public int getFailureType() { 156 return mFailureType; 157 } 158 getRegistrationDelay()159 public long getRegistrationDelay() { 160 return mRegistrationDelay; 161 } 162 getSourceRegistrant()163 public String getSourceRegistrant() { 164 return mSourceRegistrant; 165 } 166 getRetryCount()167 public int getRetryCount() { 168 return mRetryCount; 169 } 170 isRedirectOnly()171 public boolean isRedirectOnly() { 172 return mIsRedirectOnly; 173 } 174 isPARequest()175 public boolean isPARequest() { 176 return mIsPARequest; 177 } 178 179 /** Builder for {@link MeasurementRegistrationResponseStats}. */ 180 public static final class Builder { 181 private final int mCode; 182 private final int mRegistrationType; 183 private final long mResponseSize; 184 private String mAdTechDomain; 185 private final int mInteractionType; 186 private final int mSurfaceType; 187 private final int mRegistrationStatus; 188 private final int mFailureType; 189 private final long mRegistrationDelay; 190 private final String mSourceRegistrant; 191 private final int mRetryCount; 192 private final boolean mIsRedirectOnly; 193 private final boolean mIsPARequest; 194 Builder( int code, int registrationType, long responseSize, int interactionType, int surfaceType, int registrationStatus, int failureType, long registrationDelay, String sourceRegistrant, int retryCount, boolean isRedirectOnly, boolean isPARequest)195 public Builder( 196 int code, 197 int registrationType, 198 long responseSize, 199 int interactionType, 200 int surfaceType, 201 int registrationStatus, 202 int failureType, 203 long registrationDelay, 204 String sourceRegistrant, 205 int retryCount, 206 boolean isRedirectOnly, 207 boolean isPARequest) { 208 mCode = code; 209 mRegistrationType = registrationType; 210 mResponseSize = responseSize; 211 mInteractionType = interactionType; 212 mSurfaceType = surfaceType; 213 mRegistrationStatus = registrationStatus; 214 mFailureType = failureType; 215 mRegistrationDelay = registrationDelay; 216 mSourceRegistrant = sourceRegistrant; 217 mRetryCount = retryCount; 218 mIsRedirectOnly = isRedirectOnly; 219 mIsPARequest = isPARequest; 220 } 221 222 /** See {@link MeasurementRegistrationResponseStats#getAdTechDomain()} . */ 223 @NonNull setAdTechDomain( @ullable String adTechDomain)224 public MeasurementRegistrationResponseStats.Builder setAdTechDomain( 225 @Nullable String adTechDomain) { 226 mAdTechDomain = adTechDomain; 227 return this; 228 } 229 230 /** Build the {@link MeasurementRegistrationResponseStats}. */ 231 @NonNull build()232 public MeasurementRegistrationResponseStats build() { 233 return new MeasurementRegistrationResponseStats(this); 234 } 235 } 236 } 237