@Override public Option<B> apply(Option<A> a) { return a.fmap(f); } };
public <B> Option<B> map(Function<? super A, ? extends B> f) { return fmap(f); }
/** * Get a user and an organization. Only returns something if both elements can be determined. */ public static Option<Tuple<User, Organization>> getUserAndOrganization(SecurityService sec, OrganizationDirectoryService orgDir, String orgId, UserDirectoryService userDir, String userId) { final Organization prevOrg = sec.getOrganization(); try { final Organization org = orgDir.getOrganization(orgId); sec.setOrganization(org); return option(userDir.loadUser(userId)).fmap(new Function<User, Tuple<User, Organization>>() { @Override public Tuple<User, Organization> apply(User user) { return tuple(user, org); } }); } catch (NotFoundException e) { return none(); } finally { sec.setOrganization(prevOrg); } }