• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.Date;
20 import java.util.HashSet;
21 import java.util.Set;
22 
23 /**
24  * An {@link IItem} used to store miscellaneous logcat info.
25  */
26 public class MiscLogcatItem extends GenericItem {
27     /** Constant for JSON output */
28     public static final String EVENT_TIME = "EVENT_TIME";
29     /** Constant for JSON output */
30     public static final String PID = "PID";
31     /** Constant for JSON output */
32     public static final String TID = "TID";
33     /** Constant for JSON output */
34     public static final String APP = "APP";
35     /** Constant for JSON output */
36     public static final String TAG = "TAG";
37     /** Constant for JSON output */
38     public static final String LAST_PREAMBLE = "LAST_PREAMBLE";
39     /** Constant for JSON output */
40     public static final String PROCESS_PREAMBLE = "PROCESS_PREAMBLE";
41     /** Constant for JSON output */
42     public static final String CATEGORY = "CATEGORY";
43     /** Constant for JSON output */
44     public static final String STACK = "STACK";
45 
46     private static final Set<String> ATTRIBUTES = new HashSet<String>(Arrays.asList(
47             EVENT_TIME, PID, TID, APP, TAG, LAST_PREAMBLE, PROCESS_PREAMBLE, CATEGORY, STACK));
48 
49     /**
50      * Constructor for {@link MiscLogcatItem}.
51      */
MiscLogcatItem()52     public MiscLogcatItem() {
53         super(ATTRIBUTES);
54     }
55 
56     /**
57      * Constructor for {@link MiscLogcatItem}.
58      *
59      * @param attributes A list of allowed attributes.
60      */
MiscLogcatItem(Set<String> attributes)61     protected MiscLogcatItem(Set<String> attributes) {
62         super(getAllAttributes(attributes));
63     }
64 
65     /**
66      * Get the {@link Date} object when the event happened.
67      */
getEventTime()68     public Date getEventTime() {
69         return (Date) getAttribute(EVENT_TIME);
70     }
71 
72     /**
73      * Set the {@link Date} object when the event happened.
74      */
setEventTime(Date time)75     public void setEventTime(Date time) {
76         setAttribute(EVENT_TIME, time);
77     }
78 
79     /**
80      * Get the PID of the event.
81      */
getPid()82     public Integer getPid() {
83         return (Integer) getAttribute(PID);
84     }
85 
86     /**
87      * Set the PID of the event.
88      */
setPid(Integer pid)89     public void setPid(Integer pid) {
90         setAttribute(PID, pid);
91     }
92 
93     /**
94      * Get the TID of the event.
95      */
getTid()96     public Integer getTid() {
97         return (Integer) getAttribute(TID);
98     }
99 
100     /**
101      * Set the TID of the event.
102      */
setTid(Integer tid)103     public void setTid(Integer tid) {
104         setAttribute(TID, tid);
105     }
106 
107     /**
108      * Get the app or package name of the event.
109      */
getApp()110     public String getApp() {
111         return (String) getAttribute(APP);
112     }
113 
114     /**
115      * Set the app or package name of the event.
116      */
setApp(String app)117     public void setApp(String app) {
118         setAttribute(APP, app);
119     }
120 
121     /**
122      * Get the tag of the event.
123      */
getTag()124     public String getTag() {
125         return (String) getAttribute(TAG);
126     }
127 
128     /**
129      * Set the tag of the event.
130      */
setTag(String tag)131     public void setTag(String tag) {
132         setAttribute(TAG, tag);
133     }
134 
135     /**
136      * Get the last preamble for the event.
137      */
getLastPreamble()138     public String getLastPreamble() {
139         return (String) getAttribute(LAST_PREAMBLE);
140     }
141 
142     /**
143      * Set the last preamble for the event.
144      */
setLastPreamble(String preamble)145     public void setLastPreamble(String preamble) {
146         setAttribute(LAST_PREAMBLE, preamble);
147     }
148 
149     /**
150      * Get the process preamble for the event.
151      */
getProcessPreamble()152     public String getProcessPreamble() {
153         return (String) getAttribute(PROCESS_PREAMBLE);
154     }
155 
156     /**
157      * Set the process preamble for the event.
158      */
setProcessPreamble(String preamble)159     public void setProcessPreamble(String preamble) {
160         setAttribute(PROCESS_PREAMBLE, preamble);
161     }
162 
163     /**
164      * Combine an array of attributes with the internal list of attributes.
165      */
getAllAttributes(Set<String> attributes)166     private static Set<String> getAllAttributes(Set<String> attributes) {
167         Set<String> allAttributes = new HashSet<String>(ATTRIBUTES);
168         allAttributes.addAll(attributes);
169         return allAttributes;
170     }
171 
172     /**
173      * Get the category of the event.
174      */
getCategory()175     public String getCategory() {
176         return (String) getAttribute(CATEGORY);
177     }
178 
179     /**
180      * Set the category of the event.
181      */
setCategory(String category)182     public void setCategory(String category) {
183         setAttribute(CATEGORY, category);
184     }
185 
186     /**
187      * Get the stack for the event.
188      */
getStack()189     public String getStack() {
190         return (String) getAttribute(STACK);
191     }
192 
193     /**
194      * Set the stack for the event.
195      */
setStack(String stack)196     public void setStack(String stack) {
197         setAttribute(STACK, stack);
198     }
199 }
200