@Override public UniversalPage transform(Object obj) { ClusterResult curCluster = (ClusterResult)obj; return new UniversalPage(curCluster.univId, getId(), NameSpace.ARTICLE, curCluster.vertices); } };
@Override public UniversalPage transform(Object obj) { Integer univId = (Integer)obj; return new UniversalPage(univId, getId(), nsBackend.get(univId), backend.get(univId)); } };
@Override public UniversalPage transform(Object obj) { LocalPage page = (LocalPage) obj; Multimap<Language, LocalId> map = HashMultimap.create(); map.put(page.getLanguage(), page.toLocalId()); return new UniversalPage( nextUnivId.getAndIncrement(), getId(), page.getNameSpace(), map ); } };
/** * Build a UniversalPage from a database record representation. * Classes that extend class this should override this method. * * @param result a list of database records * @return a UniversalPage representation of the given database record * @throws DaoException if the record is not a Page */ protected UniversalPage buildUniversalPage(List<Record> result) throws DaoException { if (result == null || result.isEmpty()) { return null; } Multimap<Language, LocalId> localPages = HashMultimap.create(result.size(), result.size()); NameSpace nameSpace = NameSpace.getNameSpaceByArbitraryId(result.get(0).getValue(Tables.LOCAL_PAGE.NAME_SPACE)); for(Record record : result) { Language language = Language.getById(record.getValue(Tables.UNIVERSAL_PAGE.LANG_ID)); int pageId = record.getValue(Tables.UNIVERSAL_PAGE.PAGE_ID); localPages.put(language, new LocalId(language, pageId)); } return new UniversalPage( result.get(0).getValue(Tables.UNIVERSAL_PAGE.UNIV_ID), result.get(0).getValue(Tables.UNIVERSAL_PAGE.ALGORITHM_ID), nameSpace, localPages ); }