1 /*
2  * Copyright (C) 2013 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 package com.android.loganalysis.item;
17 
18 import java.util.Arrays;
19 import java.util.HashSet;
20 import java.util.Set;
21 
22 /**
23  * An {@link IItem} used to store the output of the top command.
24  */
25 public class TopItem extends GenericItem {
26 
27     /** Constant for JSON output */
28     public static final String USER = "USER";
29     /** Constant for JSON output */
30     public static final String NICE = "NICE";
31     /** Constant for JSON output */
32     public static final String SYSTEM = "SYSTEM";
33     /** Constant for JSON output */
34     public static final String IDLE = "IDLE";
35     /** Constant for JSON output */
36     public static final String IOW = "IOW";
37     /** Constant for JSON output */
38     public static final String IRQ = "IRQ";
39     /** Constant for JSON output */
40     public static final String SIRQ = "SIRQ";
41     /** Constant for JSON output */
42     public static final String TOTAL = "TOTAL";
43     /** Constant for JSON output */
44     public static final String TEXT = "TEXT";
45 
46     private static final Set<String> ATTRIBUTES = new HashSet<String>(Arrays.asList(
47             USER, NICE, SYSTEM, IDLE, IOW, IRQ, SIRQ, TOTAL, TEXT));
48 
49     /**
50      * The constructor for {@link TopItem}.
51      */
TopItem()52     public TopItem() {
53         super(ATTRIBUTES);
54 
55         for (String attribute : ATTRIBUTES) {
56             setAttribute(attribute, 0);
57         }
58     }
59 
60     /**
61      * Get the number of user ticks.
62      */
getUser()63     public int getUser() {
64         return (Integer) getAttribute(USER);
65     }
66 
67     /**
68      * Set the number of user ticks.
69      */
setUser(int user)70     public void setUser(int user) {
71         setAttribute(USER, user);
72     }
73 
74     /**
75      * Get the number of nice ticks.
76      */
getNice()77     public int getNice() {
78         return (Integer) getAttribute(NICE);
79     }
80 
81     /**
82      * Set the number of nice ticks.
83      */
setNice(int nice)84     public void setNice(int nice) {
85         setAttribute(NICE, nice);
86     }
87 
88     /**
89      * Get the number of system ticks.
90      */
getSystem()91     public int getSystem() {
92         return (Integer) getAttribute(SYSTEM);
93     }
94 
95     /**
96      * Set the number of system ticks.
97      */
setSystem(int system)98     public void setSystem(int system) {
99         setAttribute(SYSTEM, system);
100     }
101 
102     /**
103      * Get the number of idle ticks.
104      */
getIdle()105     public int getIdle() {
106         return (Integer) getAttribute(IDLE);
107     }
108 
109     /**
110      * Set the number of idle ticks.
111      */
setIdle(int idle)112     public void setIdle(int idle) {
113         setAttribute(IDLE, idle);
114     }
115 
116     /**
117      * Get the number of IOW ticks.
118      */
getIow()119     public int getIow() {
120         return (Integer) getAttribute(IOW);
121     }
122 
123     /**
124      * Set the number of IOW ticks.
125      */
setIow(int iow)126     public void setIow(int iow) {
127         setAttribute(IOW, iow);
128     }
129 
130     /**
131      * Get the number of IRQ ticks.
132      */
getIrq()133     public int getIrq() {
134         return (Integer) getAttribute(IRQ);
135     }
136 
137     /**
138      * Set the number of IRQ ticks.
139      */
setIrq(int irq)140     public void setIrq(int irq) {
141         setAttribute(IRQ, irq);
142     }
143 
144     /**
145      * Get the number of SIRQ ticks.
146      */
getSirq()147     public int getSirq() {
148         return (Integer) getAttribute(SIRQ);
149     }
150 
151     /**
152      * Set the number of SIRQ ticks.
153      */
setSirq(int sirq)154     public void setSirq(int sirq) {
155         setAttribute(SIRQ, sirq);
156     }
157 
158     /**
159      * Get the number of total ticks.
160      */
getTotal()161     public int getTotal() {
162         return (Integer) getAttribute(TOTAL);
163     }
164 
165     /**
166      * Set the number of total ticks.
167      */
setTotal(int total)168     public void setTotal(int total) {
169         setAttribute(TOTAL, total);
170     }
171 
172     /**
173      * Get the raw text of the top command.
174      */
getText()175     public String getText() {
176         return (String) getAttribute(TEXT);
177     }
178 
179     /**
180      * Set the raw text of the top command.
181      */
setText(String text)182     public void setText(String text) {
183         setAttribute(TEXT, text);
184     }
185 }
186