Home | History | Annotate | Download | only in item
      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      */
     45     public BatteryDischargeStatsInfoItem() {
     46         super(ATTRIBUTES);
     47     }
     48 
     49     /**
     50      * Set the maximum percentage.
     51      */
     52     public void setMaxPercentage(int percentage) {
     53         setAttribute(MAX_PERCENTAGE, percentage);
     54     }
     55 
     56     /**
     57      * Set the minimum percentage.
     58      */
     59     public void setMinPercentage(int percentage) {
     60         setAttribute(MIN_PERCENTAGE, percentage);
     61     }
     62 
     63     /**
     64      * Set the discharge percentage.
     65      */
     66     public void setDischargePercentage(int dischargePercentage) {
     67         setAttribute(DISCHARGE_PERCENTAGE, dischargePercentage);
     68     }
     69 
     70     /**
     71      * Set the discharge duration.
     72      */
     73     public void setDischargeDuration(long dischargeDuration) {
     74         setAttribute(DISCHARGE_DURATION, dischargeDuration);
     75     }
     76 
     77     /**
     78      * Set the projected battery life.
     79      */
     80     public void setProjectedBatteryLife(long projectedBatteryLife) {
     81         setAttribute(PROJECTED_BATTERY_LIFE, projectedBatteryLife);
     82     }
     83 
     84     /**
     85      * Get the maximum percentage.
     86      */
     87     public int getMaxPercentage() {
     88         return (int) getAttribute(MAX_PERCENTAGE);
     89     }
     90 
     91     /**
     92      * Get the minimum percentage.
     93      */
     94     public int getMinPercentage() {
     95         return (int) getAttribute(MIN_PERCENTAGE);
     96     }
     97 
     98     /**
     99      * Get the discharge percentage.
    100      */
    101     public int getDischargePercentage() {
    102         return (int) getAttribute(DISCHARGE_PERCENTAGE);
    103     }
    104 
    105     /**
    106      * Get the discharge duration.
    107      */
    108     public long getDischargeDuration() {
    109         return (long) getAttribute(DISCHARGE_DURATION);
    110     }
    111 
    112     /**
    113      * Get the projected battery life.
    114      */
    115     public long getProjectedBatteryLife() {
    116         return (long) getAttribute(PROJECTED_BATTERY_LIFE);
    117     }
    118 
    119 }
    120