diff options
author | Sundong Ahn <sundongahn@google.com> | 2020-03-30 06:19:26 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-03-30 06:19:26 +0000 |
commit | 0be301d6033204d4668b2c26f84fd851dd7cf068 (patch) | |
tree | 78d04f8a5ef6a414b67dba731e2f4a6af9d0b4f0 | |
parent | 1ab6c756e647992f3bf839b0ef8da692201f5e67 (diff) | |
parent | 4ae92fd3595abf9e48128e6d85a9279c63402bd3 (diff) | |
download | xsdc-android11-qpr2-release.tar.gz |
Support final and nullability am: c9e30c0f72 am: 4ae92fd359android-11.0.0_r48android-11.0.0_r47android-11.0.0_r46android-11.0.0_r45android-11.0.0_r44android-11.0.0_r43android-11.0.0_r42android-11.0.0_r41android-11.0.0_r40android-11.0.0_r39android-11.0.0_r38android-11.0.0_r37android-11.0.0_r36android-11.0.0_r35android-11.0.0_r34android-11.0.0_r33android-11.0.0_r32android-11.0.0_r31android-11.0.0_r30android-11.0.0_r29android-11.0.0_r28android-11.0.0_r27android-11.0.0_r26android-11.0.0_r24android-11.0.0_r23android-11.0.0_r22android-11.0.0_r21android-11.0.0_r20android-11.0.0_r19android-11.0.0_r18android11-qpr3-s1-releaseandroid11-qpr3-releaseandroid11-qpr2-releaseandroid11-qpr1-s2-releaseandroid11-qpr1-s1-releaseandroid11-qpr1-releaseandroid11-qpr1-d-s1-releaseandroid11-qpr1-d-releaseandroid11-qpr1-c-releaseandroid11-d2-release
Change-Id: If18613fd8004a6a3bedb7302fe9f9f5d1b8a0408
-rw-r--r-- | src/com/android/xsdc/XsdHandler.java | 18 | ||||
-rw-r--r-- | tests/resources/simple_complex_content/api/current.txt | 8 | ||||
-rw-r--r-- | tests/resources/simple_complex_content/simple_complex_content.xsd | 2 |
3 files changed, 16 insertions, 12 deletions
diff --git a/src/com/android/xsdc/XsdHandler.java b/src/com/android/xsdc/XsdHandler.java index 5a7c0d4..a2cc57c 100644 --- a/src/com/android/xsdc/XsdHandler.java +++ b/src/com/android/xsdc/XsdHandler.java @@ -204,8 +204,10 @@ public class XsdHandler extends DefaultHandler { // Tags under simpleType <restriction>. They are ignored. break; case "annotation": - stateStack.peek().deprecated = isDeprecated(state.attributeMap, state.tags); - stateStack.peek().finalValue = isFinalValue(state.attributeMap, state.tags); + stateStack.peek().deprecated = isDeprecated(state.attributeMap, state.tags, + stateStack.peek().deprecated); + stateStack.peek().finalValue = isFinalValue(state.attributeMap, state.tags, + stateStack.peek().finalValue); stateStack.peek().nullability = getNullability(state.attributeMap, state.tags, stateStack.peek().nullability); break; @@ -656,22 +658,22 @@ public class XsdHandler extends DefaultHandler { state.finalValue, state.nullability); } - private boolean isDeprecated(Map<String, String> attributeMap,List<XsdTag> tags) - throws XsdParserException { + private boolean isDeprecated(Map<String, String> attributeMap,List<XsdTag> tags, + boolean deprecated) throws XsdParserException { String name = attributeMap.get("name"); if ("Deprecated".equals(name)) { return true; } - return false; + return deprecated; } - private boolean isFinalValue(Map<String, String> attributeMap,List<XsdTag> tags) - throws XsdParserException { + private boolean isFinalValue(Map<String, String> attributeMap,List<XsdTag> tags, + boolean finalValue) throws XsdParserException { String name = attributeMap.get("name"); if ("final".equals(name)) { return true; } - return false; + return finalValue; } private Nullability getNullability(Map<String, String> attributeMap,List<XsdTag> tags, diff --git a/tests/resources/simple_complex_content/api/current.txt b/tests/resources/simple_complex_content/api/current.txt index 601a57e..8ca1793 100644 --- a/tests/resources/simple_complex_content/api/current.txt +++ b/tests/resources/simple_complex_content/api/current.txt @@ -41,10 +41,10 @@ package simple.complex.content { public class SubAddress { ctor public SubAddress(); - method @Nullable public String getChoice1_optional(); - method @NonNull public String getChoice2_optional(); - method public void setChoice1_optional(@Nullable String); - method public void setChoice2_optional(@NonNull String); + method @Nullable public final String getChoice1_optional(); + method @NonNull public final String getChoice2_optional(); + method public final void setChoice1_optional(@Nullable String); + method public final void setChoice2_optional(@NonNull String); } public final class USAddressP extends simple.complex.content.Address { diff --git a/tests/resources/simple_complex_content/simple_complex_content.xsd b/tests/resources/simple_complex_content/simple_complex_content.xsd index dc66cd3..62a6497 100644 --- a/tests/resources/simple_complex_content/simple_complex_content.xsd +++ b/tests/resources/simple_complex_content/simple_complex_content.xsd @@ -34,10 +34,12 @@ <xs:complexType name="subAddress"> <xs:choice> <xs:element name="choice1" type="xs:string"> + <xs:annotation name="final"/> <xs:annotation name="nullable"/> </xs:element> <xs:element name="choice2" type="xs:string"> <xs:annotation name="nonnull"/> + <xs:annotation name="final"/> </xs:element> </xs:choice> </xs:complexType> |