private TranslationStatistics getMessageStats( TransUnitCount unitCount, LocaleId locale, Date lastChanged, String lastModifiedBy) { TranslationStatistics stats = new TranslationStatistics(unitCount, locale.getId()); stats.setLastTranslatedBy(lastModifiedBy); stats.setLastTranslatedDate(lastChanged); stats.setLastTranslated(getLastTranslated(lastChanged, lastModifiedBy)); return stats; }
@Override public ContainerTranslationStatistics getStatistics( String projectSlug, String iterationSlug, String docId, boolean includeWordStats, String[] locales) { LocaleId[] localeIds; // if no locales are specified, search in all locales if (locales.length == 0) { List<HLocale> iterationLocales = localeServiceImpl.getSupportedLangugeByProjectIteration(projectSlug, iterationSlug); localeIds = new LocaleId[iterationLocales.size()]; for (int i = 0, iterationLocalesSize = iterationLocales.size(); i < iterationLocalesSize; i++) { HLocale loc = iterationLocales.get(i); localeIds[i] = loc.getLocaleId(); } } else { localeIds = new LocaleId[locales.length]; for (int i = 0; i < locales.length; i++) { localeIds[i] = new LocaleId(locales[i]); } } HDocument document = documentDAO.getByProjectIterationAndDocId(projectSlug, iterationSlug, docId); if (document == null) { throw new NoSuchEntityException(projectSlug + "/" + iterationSlug + "/" + docId); } ContainerTranslationStatistics docStatistics = new ContainerTranslationStatistics(); docStatistics.setId(docId); docStatistics.addRef( new Link(URI.create(zPathService.generatePathForDocument(document)), "statSource", "DOC")); for (LocaleId localeId : localeIds) { ContainerTranslationStatistics docStats = getDocStatistics(document.getId(), localeId); DocumentStatus docStatus = translationStateCacheImpl.getDocumentStatus(document.getId(), localeId); TranslationStatistics docWordStatistic = docStats.getStats(localeId.getId(), StatUnit.WORD); TranslationStatistics docMsgStatistic = docStats.getStats(localeId.getId(), StatUnit.MESSAGE); docMsgStatistic.setLastTranslatedBy(docStatus.getLastTranslatedBy()); docMsgStatistic.setLastTranslatedDate(docStatus.getLastTranslatedDate()); docMsgStatistic.setLastTranslated( getLastTranslated(docStatus.getLastTranslatedDate(), docStatus.getLastTranslatedBy())); docStatistics.addStats(docMsgStatistic); if (includeWordStats) { docWordStatistic.setLastTranslatedBy(docStatus.getLastTranslatedBy()); docWordStatistic.setLastTranslatedDate(docStatus.getLastTranslatedDate()); docWordStatistic.setLastTranslated( getLastTranslated(docStatus.getLastTranslatedDate(), docStatus.getLastTranslatedBy())); docStatistics.addStats(docWordStatistic); } } return docStatistics; }