2020import static org .openqa .selenium .json .Json .MAP_TYPE ;
2121import static org .openqa .selenium .support .locators .RelativeLocatorScript .FIND_ELEMENTS ;
2222
23- import com .google .common .collect .ImmutableList ;
24- import com .google .common .collect .ImmutableMap ;
2523import java .util .List ;
2624import java .util .Map ;
25+ import java .util .stream .Collectors ;
26+ import java .util .stream .Stream ;
2727import org .openqa .selenium .By ;
2828import org .openqa .selenium .JavascriptExecutor ;
2929import org .openqa .selenium .SearchContext ;
@@ -82,7 +82,7 @@ public static class RelativeBy extends By implements By.Remotable {
8282 private final List <Map <String , Object >> filters ;
8383
8484 private RelativeBy (Object rootLocator ) {
85- this (rootLocator , ImmutableList .of ());
85+ this (rootLocator , List .of ());
8686 }
8787
8888 private RelativeBy (Object rootLocator , List <Map <String , Object >> filters ) {
@@ -100,7 +100,7 @@ private RelativeBy(Object rootLocator, List<Map<String, Object>> filters) {
100100 }
101101
102102 this .root = Require .nonNull ("Root locator" , rootLocator );
103- this .filters = ImmutableList .copyOf (Require .nonNull ("Filters" , filters ));
103+ this .filters = List .copyOf (Require .nonNull ("Filters" , filters ));
104104 }
105105
106106 public RelativeBy above (WebElement element ) {
@@ -178,11 +178,11 @@ private RelativeBy near(Object locator, int atMostDistanceInPixels) {
178178 return new RelativeBy (
179179 root ,
180180 amend (
181- ImmutableMap .of (
181+ Map .of (
182182 "kind" ,
183183 "near" ,
184184 "args" ,
185- ImmutableList .of (asAtomLocatorParameter (locator ), atMostDistanceInPixels ))));
185+ List .of (asAtomLocatorParameter (locator ), atMostDistanceInPixels ))));
186186 }
187187
188188 @ Override
@@ -200,24 +200,21 @@ private RelativeBy simpleDirection(String direction, Object locator) {
200200 Require .nonNull ("Locator" , locator );
201201
202202 return new RelativeBy (
203- root ,
204- amend (
205- ImmutableMap .of (
206- "kind" , direction , "args" , ImmutableList .of (asAtomLocatorParameter (locator )))));
203+ root , amend (Map .of ("kind" , direction , "args" , List .of (asAtomLocatorParameter (locator )))));
207204 }
208205
209206 private List <Map <String , Object >> amend (Map <String , Object > toAdd ) {
210- return ImmutableList .<Map <String , Object >>builder ().addAll (filters ).add (toAdd ).build ();
207+ return Stream .concat (filters .stream (), Stream .of (toAdd ))
208+ .collect (Collectors .toUnmodifiableList ());
211209 }
212210
213211 @ Override
214212 public Parameters getRemoteParameters () {
215- return new Parameters ("relative" , ImmutableMap .of ("root" , root , "filters" , filters ));
213+ return new Parameters ("relative" , Map .of ("root" , root , "filters" , filters ));
216214 }
217215
218216 private Map <String , Object > toJson () {
219- return ImmutableMap .of (
220- "using" , "relative" , "value" , ImmutableMap .of ("root" , root , "filters" , filters ));
217+ return Map .of ("using" , "relative" , "value" , Map .of ("root" , root , "filters" , filters ));
221218 }
222219 }
223220
@@ -244,7 +241,7 @@ private static Object asAtomLocatorParameter(Object object) {
244241 "Expected JSON encoded form of locator to have a 'value' field: " + raw );
245242 }
246243
247- return ImmutableMap .of ((String ) raw .get ("using" ), raw .get ("value" ));
244+ return Map .of ((String ) raw .get ("using" ), raw .get ("value" ));
248245 }
249246
250247 private static void assertLocatorCanBeSerialized (Object locator ) {
0 commit comments