Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package io.appium.java_client.internal;
 import java.util.Map;
Converts org.openqa.selenium.remote.RemoteWebElement objects, which may be wrapped, into their JSON representation as defined by the WebDriver wire protocol. This class will recursively convert Lists and Maps to catch nested references.

See also:
WebDriver JSON Wire Protocol
  public Object apply(Object arg) {
    if (arg == null || arg instanceof String || arg instanceof Boolean ||
        arg instanceof Number) {
      return arg;
    while (arg instanceof WrapsElement) {
      arg = ((WrapsElementarg).getWrappedElement();
    if (arg instanceof MobileElement) {
      return ImmutableMap.of("ELEMENT", ((MobileElementarg).getId());
    if (arg.getClass().isArray()) {
      arg = Lists.newArrayList((Object[]) arg);
    if (arg instanceof Collection<?>) {
      Collection<?> args = (Collection<?>) arg;
      return Collections2.transform(argsthis);
    if (arg instanceof Map<?, ?>) {
      Map<?, ?> args = (Map<?, ?>) arg;
      Map<StringObjectconverted = Maps.newHashMapWithExpectedSize(args.size());
      for (Map.Entry<?, ?> entry : args.entrySet()) {
        Object key = entry.getKey();
        if (!(key instanceof String)) {
          throw new IllegalArgumentException(
              "All keys in Map script arguments must be strings: " + key.getClass().getName());
      return converted;
    throw new IllegalArgumentException("Argument is of an illegal type: "
        + arg.getClass().getName());
New to GrepCode? Check out our FAQ X