scala.util.Either类的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(12.2k)|赞(0)|评价(0)|浏览(121)

本文整理了Java中scala.util.Either类的一些代码示例,展示了Either类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Either类的具体详情如下:
包路径:scala.util.Either
类名称:Either

Either介绍

暂无

代码示例

代码示例来源:origin: com.typesafe.play/play_2.11

static <A, B> Accumulator<ByteString, F.Either<Result, A>> delegate(play.api.mvc.BodyParser<B> delegate, Function<B, A> transform, Http.RequestHeader request) {
    Accumulator<ByteString, scala.util.Either<play.api.mvc.Result, B>> javaAccumulator = delegate.apply(request.asScala()).asJava();
      
    return javaAccumulator.map(result -> {
        if (result.isLeft()) {
          return F.Either.Left(result.left().get().asJava());
        } else {
          return F.Either.Right(transform.apply(result.right().get()));
        }
      },
      JavaParsers.trampoline());
  }
}

代码示例来源:origin: com.yahoo.maha/maha-par-request-2

/**
 * Maps either by applying function doWithRight if the Either isRight(), otherwise returns the input either with
 * cast to <A,U>
 */
public static <E, A, U> Either<E, U> flatMap(Function<A, Either<E, U>> doWithRight, Either<E, A> either) {
  if (either.isRight()) {
    return doWithRight.apply(either.right().get());
  } else {
    return ((Either<E, U>) either);
  }
}

代码示例来源:origin: srikalyc/Sql4D

public List<String> getMetrics(String name, Map<String, String> reqHeaders) {
  Either<String,Tuple2<List<String>,List<String>>> aboutDataSource = aboutDataSource(name, reqHeaders);
  if (aboutDataSource.isLeft()) {
    return Lists.newArrayList();
  } 
  return aboutDataSource.right().get()._2();
}
/**

代码示例来源:origin: srikalyc/Sql4D

/**
 * Left is error Right is Tuple <dimensions, metrics>
 *
 * @param name
 * @param reqHeaders
 * @return
 */
public Either<String, Tuple2<List<String>, List<String>>> aboutDataSource(String name, Map<String, String> reqHeaders) {
  Either<String, Either<JSONArray, JSONObject>> resp = fireCommand("druid/coordinator/v1/metadata/datasources/" + name, null, reqHeaders);
  if (resp.isLeft()) {
    return new Left<>(resp.left().get());
  }
  Either<JSONArray, JSONObject> goodResp = resp.right().get();
  if (goodResp.isRight()) {
    JSONObject data = goodResp.right().get();
    if (data.has("segments")) {
      JSONArray segmentsArray = data.getJSONArray("segments");
      if (segmentsArray.length() == 0) {
        return new Left<>("No segments received..");
      }
      JSONObject firstItem = segmentsArray.getJSONObject(0);
      String dims = firstItem.getString("dimensions");
      String metrics = firstItem.getString("metrics");
      return new Right<>(new Tuple2<>(Arrays.asList(dims.split(",")), Arrays.asList(metrics.split(","))));
    } else {
      return new Left<>("No segments key in the response..");
    }
  }
  return new Left<>("Unexpected response " + goodResp.left().get().toString());
}

代码示例来源:origin: eclipse/ditto

@Override
public SSLContext clientCertificate(final ClientCertificateCredentials credentials) {
  final String clientKeyPem = credentials.getClientKey().orElse(null);
  final String clientCertificatePem = credentials.getClientCertificate().orElse(null);
  final Supplier<KeyManager[]> keyManagerSupplier = newKeyManagerFactory(clientKeyPem, clientCertificatePem);
  final Supplier<TrustManager[]> trustManagerFactory = trust.isRight()
      ? newTrustManagerFactory(trust.right().get())
      : () -> new TrustManager[]{trust.left().get()};
  return newTLSContext(keyManagerSupplier, trustManagerFactory);
}

代码示例来源:origin: json-path/JsonPath

public Result runBoon() {
  String result = null;
  String error = null;
  long time;
  Iterator<Object> query = null;
  long now = System.currentTimeMillis();
  try {
    if (!optionAsValues) {
      throw new UnsupportedOperationException("Not supported!");
    }
    io.gatling.jsonpath.JsonPath jsonPath = JsonPath$.MODULE$.compile(path).right().get();
    JsonParser jsonParser = new JsonParserCharArray();
    Object jsonModel = jsonParser.parse(json);
    query = jsonPath.query(jsonModel);
  } catch (Exception e) {
    error = getError(e);
  } finally {
    time = System.currentTimeMillis() - now;
    if (query != null) {
      List<Object> res = new ArrayList<Object>();
      while (query.hasNext()) {
        res.add(query.next());
      }
      ObjectMapper mapper = new ObjectMapperImpl();
      result = mapper.toJson(res);
    }
    return new Result("boon", time, result, error);
  }
}

代码示例来源:origin: kframework/k

static Either<Set<ParseFailedException>,Term> visitPolyChildren(TermCons tc, Function<Term, Either<Set<ParseFailedException>, Term>> apply) {
  Set<ParseFailedException> errors = new HashSet<>();
  for (int i : getPolyChildren(tc)) {
    Either<Set<ParseFailedException>, Term> res = apply.apply(tc.get(i - 1));
    if (res.isLeft()) {
      errors.addAll(res.left().get());
    }
  }
  if (errors.isEmpty())
    return Right.apply(tc);
  else
    return Left.apply(errors);
}

代码示例来源:origin: com.yahoo.maha/maha-par-request-2

/**
 * Casts the leftEither from <E,A> to <E,B>, meaning it is of type E already and not A or B
 */
public static <E, A, B> Either<E, B> castLeft(Either<E, A> leftEither) {
  Preconditions.checkArgument(leftEither.isLeft());
  return (Either<E, B>) leftEither;
}

代码示例来源:origin: kframework/k

private void printout(Tuple2<Either<Set<ParseFailedException>, K>, Set<ParseFailedException>> rule, int warnings, boolean expectedError) {
  if (false) { // true to print detailed results
    KExceptionManager kem = new KExceptionManager(new GlobalOptions(true, Warnings.ALL, true));
    if (rule._1().isLeft()) {
      for (ParseFailedException x : rule._1().left().get()) {
        kem.addKException(x.getKException());
      }
    } else {
      System.err.println("rule = " + rule._1().right().get());
    }
    for (ParseFailedException x : rule._2()) {
      kem.addKException(x.getKException());
    }
    kem.print();
  }
  if (expectedError)
    Assert.assertTrue("Expected error here: ", rule._1().isLeft());
  else
    Assert.assertTrue("Expected no errors here: ", rule._1().isRight());
  Assert.assertEquals("Expected " + warnings + " warnings: ", warnings, rule._2().size());
}

代码示例来源:origin: com.yahoo.maha/maha-par-request-2

static <A, B> Either<GeneralError, B> prependStageAndCastLeft(Either<GeneralError, A> either,
                                     final String s) {
    return new Left<GeneralError, B>(either.left().get().prependStage(s));
  }
}

代码示例来源:origin: com.yahoo.sql4d/Sql4Ddriver

public List<String> getDimensions(String name, Map<String, String> reqHeaders) {
  Either<String,Tuple2<List<String>,List<String>>> aboutDataSource = aboutDataSource(name, reqHeaders);
  if (aboutDataSource.isLeft()) {
    return Lists.newArrayList();
  } 
  return aboutDataSource.right().get()._1();
}

代码示例来源:origin: com.yahoo.sql4d/Sql4Ddriver

/**
 * Left is error Right is Tuple <dimensions, metrics>
 *
 * @param name
 * @param reqHeaders
 * @return
 */
public Either<String, Tuple2<List<String>, List<String>>> aboutDataSource(String name, Map<String, String> reqHeaders) {
  Either<String, Either<JSONArray, JSONObject>> resp = fireCommand("druid/coordinator/v1/metadata/datasources/" + name, null, reqHeaders);
  if (resp.isLeft()) {
    return new Left<>(resp.left().get());
  }
  Either<JSONArray, JSONObject> goodResp = resp.right().get();
  if (goodResp.isRight()) {
    JSONObject data = goodResp.right().get();
    if (data.has("segments")) {
      JSONArray segmentsArray = data.getJSONArray("segments");
      if (segmentsArray.length() == 0) {
        return new Left<>("No segments received..");
      }
      JSONObject firstItem = segmentsArray.getJSONObject(0);
      String dims = firstItem.getString("dimensions");
      String metrics = firstItem.getString("metrics");
      return new Right<>(new Tuple2<>(Arrays.asList(dims.split(",")), Arrays.asList(metrics.split(","))));
    } else {
      return new Left<>("No segments key in the response..");
    }
  }
  return new Left<>("Unexpected response " + goodResp.left().get().toString());
}

代码示例来源:origin: org.eclipse.ditto/ditto-services-connectivity-messaging

@Override
public SSLContext clientCertificate(final ClientCertificateCredentials credentials) {
  final String clientKeyPem = credentials.getClientKey().orElse(null);
  final String clientCertificatePem = credentials.getClientCertificate().orElse(null);
  final Supplier<KeyManager[]> keyManagerSupplier = newKeyManagerFactory(clientKeyPem, clientCertificatePem);
  final Supplier<TrustManager[]> trustManagerFactory = trust.isRight()
      ? newTrustManagerFactory(trust.right().get())
      : () -> new TrustManager[]{trust.left().get()};
  return newTLSContext(keyManagerSupplier, trustManagerFactory);
}

代码示例来源:origin: com.yahoo.sql4d/Sql4Ddriver

public static void main(String[] args) {
    String q = "SELECT timestamp, LONG_SUM(count) AS edit_count, DOUBLE_SUM(added) AS chars_added FROM wikipedia WHERE interval BETWEEN 2010-01-01T00:00:00.000Z AND 2020-01-01T00:00:00.000Z BREAK BY 'minute' HINT('timeseries');";
    String q1 = "SELECT timestamp, page, LONG_SUM(count) AS edit_count FROM wikipedia WHERE interval BETWEEN 2010-01-01 AND 2020-01-01 AND country='United States' BREAK BY 'all' GROUP BY page  ORDER BY edit_count DESC LIMIT 10;";
    String q2 = "SELECT page, LONG_SUM(count) AS edit_count FROM wikipedia WHERE interval BETWEEN 2010-01-01T00:00:00.000Z AND 2020-01-01T00:00:00.000Z AND country='United States' BREAK BY 'minute' GROUP BY page  LIMIT 10;";
    DDataSource driver = new DDataSource("localhost", 4080, "localhost", 8082, null, 3128);
    Either<String, Either<Joiner4All, Mapper4All>> result = driver.query(q, null, null, true, "sql");
    System.out.println(result.right().get().right().get());
  }
}

代码示例来源:origin: kframework/k

static Tuple2<Either<Set<ParseFailedException>, Term>, Set<VarInfo>> visitPolyChildrenSets(TermCons tc, Function<Term, Tuple2<Either<Set<ParseFailedException>, Term>, Set<VarInfo>>> apply) {
  Set<ParseFailedException> errors = new HashSet<>();
  Set<VarInfo> info = new HashSet<>();
  for (int i : getPolyChildren(tc)) {
    Tuple2<Either<Set<ParseFailedException>, Term>, Set<VarInfo>> res = apply.apply(tc.get(i - 1));
    info.addAll(res._2());
    if (res._1().isLeft())
      errors.addAll(res._1().left().get());
  }
  if (errors.isEmpty())
    return Tuple2.apply(Right.apply(tc), info);
  else
    return Tuple2.apply(Left.apply(errors), info);
}

代码示例来源:origin: com.yahoo.maha/maha-par-request-2

static <T> Either<GeneralError, T> prependStage(Either<GeneralError, T> either, final String s) {
      return new Left<GeneralError, T>(either.left().get().prependStage(s));
}

代码示例来源:origin: com.typesafe.play/play_2.12

static <A, B> Accumulator<ByteString, F.Either<Result, A>> delegate(play.api.mvc.BodyParser<B> delegate, Function<B, A> transform, Http.RequestHeader request) {
    Accumulator<ByteString, scala.util.Either<play.api.mvc.Result, B>> javaAccumulator = delegate.apply(request.asScala()).asJava();
      
    return javaAccumulator.map(result -> {
        if (result.isLeft()) {
          return F.Either.Left(result.left().get().asJava());
        } else {
          return F.Either.Right(transform.apply(result.right().get()));
        }
      },
      JavaParsers.trampoline());
  }
}

代码示例来源:origin: com.yahoo.sql4d/Sql4Ddriver

public List<String> getMetrics(String name, Map<String, String> reqHeaders) {
  Either<String,Tuple2<List<String>,List<String>>> aboutDataSource = aboutDataSource(name, reqHeaders);
  if (aboutDataSource.isLeft()) {
    return Lists.newArrayList();
  } 
  return aboutDataSource.right().get()._2();
}
/**

代码示例来源:origin: kframework/k

public void throwFirstLeftException(Term input) {
    Either<Set<ParseFailedException>, Term> result = treeCleanerVisitor.apply(input);
    if (result.isRight()) {
      fail("Expected an exception but got:" + result.right().get());
    } else {
      throw result.left().get().iterator().next();
    }
  }
}

代码示例来源:origin: srikalyc/Sql4D

public static void main(String[] args) {
    String q = "SELECT timestamp, LONG_SUM(count) AS edit_count, DOUBLE_SUM(added) AS chars_added FROM wikipedia WHERE interval BETWEEN 2010-01-01T00:00:00.000Z AND 2020-01-01T00:00:00.000Z BREAK BY 'minute' HINT('timeseries');";
    String q1 = "SELECT timestamp, page, LONG_SUM(count) AS edit_count FROM wikipedia WHERE interval BETWEEN 2010-01-01 AND 2020-01-01 AND country='United States' BREAK BY 'all' GROUP BY page  ORDER BY edit_count DESC LIMIT 10;";
    String q2 = "SELECT page, LONG_SUM(count) AS edit_count FROM wikipedia WHERE interval BETWEEN 2010-01-01T00:00:00.000Z AND 2020-01-01T00:00:00.000Z AND country='United States' BREAK BY 'minute' GROUP BY page  LIMIT 10;";
    DDataSource driver = new DDataSource("localhost", 4080, "localhost", 8082, null, 3128);
    Either<String, Either<Joiner4All, Mapper4All>> result = driver.query(q, null, null, true, "sql");
    System.out.println(result.right().get().right().get());
  }
}

相关文章

微信公众号

最新文章

更多