1 /* 2 * Copyright (C) 2016 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.loganalysis.item; 18 19 import java.util.Arrays; 20 import java.util.HashSet; 21 import java.util.Set; 22 23 /** 24 * An {@link IItem} used to store information of the battery discharge. 25 */ 26 public class BatteryDischargeStatsInfoItem extends GenericItem { 27 28 /** Constant for JSON output */ 29 public static final String MAX_PERCENTAGE = "MAX_PERCENTAGE"; 30 /** Constant for JSON output */ 31 public static final String MIN_PERCENTAGE = "MIN_PERCENTAGE"; 32 /** Constant for JSON output */ 33 public static final String DISCHARGE_PERCENTAGE = "DISCHARGE_PERCENTAGE"; 34 /** Constant for JSON output */ 35 public static final String DISCHARGE_DURATION = "DISCHARGE_DURATION"; 36 /** Constant for JSON output */ 37 public static final String PROJECTED_BATTERY_LIFE = "PROJECTED_BATTERY_LIFE"; 38 39 private static final Set<String> ATTRIBUTES = new HashSet<>(Arrays.asList(MAX_PERCENTAGE, 40 MIN_PERCENTAGE, DISCHARGE_PERCENTAGE, DISCHARGE_DURATION, PROJECTED_BATTERY_LIFE)); 41 42 /** 43 * The constructor for {@link BatteryDischargeStatsInfoItem}. 44 */ BatteryDischargeStatsInfoItem()45 public BatteryDischargeStatsInfoItem() { 46 super(ATTRIBUTES); 47 } 48 49 /** 50 * Set the maximum percentage. 51 */ setMaxPercentage(int percentage)52 public void setMaxPercentage(int percentage) { 53 setAttribute(MAX_PERCENTAGE, percentage); 54 } 55 56 /** 57 * Set the minimum percentage. 58 */ setMinPercentage(int percentage)59 public void setMinPercentage(int percentage) { 60 setAttribute(MIN_PERCENTAGE, percentage); 61 } 62 63 /** 64 * Set the discharge percentage. 65 */ setDischargePercentage(int dischargePercentage)66 public void setDischargePercentage(int dischargePercentage) { 67 setAttribute(DISCHARGE_PERCENTAGE, dischargePercentage); 68 } 69 70 /** 71 * Set the discharge duration. 72 */ setDischargeDuration(long dischargeDuration)73 public void setDischargeDuration(long dischargeDuration) { 74 setAttribute(DISCHARGE_DURATION, dischargeDuration); 75 } 76 77 /** 78 * Set the projected battery life. 79 */ setProjectedBatteryLife(long projectedBatteryLife)80 public void setProjectedBatteryLife(long projectedBatteryLife) { 81 setAttribute(PROJECTED_BATTERY_LIFE, projectedBatteryLife); 82 } 83 84 /** 85 * Get the maximum percentage. 86 */ getMaxPercentage()87 public int getMaxPercentage() { 88 return (int) getAttribute(MAX_PERCENTAGE); 89 } 90 91 /** 92 * Get the minimum percentage. 93 */ getMinPercentage()94 public int getMinPercentage() { 95 return (int) getAttribute(MIN_PERCENTAGE); 96 } 97 98 /** 99 * Get the discharge percentage. 100 */ getDischargePercentage()101 public int getDischargePercentage() { 102 return (int) getAttribute(DISCHARGE_PERCENTAGE); 103 } 104 105 /** 106 * Get the discharge duration. 107 */ getDischargeDuration()108 public long getDischargeDuration() { 109 return (long) getAttribute(DISCHARGE_DURATION); 110 } 111 112 /** 113 * Get the projected battery life. 114 */ getProjectedBatteryLife()115 public long getProjectedBatteryLife() { 116 return (long) getAttribute(PROJECTED_BATTERY_LIFE); 117 } 118 119 } 120