1 /*
2  * Copyright (C) 2022 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 
17 package android.speech;
18 
19 import android.annotation.NonNull;
20 import android.os.Parcelable;
21 
22 import com.android.internal.util.DataClass;
23 
24 import java.util.ArrayList;
25 import java.util.List;
26 
27 /**
28  * List of {@link AlternativeSpan} for a specific speech recognition result.
29  *
30  * <p> A single {@link SpeechRecognizer} result is represented as a {@link String}. Each element
31  * in this list is an {@link AlternativeSpan} object representing alternative hypotheses for a
32  * specific span (substring) of the originally recognized string.
33  */
34 @DataClass(
35         genEqualsHashCode = true,
36         genParcelable = true,
37         genToString = true
38 )
39 public final class AlternativeSpans implements Parcelable {
40     /** List of {@link AlternativeSpan} for a specific speech recognition result. */
41     @NonNull
42     @DataClass.PluralOf("span")
43     private final List<AlternativeSpan> mSpans;
44 
45 
46 
47     // Code below generated by codegen v1.0.23.
48     //
49     // DO NOT MODIFY!
50     // CHECKSTYLE:OFF Generated code
51     //
52     // To regenerate run:
53     // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/speech/AlternativeSpans.java
54     //
55     // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
56     //   Settings > Editor > Code Style > Formatter Control
57     //@formatter:off
58 
59 
60     /**
61      * Creates a new AlternativeSpans.
62      *
63      * @param spans
64      *   List of {@link AlternativeSpan} for a specific speech recognition result.
65      */
66     @DataClass.Generated.Member
AlternativeSpans( @onNull List<AlternativeSpan> spans)67     public AlternativeSpans(
68             @NonNull List<AlternativeSpan> spans) {
69         this.mSpans = spans;
70         com.android.internal.util.AnnotationValidations.validate(
71                 NonNull.class, null, mSpans);
72 
73         // onConstructed(); // You can define this method to get a callback
74     }
75 
76     /**
77      * List of {@link AlternativeSpan} for a specific speech recognition result.
78      */
79     @DataClass.Generated.Member
getSpans()80     public @NonNull List<AlternativeSpan> getSpans() {
81         return mSpans;
82     }
83 
84     @Override
85     @DataClass.Generated.Member
toString()86     public String toString() {
87         // You can override field toString logic by defining methods like:
88         // String fieldNameToString() { ... }
89 
90         return "AlternativeSpans { " +
91                 "spans = " + mSpans +
92         " }";
93     }
94 
95     @Override
96     @DataClass.Generated.Member
equals(@ndroid.annotation.Nullable Object o)97     public boolean equals(@android.annotation.Nullable Object o) {
98         // You can override field equality logic by defining either of the methods like:
99         // boolean fieldNameEquals(AlternativeSpans other) { ... }
100         // boolean fieldNameEquals(FieldType otherValue) { ... }
101 
102         if (this == o) return true;
103         if (o == null || getClass() != o.getClass()) return false;
104         @SuppressWarnings("unchecked")
105         AlternativeSpans that = (AlternativeSpans) o;
106         //noinspection PointlessBooleanExpression
107         return true
108                 && java.util.Objects.equals(mSpans, that.mSpans);
109     }
110 
111     @Override
112     @DataClass.Generated.Member
hashCode()113     public int hashCode() {
114         // You can override field hashCode logic by defining methods like:
115         // int fieldNameHashCode() { ... }
116 
117         int _hash = 1;
118         _hash = 31 * _hash + java.util.Objects.hashCode(mSpans);
119         return _hash;
120     }
121 
122     @Override
123     @DataClass.Generated.Member
writeToParcel(@onNull android.os.Parcel dest, int flags)124     public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
125         // You can override field parcelling by defining methods like:
126         // void parcelFieldName(Parcel dest, int flags) { ... }
127 
128         dest.writeParcelableList(mSpans, flags);
129     }
130 
131     @Override
132     @DataClass.Generated.Member
describeContents()133     public int describeContents() { return 0; }
134 
135     /** @hide */
136     @SuppressWarnings({"unchecked", "RedundantCast"})
137     @DataClass.Generated.Member
AlternativeSpans(@onNull android.os.Parcel in)138     /* package-private */ AlternativeSpans(@NonNull android.os.Parcel in) {
139         // You can override field unparcelling by defining methods like:
140         // static FieldType unparcelFieldName(Parcel in) { ... }
141 
142         List<AlternativeSpan> spans = new ArrayList<>();
143         in.readParcelableList(spans, AlternativeSpan.class.getClassLoader(), android.speech.AlternativeSpan.class);
144 
145         this.mSpans = spans;
146         com.android.internal.util.AnnotationValidations.validate(
147                 NonNull.class, null, mSpans);
148 
149         // onConstructed(); // You can define this method to get a callback
150     }
151 
152     @DataClass.Generated.Member
153     public static final @NonNull Parcelable.Creator<AlternativeSpans> CREATOR
154             = new Parcelable.Creator<AlternativeSpans>() {
155         @Override
156         public AlternativeSpans[] newArray(int size) {
157             return new AlternativeSpans[size];
158         }
159 
160         @Override
161         public AlternativeSpans createFromParcel(@NonNull android.os.Parcel in) {
162             return new AlternativeSpans(in);
163         }
164     };
165 
166     @DataClass.Generated(
167             time = 1656603476918L,
168             codegenVersion = "1.0.23",
169             sourceFile = "frameworks/base/core/java/android/speech/AlternativeSpans.java",
170             inputSignatures = "private final @android.annotation.NonNull @com.android.internal.util.DataClass.PluralOf(\"span\") java.util.List<android.speech.AlternativeSpan> mSpans\nclass AlternativeSpans extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genParcelable=true, genToString=true)")
171     @Deprecated
__metadata()172     private void __metadata() {}
173 
174 
175     //@formatter:on
176     // End of generated code
177 
178 }
179