File tree Expand file tree Collapse file tree 3 files changed +17
-11
lines changed
common/src/main/java/dev/cel/common/internal
runtime/src/main/java/dev/cel/runtime Expand file tree Collapse file tree 3 files changed +17
-11
lines changed Original file line number Diff line number Diff line change @@ -52,7 +52,7 @@ public Optional<Message.Builder> newBuilder(String messageName) {
5252 DefaultInstanceMessageFactory .getInstance ().getPrototype (descriptor .get ());
5353
5454 if (message .isPresent ()) {
55- return message .map (Message ::toBuilder );
55+ return message .map (Message ::newBuilderForType );
5656 }
5757
5858 return Optional .of (DynamicMessage .newBuilder (descriptor .get ()));
Original file line number Diff line number Diff line change 1717import com .google .auto .value .AutoOneOf ;
1818import com .google .auto .value .AutoValue ;
1919import com .google .common .base .Preconditions ;
20- import com .google .common .base .Splitter ;
2120import com .google .common .collect .ImmutableList ;
2221import com .google .common .primitives .UnsignedLong ;
2322import com .google .errorprone .annotations .Immutable ;
@@ -184,9 +183,13 @@ public static CelAttribute create(String rootIdentifier) {
184183 */
185184 public static CelAttribute fromQualifiedIdentifier (String qualifiedIdentifier ) {
186185 ImmutableList .Builder <Qualifier > qualifiers = ImmutableList .builder ();
187- Splitter .on ("." )
188- .split (qualifiedIdentifier )
189- .forEach ((element ) -> qualifiers .add (Qualifier .ofString (element )));
186+ int start = 0 ;
187+ int next ;
188+ while ((next = qualifiedIdentifier .indexOf ('.' , start )) != -1 ) {
189+ qualifiers .add (Qualifier .ofString (qualifiedIdentifier .substring (start , next )));
190+ start = next + 1 ;
191+ }
192+ qualifiers .add (Qualifier .ofString (qualifiedIdentifier .substring (start )));
190193 return new AutoValue_CelAttribute (qualifiers .build ());
191194 }
192195
@@ -206,7 +209,7 @@ public CelAttribute qualify(Qualifier qualifier) {
206209 return EMPTY ;
207210 }
208211 return new AutoValue_CelAttribute (
209- ImmutableList .<Qualifier >builder ( ).addAll (qualifiers ()).add (qualifier ).build ());
212+ ImmutableList .<Qualifier >builderWithExpectedSize ( qualifiers (). size () + 1 ).addAll (qualifiers ()).add (qualifier ).build ());
210213 }
211214
212215 @ Override
Original file line number Diff line number Diff line change 1818
1919import com .google .auto .value .AutoValue ;
2020import com .google .common .base .Preconditions ;
21- import com .google .common .base .Splitter ;
2221import com .google .common .collect .ImmutableList ;
2322import com .google .errorprone .annotations .Immutable ;
2423
@@ -62,9 +61,13 @@ public static CelAttributePattern create(String rootIdentifier) {
6261 */
6362 public static CelAttributePattern fromQualifiedIdentifier (String qualifiedIdentifier ) {
6463 ImmutableList .Builder <CelAttribute .Qualifier > qualifiers = ImmutableList .builder ();
65- Splitter .on ("." )
66- .split (qualifiedIdentifier )
67- .forEach ((String element ) -> qualifiers .add (CelAttribute .Qualifier .ofString (element )));
64+ int start = 0 ;
65+ int next ;
66+ while ((next = qualifiedIdentifier .indexOf ('.' , start )) != -1 ) {
67+ qualifiers .add (CelAttribute .Qualifier .ofString (qualifiedIdentifier .substring (start , next )));
68+ start = next + 1 ;
69+ }
70+ qualifiers .add (CelAttribute .Qualifier .ofString (qualifiedIdentifier .substring (start )));
6871 return new AutoValue_CelAttributePattern (qualifiers .build ());
6972 }
7073
@@ -74,7 +77,7 @@ public static CelAttributePattern fromQualifiedIdentifier(String qualifiedIdenti
7477 /** Create a new attribute pattern that specifies a subfield of this pattern. */
7578 public CelAttributePattern qualify (CelAttribute .Qualifier qualifier ) {
7679 return new AutoValue_CelAttributePattern (
77- ImmutableList .<CelAttribute .Qualifier >builder ( )
80+ ImmutableList .<CelAttribute .Qualifier >builderWithExpectedSize ( qualifiers (). size () + 1 )
7881 .addAll (qualifiers ())
7982 .add (qualifier )
8083 .build ());
You can’t perform that action at this time.
0 commit comments