@Override protected URL resolve(String path) throws Exception { return sources.stream() .map(source -> source.resolve(path)) .filter(Files::exists) .findFirst() .map(throwingFunction(it -> it.toUri().toURL())) .orElse(null); } }
public URLClassLoader newClassLoader() { return toClassLoader( classpath().stream() .map(throwingFunction(f -> f.toURI().toURL())) .collect(Collectors.toList()), getClass().getClassLoader()); }
@SuppressWarnings("rawtypes") static Optional<Class> findClass(final ClassLoader loader, final String name) { return Stream.of(loader, Thread.currentThread().getContextClassLoader()) // we don't care about exception .map(Throwing.<ClassLoader, Class>throwingFunction(cl -> cl.loadClass(name)) .orElse((Class) null)) .filter(Objects::nonNull) .findFirst(); }
public ExecSchedulerHook(final Map<String, Executor> executors) { // we don't want eager initialization of Schedulers schedulers = Throwing.<String, Scheduler>throwingFunction( name -> Schedulers.from(executors.get(name))) .memoized(); }
@Override public Collection<Import> apply(final String url, final Import previous) { String fname = nameWithExtension(url); List<String> segments = Splitter.on('/').trimResults().omitEmptyStrings() .splitToList(previous.getAbsoluteUri().toString()); String relative = segments.subList(0, segments.size() - 1).stream() .collect(Collectors.joining("/", "/", "")); return Arrays.asList(relative + fname, fname) .stream() .map(resolver::apply) .filter(it -> it != null) .findFirst() .map(throwingFunction(it -> Try.with(it.toURL()::openStream) .apply(in -> new String(ByteStreams.toByteArray(in), StandardCharsets.UTF_8)) .map(content -> Arrays.asList(new Import(it, it, content))) .get() )) .orElse(null); }
/** * Generate a CSS rule, it reads the width and height attributes of the svg element or fallback to * viewBox attribute. * * @param id ID to use. * @param svg Svg element to convert. * @return A css rule. */ private CharSequence css(final String id, final Element svg) { Throwing.Function<String, Tuple<Tuple<Number, String>, Tuple<Number, String>>> viewBox = Throwing .<String, Tuple<Tuple<Number, String>, Tuple<Number, String>>>throwingFunction(name -> { String vbox = svg.attr(name); String[] dimension = vbox.split("\\s+"); return new Tuple(parse(dimension[2]), parse(dimension[_3])); }).memoized(); Tuple<Number, String> w = Optional.ofNullable(Strings.emptyToNull(svg.attr("width"))) .map(this::parse) .orElseGet(() -> viewBox.apply("viewBox")._1); Tuple<Number, String> h = Optional.ofNullable(Strings.emptyToNull(svg.attr("height"))) .map(this::parse) .orElseGet(() -> viewBox.apply("viewBox")._2); StringBuilder css = new StringBuilder(); css.append(get("css.prefix").toString()).append(".").append(id) .append(" {\n width: ").append(w._1).append(w._2).append(";\n") .append(" height: ").append(h._1).append(h._2).append(";\n}"); return css; }
public CassandraSessionStore(final com.datastax.driver.core.Session session, final int timeout) { this.session = requireNonNull(session, "Session required."); this.timeout = timeout; createTableIfNotExists(session, tableName, log); this.insertSQL = Throwing.<String, PreparedStatement>throwingFunction(table -> session.prepare(insertSQL(table, timeout)) ).memoized(); this.selectSQL = Throwing.<String, PreparedStatement>throwingFunction(table -> session.prepare(selectSQL(table)) ).memoized(); this.deleteSQL = Throwing.<String, PreparedStatement>throwingFunction(table -> session.prepare(deleteSQL(table)) ).memoized(); }
}; Throwing.Function<String, Config> dbconf = Throwing.<String, Config>throwingFunction( path -> conf.getConfig(path)) .orElse(ConfigFactory.empty());
throwingFunction(engine::getTemplate) .memoized();
@Override protected URL resolve(String path) throws Exception { return sources.stream() .map(source -> source.resolve(path)) .filter(Files::exists) .findFirst() .map(throwingFunction(it -> it.toUri().toURL())) .orElse(null); } }
@SuppressWarnings("rawtypes") static Optional<Class> findClass(final ClassLoader loader, final String name) { return Stream.of(loader, Thread.currentThread().getContextClassLoader()) // we don't care about exception .map(Throwing.<ClassLoader, Class>throwingFunction(cl -> cl.loadClass(name)) .orElse((Class) null)) .filter(Objects::nonNull) .findFirst(); }
public ExecSchedulerHook(final Map<String, Executor> executors) { // we don't want eager initialization of Schedulers schedulers = Throwing.<String, Scheduler>throwingFunction( name -> Schedulers.from(executors.get(name))) .memoized(); }
public CassandraSessionStore(final com.datastax.driver.core.Session session, final int timeout) { this.session = requireNonNull(session, "Session required."); this.timeout = timeout; createTableIfNotExists(session, tableName, log); this.insertSQL = Throwing.<String, PreparedStatement>throwingFunction(table -> session.prepare(insertSQL(table, timeout)) ).memoized(); this.selectSQL = Throwing.<String, PreparedStatement>throwingFunction(table -> session.prepare(selectSQL(table)) ).memoized(); this.deleteSQL = Throwing.<String, PreparedStatement>throwingFunction(table -> session.prepare(deleteSQL(table)) ).memoized(); }
throwingFunction(engine::getTemplate) .memoized();