@Override public Name deserialize(JsonParser parser, DeserializationContext context) throws IOException { return Name.valueOf(parser.getText()); } }
@Override public Name deserialize(JsonParser parser, DeserializationContext context) throws IOException { return Name.valueOf(parser.getText()); } }
@Override public List<Page> getPageList(Application.Name applicationName) { Stream<AppPage> resultList = getAppPagesFromCassandra(applicationName); return resultList .map(t -> new Page.Builder().withName(Page.Name.valueOf(t.getPage())).build()) .collect(Collectors.toList()); }
@Override public ExperimentPageList getExperimentPages(Experiment.ID experimentID) { ExperimentPageList experimentPageList = new ExperimentPageList(); try { Result<PageExperimentByAppNamePage> result = experimentPageAccessor.selectBy(experimentID.getRawID()); Stream<PageExperimentByAppNamePage> resultList = StreamSupport.stream( Spliterators.spliteratorUnknownSize(result.iterator(), Spliterator.ORDERED), false); List<ExperimentPage> experimentPages = resultList .map(t -> ExperimentPage.withAttributes( Page.Name.valueOf(t.getPage()), t.isAssign() ).build() ).collect(Collectors.toList()); experimentPageList.setPages(experimentPages); } catch (ReadTimeoutException | UnavailableException | NoHostAvailableException e) { throw new RepositoryException("Could not retrieve the pages for experiment: \"" + experimentID + "\"", e); } return experimentPageList; }
@Override public Map<Page.Name, List<PageExperiment>> getPageExperimentList(Application.Name applicationName) { Stream<AppPage> resultList = getAppPagesFromCassandra(applicationName); ImmutableMap.Builder<Page.Name, List<PageExperiment>> result = ImmutableMap.builder(); resultList.forEach(t -> { Page page = new Page.Builder().withName(Page.Name.valueOf(t.getPage())).build(); //TODO: DB change to reduce this call per page, this call may return pageexperiment not owned by the current user List<PageExperiment> pageExperiments = getExperiments(applicationName, page.getName()); result.put(page.getName(), pageExperiments); }); return result.build(); }