From 0ed29a339fa5f0d9a13004bf4c496c7019691b48 Mon Sep 17 00:00:00 2001 From: Alex Eng Date: Fri, 20 Sep 2013 07:02:32 +1000 Subject: [PATCH] Rename and refactor implementation --- .../zanata/service/TranslationService.java | 11 +- .../service/impl/TranslationServiceImpl.java | 139 +++---- .../events/WorkspaceContextUpdateEvent.java | 8 +- .../presenter/ValidationOptionsPresenter.java | 2 +- .../server/rpc/UpdateTransUnitHandler.java | 2 +- .../validation/AbstractValidationAction.java | 2 +- .../shared/validation/ValidationFactory.java | 31 +- .../WEB-INF/classes/META-INF/components.xml | 4 - .../WEB-INF/layout/project_edit_form.xhtml | 391 +++++++++--------- .../layout/validation_options_legend.xhtml | 33 +- .../impl/TranslationServiceImplTest.java | 8 +- .../TransMemoryMergePresenterTest.java | 13 +- .../TransUnitsTablePresenterTest.java | 10 +- .../rpc/DummyActivateWorkspaceCommand.java | 6 +- .../client/service/ValidationServiceTest.java | 6 +- .../rpc/ActivateWorkspaceHandlerTest.java | 6 +- .../validation/HtmlXmlTagValidationTests.java | 1 - 17 files changed, 324 insertions(+), 349 deletions(-) diff --git a/zanata-war/src/main/java/org/zanata/service/TranslationService.java b/zanata-war/src/main/java/org/zanata/service/TranslationService.java index 96fb70410e..b7ea132358 100644 --- a/zanata-war/src/main/java/org/zanata/service/TranslationService.java +++ b/zanata-war/src/main/java/org/zanata/service/TranslationService.java @@ -44,11 +44,18 @@ public interface TranslationService * * @param localeId * @param translationRequests - * @param runValidationCheck - Should be true by default * @return information about each translation change */ - List translate(LocaleId localeId, List translationRequests, boolean skipValidationCheck); + List translate(LocaleId localeId, List translationRequests); + /** + * Updates multiple text flows within a project-iteration without running validation check. + * + * @param localeId + * @param translationRequests + * @return information about each translation change + */ + List translateWithoutValidating(LocaleId localeId, List translationRequests); /** * Attempts to revert a list of updates by adding a new translation that is diff --git a/zanata-war/src/main/java/org/zanata/service/impl/TranslationServiceImpl.java b/zanata-war/src/main/java/org/zanata/service/impl/TranslationServiceImpl.java index cb3ac3a093..c9d358ddaa 100644 --- a/zanata-war/src/main/java/org/zanata/service/impl/TranslationServiceImpl.java +++ b/zanata-war/src/main/java/org/zanata/service/impl/TranslationServiceImpl.java @@ -20,70 +20,36 @@ */ package org.zanata.service.impl; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.annotation.Nonnull; -import javax.persistence.EntityManager; - -import lombok.extern.slf4j.Slf4j; - -import org.apache.commons.lang.StringUtils; -import org.hibernate.HibernateException; -import org.jboss.seam.ScopeType; -import org.jboss.seam.annotations.In; -import org.jboss.seam.annotations.Name; -import org.jboss.seam.annotations.Scope; -import org.jboss.seam.annotations.TransactionPropagationType; -import org.jboss.seam.annotations.Transactional; -import org.jboss.seam.core.Events; -import org.jboss.seam.security.management.JpaIdentityStore; -import org.jboss.seam.util.Work; -import org.zanata.async.AsyncTaskHandle; -import org.zanata.async.AsyncUtils; -import org.zanata.common.ContentState; -import org.zanata.common.LocaleId; -import org.zanata.common.MergeType; -import org.zanata.common.util.ContentStateUtil; -import org.zanata.dao.DocumentDAO; -import org.zanata.dao.PersonDAO; -import org.zanata.dao.ProjectIterationDAO; -import org.zanata.dao.TextFlowDAO; -import org.zanata.dao.TextFlowTargetDAO; -import org.zanata.events.DocumentUploadedEvent; -import org.zanata.events.TextFlowTargetStateEvent; -import org.zanata.exception.ZanataServiceException; -import org.zanata.lock.Lock; -import org.zanata.model.HAccount; -import org.zanata.model.HDocument; -import org.zanata.model.HLocale; -import org.zanata.model.HPerson; -import org.zanata.model.HProjectIteration; -import org.zanata.model.HSimpleComment; -import org.zanata.model.HTextFlow; -import org.zanata.model.HTextFlowTarget; -import org.zanata.model.HTextFlowTargetHistory; -import org.zanata.rest.dto.resource.TextFlowTarget; -import org.zanata.rest.dto.resource.TranslationsResource; -import org.zanata.rest.service.ResourceUtils; -import org.zanata.security.ZanataIdentity; -import org.zanata.service.LocaleService; -import org.zanata.service.LockManagerService; -import org.zanata.service.TranslationMergeService; -import org.zanata.service.TranslationService; -import org.zanata.service.ValidationService; -import org.zanata.webtrans.shared.model.TransUnitId; -import org.zanata.webtrans.shared.model.TransUnitUpdateInfo; -import org.zanata.webtrans.shared.model.TransUnitUpdateRequest; - -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -import org.zanata.webtrans.shared.model.ValidationAction; +import java.util.*; + +import javax.annotation.*; +import javax.persistence.*; + +import lombok.extern.slf4j.*; + +import org.apache.commons.lang.*; +import org.hibernate.*; +import org.jboss.seam.*; +import org.jboss.seam.annotations.*; +import org.jboss.seam.core.*; +import org.jboss.seam.security.management.*; +import org.jboss.seam.util.*; +import org.zanata.async.*; +import org.zanata.common.*; +import org.zanata.common.util.*; +import org.zanata.dao.*; +import org.zanata.events.*; +import org.zanata.exception.*; +import org.zanata.lock.*; +import org.zanata.model.*; +import org.zanata.rest.dto.resource.*; +import org.zanata.rest.service.*; +import org.zanata.security.*; +import org.zanata.service.*; +import org.zanata.webtrans.shared.model.*; + +import com.google.common.base.*; +import com.google.common.collect.*; @Name("translationServiceImpl") @Scope(ScopeType.STATELESS) @@ -132,8 +98,18 @@ public class TranslationServiceImpl implements TranslationService private TranslationMergeServiceFactory translationMergeServiceFactory; @Override - public List translate(LocaleId localeId, List translationRequests, - boolean runValidationCheck) + public List translate(LocaleId localeId, List translationRequests) + { + return translate(localeId, translationRequests, true); + } + + @Override + public List translateWithoutValidating(LocaleId localeId, List translationRequests) + { + return translate(localeId, translationRequests, false); + } + + private List translate(LocaleId localeId, List translationRequests, boolean runValidation) { List results = new ArrayList(); @@ -159,15 +135,18 @@ public List translate(LocaleId localeId, List translateAllInDoc(String projectSlug, String iterationSlug, * @return error messages */ private String validateTranslations(ContentState newState, HProjectIteration projectVersion, String targetId, - List sources, List translations) + List sources, List translations) { String message = null; if (newState.isTranslated()) { List validationMessages = validationServiceImpl.validateWithServerRules( - projectVersion, sources, translations, ValidationAction.State.Error); + projectVersion, sources, translations, ValidationAction.State.Error); if (!validationMessages.isEmpty()) { @@ -612,8 +591,8 @@ protected Boolean work() throws Exception else { String validationMessage = validateTranslations(incomingTarget.getState(), - hProjectIteration, incomingTarget.getResId(), textFlow.getContents(), - incomingTarget.getContents()); + hProjectIteration, incomingTarget.getResId(), textFlow.getContents(), + incomingTarget.getContents()); if (!StringUtils.isEmpty(validationMessage)) { @@ -621,7 +600,7 @@ protected Boolean work() throws Exception log.warn(validationMessage); continue; } - + int nPlurals = getNumPlurals(hLocale, textFlow); HTextFlowTarget hTarget = textFlowTargetDAO.getTextFlowTarget(textFlow, hLocale); @@ -859,7 +838,7 @@ public List revertTranslations(LocaleId localeId, List validationsState; + private final Map validationStates; public WorkspaceContextUpdateEvent(HasWorkspaceContextUpdateData data) { this.isProjectActive = data.isProjectActive(); this.projectType = data.getProjectType(); - this.validationsState = data.getValidationsState(); + this.validationStates = data.getValidationsState(); } /** @@ -63,8 +63,8 @@ public ProjectType getProjectType() return projectType; } - public Map getValidationsState() + public Map getValidationStates() { - return validationsState; + return validationStates; } } diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/ValidationOptionsPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/ValidationOptionsPresenter.java index f53e1fa3ca..6184c9a2e6 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/ValidationOptionsPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/ValidationOptionsPresenter.java @@ -133,7 +133,7 @@ public void onValueChange(ValueChangeEvent event) @Override public void onWorkspaceContextUpdated(WorkspaceContextUpdateEvent event) { - validationService.setValidationRules(event.getValidationsState()); + validationService.setValidationRules(event.getValidationStates()); initDisplay(); } diff --git a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/UpdateTransUnitHandler.java b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/UpdateTransUnitHandler.java index d29f5c48fd..0b3e2c6e91 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/UpdateTransUnitHandler.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/server/rpc/UpdateTransUnitHandler.java @@ -88,7 +88,7 @@ protected UpdateTransUnitResult doTranslation(LocaleId localeId, TranslationWork TransUnitUpdated.UpdateType updateType) { UpdateTransUnitResult result = new UpdateTransUnitResult(); - List translationResults = translationServiceImpl.translate(localeId, updateRequests, true); + List translationResults = translationServiceImpl.translateWithoutValidating(localeId, updateRequests); for (TranslationResult translationResult : translationResults) { HTextFlowTarget newTarget = translationResult.getTranslatedTextFlowTarget(); diff --git a/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/AbstractValidationAction.java b/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/AbstractValidationAction.java index 0f831e10a8..96bcd2fba6 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/AbstractValidationAction.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/AbstractValidationAction.java @@ -57,7 +57,7 @@ public abstract class AbstractValidationAction implements ValidationAction private ValidationDisplayRules displayRules; - private ArrayList exclusiveValidations = new ArrayList(); + private ArrayList exclusiveValidations = Lists.newArrayList(); private ValidationMessages validationMessages; diff --git a/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/ValidationFactory.java b/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/ValidationFactory.java index 19e86e4fb1..1160724d70 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/ValidationFactory.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/shared/validation/ValidationFactory.java @@ -3,25 +3,14 @@ */ package org.zanata.webtrans.shared.validation; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -import org.zanata.webtrans.client.resources.ValidationMessages; -import org.zanata.webtrans.shared.model.ValidationAction; -import org.zanata.webtrans.shared.model.ValidationAction.State; -import org.zanata.webtrans.shared.model.ValidationId; -import org.zanata.webtrans.shared.validation.action.HtmlXmlTagValidation; -import org.zanata.webtrans.shared.validation.action.JavaVariablesValidation; -import org.zanata.webtrans.shared.validation.action.NewlineLeadTrailValidation; -import org.zanata.webtrans.shared.validation.action.PrintfVariablesValidation; -import org.zanata.webtrans.shared.validation.action.PrintfXSIExtensionValidation; -import org.zanata.webtrans.shared.validation.action.TabValidation; -import org.zanata.webtrans.shared.validation.action.XmlEntityValidation; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; +import java.util.*; + +import org.zanata.webtrans.client.resources.*; +import org.zanata.webtrans.shared.model.*; +import org.zanata.webtrans.shared.model.ValidationAction.*; +import org.zanata.webtrans.shared.validation.action.*; + +import com.google.common.collect.*; /** * Validation Factory - provides list of available validation rules to run on server or client. @@ -32,7 +21,7 @@ public final class ValidationFactory { private final ValidationMessages validationMessages; - private final TreeMap referenceMap; + private final Map referenceMap; public static Comparator ValidationIdComparator = new Comparator() { @@ -73,7 +62,7 @@ public ValidationAction getValidationAction(ValidationId id) return referenceMap.get(id); } - private TreeMap generateActions() + private Map generateActions() { TreeMap validationMap = Maps.newTreeMap(); diff --git a/zanata-war/src/main/webapp-jboss/WEB-INF/classes/META-INF/components.xml b/zanata-war/src/main/webapp-jboss/WEB-INF/classes/META-INF/components.xml index 8b7cf8eaa2..67689b1c71 100644 --- a/zanata-war/src/main/webapp-jboss/WEB-INF/classes/META-INF/components.xml +++ b/zanata-war/src/main/webapp-jboss/WEB-INF/classes/META-INF/components.xml @@ -124,10 +124,6 @@ --> - - - -