1 /* 2 * Copyright (C) 2024 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.data.kanon; 18 19 import android.annotation.IntDef; 20 21 import com.android.adservices.service.kanon.KAnonMessageEntity; 22 23 import java.lang.annotation.Retention; 24 import java.lang.annotation.RetentionPolicy; 25 26 public class KAnonMessageConstants { 27 /** IntDef to classify different Status. */ 28 @IntDef( 29 value = { 30 MessageStatus.NOT_PROCESSED, 31 MessageStatus.SIGNED, 32 MessageStatus.JOINED, 33 MessageStatus.FAILED 34 }) 35 @Retention(RetentionPolicy.SOURCE) 36 public @interface MessageStatus { 37 int NOT_PROCESSED = 0; 38 int SIGNED = 1; 39 int JOINED = 2; 40 int FAILED = 3; 41 } 42 43 /** Converts {@link KAnonMessageEntity.KanonMessageEntityStatus} to {@link MessageStatus}. */ 44 @MessageStatus fromKAnonMessageEntityStatus( @AnonMessageEntity.KanonMessageEntityStatus int status)45 public static int fromKAnonMessageEntityStatus( 46 @KAnonMessageEntity.KanonMessageEntityStatus int status) { 47 switch (status) { 48 case KAnonMessageEntity.KanonMessageEntityStatus.NOT_PROCESSED: 49 return MessageStatus.NOT_PROCESSED; 50 case KAnonMessageEntity.KanonMessageEntityStatus.SIGNED: 51 return MessageStatus.SIGNED; 52 case KAnonMessageEntity.KanonMessageEntityStatus.JOINED: 53 return MessageStatus.JOINED; 54 case KAnonMessageEntity.KanonMessageEntityStatus.FAILED: 55 return MessageStatus.FAILED; 56 default: 57 throw new IllegalStateException("Invalid status: " + status); 58 } 59 } 60 61 /** Converts {@link MessageStatus} to {@link KAnonMessageEntity.KanonMessageEntityStatus}. */ 62 @KAnonMessageEntity.KanonMessageEntityStatus toKAnonMessageEntityStatus(@essageStatus int status)63 public static int toKAnonMessageEntityStatus(@MessageStatus int status) { 64 switch (status) { 65 case MessageStatus.NOT_PROCESSED: 66 return KAnonMessageEntity.KanonMessageEntityStatus.NOT_PROCESSED; 67 case MessageStatus.SIGNED: 68 return KAnonMessageEntity.KanonMessageEntityStatus.SIGNED; 69 case MessageStatus.JOINED: 70 return KAnonMessageEntity.KanonMessageEntityStatus.JOINED; 71 case MessageStatus.FAILED: 72 return KAnonMessageEntity.KanonMessageEntityStatus.FAILED; 73 default: 74 throw new IllegalStateException("Invalid status: " + status); 75 } 76 } 77 } 78