Commit Graph

24 Commits

Author SHA1 Message Date
Eugene Susla
47ca5d035e Generate @NonNull setter args and @MaySetToNull to opt out
Bug: 143653080
Test: source /usr/local/google/home/eugenesusla/android2/master/frameworks/base/tests/Codegen/runTest.sh
Change-Id: Iba8da34c91fd09e266429ab131add1d53449506b
(cherry picked from commit ab14c55c1f)
2020-03-05 23:54:43 +00:00
Artur Satayev
192ca30b7a Remove unused UnsupportedAppUsage annotations.
The new annotation is android.compat.annotation.UnsupportedAppUsage.

Test: m
Bug: 145132366
Exempt-From-Owner-Approval: previously approved change
Change-Id: Ie12e28eee0ed20b5677ee3162143700813b7ab64
2020-01-29 18:19:45 +00:00
Eugene Susla
f745042916 Add @NonNull annotation to Builder.addXXX args
API guidelines is for each non-primitive arg to have a nullablility annotation.
Since it's very rate for collections to permit null values, just assume
collections only accept @NunNull emenents for now.

Fixes: 144725154
Test: . frameworks/base/tests/Codegen/runTest.sh
Change-Id: I333327490bd8eb9bb031f062c80283bd405173af
2019-11-18 16:39:55 -08:00
Eugene Susla
c5c636a5ea Fix codegen ArrayMap fields
Fixes: 143112074
Test: . frameworks/base/tests/Codegen/runTest.sh
Change-Id: Iec0fa89a91955f8b4e4b5b8d4dd9d7f0b30c608f
2019-11-05 18:14:24 -08:00
Eugene Susla
7daee0bba4 [codegen] Fix generation for files without end markers
This fixes a bug where cedegen fails for files that were generated before
end of generated code section markers were introduced.

Test: . master/frameworks/base/tests/Codegen/runTest.sh
Change-Id: Ia68e8124fcbdeeb2052067ba8731e68e42007529
2019-11-01 17:56:08 -07:00
Eugene Susla
322e8b1772 [codegen] Support nested classes
Adds support for arbitrarily-nested @DataClasses
Only static ones are supported for now

See FileInfo for the main implementation piece

Fixes: 139833958
Test: . frameworks/base/tests/Codegen/runTest.sh
Change-Id: I31cd16969788c47003a7a15a3573a4bf623ab960
2019-11-01 17:53:56 +00:00
Eugene Susla
f51f6c0d91 Add CDM API to filter by BSSID bitmask
Per recommendation from wifi team, this is an important filter to provide

Test: manual
Fixes: 143313206
Change-Id: Ifcad0f6ce5134854114aa9df97b2c44ece858a30
2019-10-24 23:45:02 +00:00
Eugene Susla
1bfb5e7097 Add @NonNull to some generated methods' args
Test: . frameworks/base/tests/Codegen/runTest.sh
Fixes: 142783758
Change-Id: I7303d420efd59389c324b3e399fcb3532b5d6c37
2019-10-16 14:29:58 -07:00
Eugene Susla
f821caa266 Few minor codegen fixes
- (partially) fix annotations with array arg trigger stale false positive
 - support boxed primitives parcelling
 - support excluding generated code from Intellij auto-formatting

Fixes: 142086873, 142149372
Bug: 142132310
Test: . frameworks/base/tests/Codegen/runTest.sh
+ manually test auto-formatting
Change-Id: Ib6a44dee59f840cc11066aa9ff3517d957d1d010
2019-10-11 14:16:47 -07:00
Eugene Susla
05ef53ed1c Fix some stale dataclass detector false positives
Test: . frameworks/base/tests/Codegen/runTest.sh
Change-Id: I562bb4f238bdb28af49804e77c956e41a7bd198d
2019-10-08 16:16:30 -07:00
TreeHugger Robot
68e5e264e7 Merge "Add inheritance support for parcelable dataclasses" 2019-10-05 06:51:40 +00:00
TreeHugger Robot
e10e901b7f Merge "Add helpful links to codegen --help" 2019-10-05 02:11:56 +00:00
Eugene Susla
8cb1a41714 Add inheritance support for parcelable dataclasses
We don't want to recommend this, but some legacy framework classes use
inheritance, and it's easy enough to support

Fixes: 142081378
Test: . frameworks/base/tests/Codegen/runTest.sh
Change-Id: Ifb7f34abf1dfb871ac01b9a9a38dfee144e5f49a
2019-10-04 16:18:48 -07:00
Eugene Susla
d0a6401ed3 Add helpful links to codegen --help
Test: ensure links/email are clickable in terminal
Change-Id: I2d9461e98497b8a2af21b0a48ae05c5c110c8484
2019-10-04 01:57:09 +00:00
Eugene Susla
20b6e646e5 Fix a few corner-cases with parcelling SparseArrays and Maps
Also added a test for some similar parcelling corner cases

Test: . frameworks/base/tests/Codegen/runTest.sh
Fixes: 141877655
Change-Id: Iad5c3b0a8489206754f6ebe6acb8b56ba9ca174a
2019-10-03 15:05:26 -07:00
Eugene Susla
c49e8eece4 Fix codegen adding random /
Fixes: 141934335
Test: . frameworks/base/tests/Codegen/runTest.sh
Change-Id: Ic72d141ed58e332079e7edb7134e02d1447ff643
2019-10-01 11:53:44 -07:00
Eugene Susla
6cd8ae5383 Move lint disabler comment above CLI hint
Long file names may trigger lint error right in the generated warning comment

Fixes: 141753810
Test: presubmit
Change-Id: I89be669e111e65f80ff8994fd61eaab3c0ae8a6e
2019-09-27 10:31:39 -07:00
Eugene Susla
71d5e7775e Fix codegen not accepting relative paths
Fixes: 140886378
Test: codegen tests/Codegen/src/com/android/codegentest/SampleDataClass.java;
./frameworks/base/tests/Codegen/runTest.sh
Change-Id: Ie2b5c55f35ec7865bf34cf9e99ef7751eb5f8d98
2019-09-11 13:58:34 -07:00
Eugene Susla
f366188dac Merge "Use dataclass codegen on a few initial framework classes" 2019-08-07 22:51:23 +00:00
Eugene Susla
3b2fe616fd Use dataclass codegen on a few initial framework classes
Test: presubmit
Change-Id: Ide3c21596f6489fdb1db8f72e1436a01b10f56ed
2019-08-06 21:29:29 -07:00
Eugene Susla
b3361098ed Update codegen to match javaparser update
Test: . $ANDROID_BUILD_TOP/frameworks/base/tests/Codegen/runTest.sh
Change-Id: I3e961a9cee5c71bd2195328dcb53dabd61255aa6
2019-08-06 14:19:49 -07:00
Eugene Susla
3156a4ce21 Addresses further review comments from ag/8000041
Including:
 - An API to opt out of Int/StringDefs generation on per-field basis
 - A way to customize Builder
 - Non-optional fields are passed in Builder constructor
 - Various adjustments to SampleDataclass examples, as requested

Test: . $ANDROID_BUILD_TOP/frameworks/base/tests/Codegen/runTest.sh
Change-Id: I32d2eec52f05d505ff07779d923e4793d3036579
2019-08-05 16:54:41 -07:00
Eugene Susla
0fb0ffa4cc Auto-build/update codegen
Test: 1. Manually enter version/presence of build artifact,
and ensure `codegen FILENAME` still works
2. run codegen again without altering version, ensure no build triggered
Change-Id: I6f1dba0a476077c708bbea8ef558445107e5ad97
2019-07-29 14:57:01 -07:00
Eugene Susla
574b7e11d5 Codegen for parcelable/dataclass boilerplate
This is the initial implementation of the `codegen` cli utility
for in-place java boilerplate generation

See DataClass and SampleDataClass for documentation/guide/examples.

See tools/codegen/ for implementation and tests/Codegen/ for tests.

Bug: 64221737
Test: . frameworks/base/tests/Codegen/runTest.sh
Change-Id: I75177cb770f1beabc87dbae9e77ce4b93ca08e7f
2019-07-17 17:12:37 -07:00