/** Return the head of list <code>as</code> or <code>none</code>. */ public static <A> Option<A> head(List<A> as) { if (!as.isEmpty()) { return some(as.get(0)); } else { return Option.none(); } }
/** Create a new entity manager or return none, if the factory has already been closed. */ public static Option<EntityManager> createEntityManager(EntityManagerFactory emf) { try { return some(emf.createEntityManager()); } catch (IllegalStateException ex) { // factory is already closed return none(); } }
/** * {@inheritDoc} * * @see org.opencastproject.workingfilerepository.api.WorkingFileRepository#getUsedSpace() */ @Override public Option<Long> getUsedSpace() { return Option.some((Long) (getStorageReport().get("used"))); }
/** * Trim a string and return either <code>some</code> or <code>none</code> if it's empty. The string may be null. */ public static Option<String> trimToNone(String a) { if (a != null) { final String trimmed = a.trim(); return trimmed.length() > 0 ? some(trimmed) : NONE; } else { return none(); } }
@Override public Option<Integer> apply(String s) { try { return some(Integer.parseInt(s)); } catch (NumberFormatException e) { return none(); } } };
/** * {@inheritDoc} * * @see org.opencastproject.workingfilerepository.api.WorkingFileRepository#getTotalSpace() */ @Override public Option<Long> getTotalSpace() { return Option.some((Long) (getStorageReport().get("size"))); }
@Override public Option<Long> getUsableSpace() { return some(new File(wsRoot).getUsableSpace()); }
@Override public Option<A> option() { return as.length == 1 ? some(as[0]) : Option.<A> none(); }
/** Wrap an arbitrary object into an option with <code>null</code> being mapped to none. */ public static <A> Option<A> option(A a) { if (a != null) return some(a); else return none(); }
/** Convert an <code>Opt</code> into an <code>Option</code>. */ public static <A> Option<A> fromOpt(Opt<A> a) { for (A x : a) { return some(x); } return none(); }
@Override public Option<List<MediaPackageElement>> apply(HttpResponse response) { try { final String xml = IOUtils.toString(response.getEntity().getContent(), Charset.forName("utf-8")); List<MediaPackageElement> result = new ArrayList<>(MediaPackageElementParser.getArrayFromXml(xml)); return some(result); } catch (Exception e) { logger.error("Error parsing Job from HTTP response", e); return none(); } } };
/** Get a classpath resource as a file using the class loader of {@link IoSupport}. */ public static Option<File> classPathResourceAsFile(String resource) { try { final URL res = IoSupport.class.getResource(resource); if (res != null) { return Option.some(new File(res.toURI())); } else { return Option.none(); } } catch (URISyntaxException e) { return Option.none(); } }
@Override public Option<A> lastOpt() { return !as.isEmpty() ? some(last()) : Option.<A> none(); }
/** Get the organization <code>orgId</code>. */ public static Option<Organization> getOrganization(OrganizationDirectoryService orgDir, String orgId) { try { return some(orgDir.getOrganization(orgId)); } catch (NotFoundException e) { return none(); } }
@Override public Option<AclScope> apply(String s) { try { return some(AclScope.valueOf(s)); } catch (IllegalArgumentException e) { return none(); } } };
@Override public Option<A> find(Function<? super A, Boolean> p) { for (A a : as) { if (p.apply(a)) return some(a); } return none(); }
@Override public Option<A> find(Function<? super A, Boolean> p) { for (A a : forc(as)) { if (p.apply(a)) return some(a); } return none(); }
/** Lazy version of {@link #andThenV(Object)}. */ public <B> Option<B> andThenV(Function0<B> some) { return isSome() ? some(some.apply()) : Option.<B> none(); }
protected <A> Option<A> runRequest(HttpRequestBase req, Function<HttpResponse, A> f) { HttpResponse res = null; try { res = getResponse(req); return res != null ? some(f.apply(res)) : Option.<A> none(); } finally { closeConnection(res); } }
public <B> Option<Tuple<A, B>> and(Option<B> b) { if (isSome() && b.isSome()) { return some(tuple(get(), b.get())); } else { return none(); } }