@Override public void save(UniversalLink link) throws DaoException { for (Language language : link.getLanguageSet()) { for (LocalLink localLink : link.getLocalLinks(language)) { save( localLink, link.getSourceId(), link.getDestId(), link.getAlgorithmId() ); } } }
public Collection<LocalLink> getLocalLinks(Language language) { return new ArrayList<LocalLink>(getLocalEntities(language)); }
private UniversalLink buildUniversalLink(Collection<Record> records) throws DaoException { if (records == null || records.isEmpty()) { return null; } Multimap<Language, LocalLink> map = HashMultimap.create(records.size(), records.size()); for (Record record : records) { Language language = Language.getById(record.getValue(Tables.UNIVERSAL_LINK.LANG_ID)); LocalLink temp = localLinkDao.getLink( language, record.getValue(Tables.UNIVERSAL_LINK.LOCAL_SOURCE_ID), record.getValue(Tables.UNIVERSAL_LINK.LOCAL_DEST_ID) ); map.put(language, temp); } Record temp = records.iterator().next(); return new UniversalLink( temp.getValue(Tables.UNIVERSAL_LINK.UNIV_SOURCE_ID), temp.getValue(Tables.UNIVERSAL_LINK.UNIV_DEST_ID), temp.getValue(Tables.UNIVERSAL_LINK.ALGORITHM_ID), map ); }
@Test public void testGetOutlinks() throws ConfigurationException, DaoException { Env env = new EnvBuilder().build(); Configurator configurator = env.getConfigurator(); UniversalLinkDao dao = configurator.get(UniversalLinkDao.class, "skeletal-sql"); long start = System.currentTimeMillis(); UniversalLinkGroup links = dao.getOutlinks(0); int i=0; for (UniversalLink link : links) { i++; System.out.println(i + " - Dest ID: " + link.getDestId()); } long end = System.currentTimeMillis(); long total = end - start; double seconds = total / 1000.0; System.out.println("Time (s): " + seconds); System.out.println("Per link (ms): " + total / (double) i); } }
for (Language language : link.getLanguageSet()) { languages.add(language);
private UniversalLink buildUniversalLink(Record record) throws DaoException { if (record == null) { return null; } return new UniversalLink( record.getValue(Tables.UNIVERSAL_SKELETAL_LINK.SOURCE_ID), record.getValue(Tables.UNIVERSAL_SKELETAL_LINK.DEST_ID), record.getValue(Tables.UNIVERSAL_SKELETAL_LINK.ALGORITHM_ID), LanguageSet.getLanguageSet(record.getValue(Tables.UNIVERSAL_SKELETAL_LINK.LANGS)) ); }
@Test public void testGetOutlinks() throws ConfigurationException, DaoException { Env env = new EnvBuilder().build(); Configurator configurator = env.getConfigurator(); UniversalLinkDao dao = configurator.get(UniversalLinkDao.class, "skeletal-sql"); long start = System.currentTimeMillis(); UniversalLinkGroup links = dao.getOutlinks(0); int i=0; for (UniversalLink link : links) { i++; System.out.println(i + " - Dest ID: " + link.getDestId()); } long end = System.currentTimeMillis(); long total = end - start; double seconds = total / 1000.0; System.out.println("Time (s): " + seconds); System.out.println("Per link (ms): " + total / (double) i); } }
@Override public void save(UniversalLink item) throws DaoException { try { int sourceId = item.getSourceId(); int destId = item.getDestId(); LanguageSet languages = item.getLanguageSet(); String key = sourceId + "_" + destId + "_" + item.getAlgorithmId(); byte[] temp = objectDb.get(key); if (temp != null) { languages = new LanguageSet(Sets.union(LanguageSet.getLanguageSet(temp).getLanguages(), languages.getLanguages())); } objectDb.put(key, languages.toByteArray()); } catch (IOException e) { throw new DaoException(e); } catch (ClassNotFoundException e) { throw new DaoException(e); } }
UniversalLink link = new UniversalLink(univSourceId, univDestId, algorithmId, linkMap); universalLinkDao.save(link); universalLinkSkeletalDao.save(link);
UniversalLink link = new UniversalLink(univSourceId, univDestId, algorithmId, linkMap); universalLinkDao.save(link); universalLinkSkeletalDao.save(link);