• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2017 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.List;
21 import java.util.Set;
22 import java.util.regex.Pattern;
23 
24 /** A {@link GenericItem} of trace format. */
25 public class TraceFormatItem extends GenericItem {
26     private static final String REGEX = "regex";
27     private static final String PARAMS = "params";
28     private static final String NUM_PARAMS = "num_params";
29     private static final String HEX_PARAMS = "hex_params";
30     private static final String STR_PARAMS = "str_params";
31     private static final Set<String> ATTRIBUTES =
32             new HashSet<>(Arrays.asList(REGEX, PARAMS, NUM_PARAMS, HEX_PARAMS, STR_PARAMS));
33 
34     /** Create a new {@link TraceFormatItem} */
TraceFormatItem()35     public TraceFormatItem() {
36         super(ATTRIBUTES);
37     }
38 
39     @Override
40     /** TraceFormatItem doesn't support merge */
merge(IItem other)41     public IItem merge(IItem other) throws ConflictingItemException {
42         throw new ConflictingItemException("Trace format items cannot be merged");
43     }
44 
45     /** Get a compiled regex that matches output of this trace format */
getRegex()46     public Pattern getRegex() {
47         return (Pattern) getAttribute(REGEX);
48     }
49 
50     /** Set a compiled regex that matches output of this trace format */
setRegex(Pattern regex)51     public void setRegex(Pattern regex) {
52         setAttribute(REGEX, regex);
53     }
54 
55     /**
56      * Get all parameters found in this trace format. The parameters were converted to camel case
57      * and match the group names in the regex.
58      */
getParameters()59     public List<String> getParameters() {
60         return (List<String>) getAttribute(PARAMS);
61     }
62 
63     /**
64      * Set all parameters found in this trace format. The parameters were converted to camel case
65      * and match the group names in the regex.
66      */
setParameters(List<String> parameters)67     public void setParameters(List<String> parameters) {
68         setAttribute(PARAMS, parameters);
69     }
70 
71     /**
72      * Get numeric parameters found in this trace format. The parameters were converted to camel
73      * case and match the group names in the regex.
74      */
getNumericParameters()75     public List<String> getNumericParameters() {
76         return (List<String>) getAttribute(NUM_PARAMS);
77     }
78 
79     /**
80      * Set numeric parameters found in this trace format. The parameters were converted to camel
81      * case and match the group names in the regex.
82      */
setNumericParameters(List<String> numericParameters)83     public void setNumericParameters(List<String> numericParameters) {
84         setAttribute(NUM_PARAMS, numericParameters);
85     }
86 
87     /**
88      * Get hexadecimal parameters found in this trace format. The parameters were converted to camel
89      * case and match the group names in the regex.
90      */
getHexParameters()91     public List<String> getHexParameters() {
92         return (List<String>) getAttribute(HEX_PARAMS);
93     }
94 
95     /**
96      * Set hexadecimal parameters found in this trace format. The parameters were converted to camel
97      * case and match the group names in the regex.
98      */
setHexParameters(List<String> hexParameters)99     public void setHexParameters(List<String> hexParameters) {
100         setAttribute(HEX_PARAMS, hexParameters);
101     }
102 
103     /**
104      * Get string parameters found in this trace format. The parameters were converted to camel case
105      * and match the group names in the regex.
106      */
getStringParameters()107     public List<String> getStringParameters() {
108         return (List<String>) getAttribute(STR_PARAMS);
109     }
110 
111     /**
112      * Set string parameters found in this trace format. The parameters were converted to camel case
113      * and match the group names in the regex.
114      */
setStringParameters(List<String> stringParameters)115     public void setStringParameters(List<String> stringParameters) {
116         setAttribute(STR_PARAMS, stringParameters);
117     }
118 }
119