blob: d05425c5c64da4852fc383de9eebbed1fd8e3659 [file] [log] [blame]
Adam Lesinski59e04c62016-02-04 15:59:23 -08001/*
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
17syntax = "proto2";
18
19option optimize_for = LITE_RUNTIME;
20
21package aapt.pb;
22
23message ConfigDescription {
24 optional bytes data = 1;
25 optional string product = 2;
26}
27
28message StringPool {
29 optional bytes data = 1;
30}
31
32message CompiledFile {
33 message Symbol {
34 optional string resource_name = 1;
35 optional uint32 line_no = 2;
36 }
37
38 optional string resource_name = 1;
39 optional ConfigDescription config = 2;
40 optional string source_path = 3;
41 repeated Symbol exported_symbols = 4;
42}
43
44message ResourceTable {
45 optional StringPool string_pool = 1;
46 optional StringPool source_pool = 2;
47 optional StringPool symbol_pool = 3;
48 repeated Package packages = 4;
49}
50
51message Package {
52 optional uint32 package_id = 1;
53 optional string package_name = 2;
54 repeated Type types = 3;
55}
56
57message Type {
58 optional uint32 id = 1;
59 optional string name = 2;
60 repeated Entry entries = 3;
61}
62
63message SymbolStatus {
64 enum Visibility {
65 Unknown = 0;
66 Private = 1;
67 Public = 2;
68 }
69 optional Visibility visibility = 1;
70 optional Source source = 2;
71 optional string comment = 3;
72}
73
74message Entry {
75 optional uint32 id = 1;
76 optional string name = 2;
77 optional SymbolStatus symbol_status = 3;
78 repeated ConfigValue config_values = 4;
79}
80
81message ConfigValue {
82 optional ConfigDescription config = 1;
83 optional Value value = 2;
84}
85
86message Source {
87 optional uint32 path_idx = 1;
88 optional uint32 line_no = 2;
89 optional uint32 col_no = 3;
90}
91
92message Reference {
93 enum Type {
94 Ref = 0;
95 Attr = 1;
96 }
97 optional Type type = 1;
98 optional uint32 id = 2;
99 optional uint32 symbol_idx = 3;
100 optional bool private = 4;
101}
102
103message Id {
104}
105
106message String {
107 optional uint32 idx = 1;
108}
109
110message RawString {
111 optional uint32 idx = 1;
112}
113
114message FileReference {
115 optional uint32 path_idx = 1;
116}
117
118message Primitive {
119 optional uint32 type = 1;
120 optional uint32 data = 2;
121}
122
123message Attribute {
124 message Symbol {
125 optional Source source = 1;
126 optional string comment = 2;
127 optional Reference name = 3;
128 optional uint32 value = 4;
129 }
130 optional uint32 format_flags = 1;
131 optional int32 min_int = 2;
132 optional int32 max_int = 3;
133 repeated Symbol symbols = 4;
134}
135
136message Style {
137 message Entry {
138 optional Source source = 1;
139 optional string comment = 2;
140 optional Reference key = 3;
141 optional Item item = 4;
142 }
143
144 optional Reference parent = 1;
145 optional Source parent_source = 2;
146 repeated Entry entries = 3;
147}
148
149message Styleable {
150 message Entry {
151 optional Source source = 1;
152 optional string comment = 2;
153 optional Reference attr = 3;
154 }
155 repeated Entry entries = 1;
156}
157
158message Array {
159 message Entry {
160 optional Source source = 1;
161 optional string comment = 2;
162 optional Item item = 3;
163 }
164 repeated Entry entries = 1;
165}
166
167message Plural {
168 enum Arity {
169 Zero = 0;
170 One = 1;
171 Two = 2;
172 Few = 3;
173 Many = 4;
174 Other = 5;
175 }
176
177 message Entry {
178 optional Source source = 1;
179 optional string comment = 2;
180 optional Arity arity = 3;
181 optional Item item = 4;
182 }
183 repeated Entry entries = 1;
184}
185
186message Item {
187 optional Reference ref = 1;
188 optional String str = 2;
189 optional RawString raw_str = 3;
190 optional FileReference file = 4;
191 optional Id id = 5;
192 optional Primitive prim = 6;
193}
194
195message CompoundValue {
196 optional Attribute attr = 1;
197 optional Style style = 2;
198 optional Styleable styleable = 3;
199 optional Array array = 4;
200 optional Plural plural = 5;
201}
202
203message Value {
204 optional Source source = 1;
205 optional string comment = 2;
206 optional bool weak = 3;
207
208 optional Item item = 4;
209 optional CompoundValue compound_value = 5;
210}