public Promise<Void> persist(final FormInstance siteInstance) { int activityId = CuidAdapter.getLegacyIdFromCuid(siteInstance.getClassId()); return dispatcher .execute(new GetSchema()) .then(new SiteBindingFactory(activityId)) .join( new Function<SiteBinding, Promise<Void>>() { @Nullable @Override public Promise<Void> apply(@Nullable SiteBinding binding) { return persist(binding, siteInstance).thenDiscardResult(); } }); }