Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Move repeated comparator to ComparatorUtil collection
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Eng committed Mar 18, 2014
1 parent 1b11eb9 commit c58ecb1
Show file tree
Hide file tree
Showing 13 changed files with 203 additions and 186 deletions.
13 changes: 3 additions & 10 deletions zanata-war/src/main/java/org/zanata/action/DashboardAction.java
Expand Up @@ -42,6 +42,7 @@
import org.zanata.model.HProjectIteration;
import org.zanata.security.ZanataIdentity;
import org.zanata.service.GravatarService;
import org.zanata.util.ComparatorUtil;
import org.zanata.util.DateUtil;
import org.zanata.util.UrlUtil;

Expand Down Expand Up @@ -71,15 +72,6 @@ public class DashboardAction implements Serializable {

private final int USER_IMAGE_SIZE = 115;

private final Comparator<HProject> projectCreationDateComparator =
new Comparator<HProject>() {
@Override
public int compare(HProject o1, HProject o2) {
return o2.getCreationDate().after(o1.getCreationDate()) ? 1
: -1;
}
};

public String getUserImageUrl() {
return gravatarServiceImpl.getUserImageUrl(USER_IMAGE_SIZE);
}
Expand Down Expand Up @@ -112,7 +104,8 @@ public List<HProject> getUserMaintainedProjects() {
}
}
}
Collections.sort(sortedList, projectCreationDateComparator);
Collections.sort(sortedList,
ComparatorUtil.PROJECT_CREATION_DATE_COMPARATOR);

return sortedList;
}
Expand Down
64 changes: 14 additions & 50 deletions zanata-war/src/main/java/org/zanata/action/ProjectHome.java
Expand Up @@ -71,6 +71,7 @@
import org.zanata.ui.AbstractAutocomplete;
import org.zanata.ui.AbstractListFilter;
import org.zanata.ui.FilterUtil;
import org.zanata.util.ComparatorUtil;
import org.zanata.util.ZanataMessages;
import org.zanata.webtrans.shared.model.ValidationAction;
import org.zanata.webtrans.shared.model.ValidationId;
Expand Down Expand Up @@ -151,15 +152,6 @@ protected List<HPerson> getFilteredList() {
(ZanataMessages) Component
.getInstance(ZanataMessages.class);

private boolean isIncludeLocale(HLocale input) {
return !getInstance().getCustomizedLocales()
.contains(input)
&& (input.getLocaleId().getId()
.startsWith(getQuery()) || input
.retrieveDisplayName().toLowerCase()
.contains(getQuery().toLowerCase()));
}

@Override
public List<HLocale> suggest() {
if (StringUtils.isEmpty(getQuery())
Expand All @@ -168,13 +160,19 @@ public List<HLocale> suggest() {
} else {
List<HLocale> localeList =
localeServiceImpl.getSupportedLocales();

Collection<HLocale> filtered =
Collections2.filter(localeList,
new Predicate<HLocale>() {
@Override
public boolean apply(
@Nullable HLocale input) {
return isIncludeLocale(input);
return FilterUtil
.isIncludeLocale(
getInstance()
.getCustomizedLocales(),
input,
getQuery());
}
});
return Lists.newArrayList(filtered);
Expand Down Expand Up @@ -225,13 +223,7 @@ public List<HLocale> getInstanceActiveLocales() {
} else {
locales = localeServiceImpl.getSupportedAndEnabledLocales();
}
Collections.sort(locales, new Comparator<HLocale>() {
@Override
public int compare(HLocale hLocale, HLocale hLocale2) {
return hLocale.retrieveDisplayName().compareTo(
hLocale2.retrieveDisplayName());
}
});
Collections.sort(locales, ComparatorUtil.LOCALE_COMPARATOR);
return locales;
}

Expand Down Expand Up @@ -284,19 +276,8 @@ protected HProject loadInstance() {
public List<HPerson> suggest() {
List<HPerson> personList =
personDAO.findAllContainingName(getQuery());

Collection<HPerson> filtered =
Collections2.filter(personList,
new Predicate<HPerson>() {
@Override
public boolean apply(
@Nullable HPerson input) {
return !getInstanceMaintainers()
.contains(input);
}
});

return Lists.newArrayList(filtered);
return FilterUtil.filterOutPersonList(
getInstanceMaintainers(), personList);
}

@Override
Expand Down Expand Up @@ -393,19 +374,9 @@ public String persist() {
return retValue;
}

public final static Comparator<HPerson> PERSON_COMPARATOR =
new Comparator<HPerson>() {
@Override
public int compare(HPerson hPerson, HPerson hPerson2) {
return hPerson.getName().compareTo(hPerson2.getName());
}
};

public List<HPerson> getInstanceMaintainers() {
List<HPerson> list = Lists.newArrayList(getInstance().getMaintainers());

Collections.sort(list, PERSON_COMPARATOR);

Collections.sort(list, ComparatorUtil.PERSON_NAME_COMPARATOR);
return list;
}

Expand Down Expand Up @@ -494,22 +465,15 @@ public boolean isRoleRestrictionEnabled(String roleName) {

public List<HAccountRole> getAvailableRoles() {
List<HAccountRole> allRoles = accountRoleDAO.findAll();

Collections.sort(allRoles, new Comparator<HAccountRole>() {
@Override
public int compare(HAccountRole o1, HAccountRole o2) {
return o1.getName().compareTo(o2.getName());
}
});

Collections.sort(allRoles, ComparatorUtil.ACCOUNT_ROLE_COMPARATOR);
return allRoles;
}

/**
* Use FlashScopeBean to store message in page. Multiple ajax requests for
* re-rendering statistics after updating will clear FacesMessages.
*
* @paam severity
* @paam sveriy
* @param message
*/
private void addMessage(StatusMessage.Severity severity, String message) {
Expand Down
Expand Up @@ -55,6 +55,7 @@
import org.zanata.ui.AbstractSortAction;
import org.zanata.ui.FilterUtil;
import org.zanata.ui.model.statistic.WordStatistic;
import org.zanata.util.ComparatorUtil;
import org.zanata.util.StatisticsUtil;
import org.zanata.util.UrlUtil;
import org.zanata.util.ZanataMessages;
Expand Down Expand Up @@ -278,14 +279,8 @@ public List<VersionItem> getProjectVersions() {
} else {
result = projectDAO.getActiveIterations(slug);
result.addAll(projectDAO.getReadOnlyIterations(slug));
Collections.sort(result, new Comparator<HProjectIteration>() {
@Override
public int compare(HProjectIteration o1,
HProjectIteration o2) {
return o1.getCreationDate().compareTo(
o2.getCreationDate());
}
});
Collections.sort(result,
ComparatorUtil.VERSION_CREATION_DATE_COMPARATOR);
}

projectVersions = Lists.newArrayList();
Expand Down
14 changes: 2 additions & 12 deletions zanata-war/src/main/java/org/zanata/action/SlugHome.java
Expand Up @@ -31,6 +31,7 @@
import org.hibernate.criterion.NaturalIdentifier;
import org.jboss.seam.framework.EntityHome;
import org.zanata.common.ProjectType;
import org.zanata.util.ComparatorUtil;

/**
* This implementation uses a field 'slug' to refer to the id of the object.
Expand Down Expand Up @@ -61,18 +62,7 @@ protected E loadInstance() {

public List<ProjectType> getProjectTypeList() {
List<ProjectType> projectTypes = Arrays.asList(ProjectType.values());
Collections.sort(projectTypes, new Comparator<ProjectType>() {
@Override
public int compare(ProjectType o1, ProjectType o2) {
if (o1 == null) {
return -1;
}
if (o2 == null) {
return 1;
}
return o1.toString().compareTo(o2.toString());
}
});
Collections.sort(projectTypes, ComparatorUtil.PROJECT_TYPE_COMPARATOR);
return projectTypes;
}

Expand Down
49 changes: 6 additions & 43 deletions zanata-war/src/main/java/org/zanata/action/VersionGroupHome.java
Expand Up @@ -59,6 +59,7 @@
import org.zanata.ui.AbstractAutocomplete;
import org.zanata.ui.AbstractListFilter;
import org.zanata.ui.FilterUtil;
import org.zanata.util.ComparatorUtil;
import org.zanata.util.ZanataMessages;

import com.google.common.base.Predicate;
Expand Down Expand Up @@ -104,20 +105,8 @@ public class VersionGroupHome extends SlugHome<HIterationGroup> {
public List<HPerson> suggest() {
List<HPerson> personList =
personDAO.findAllContainingName(getQuery());

Collection<HPerson> filtered =
Collections2.filter(personList,
new Predicate<HPerson>() {
@Override
public boolean apply(
@Nullable HPerson input) {
return !getInstance()
.getMaintainers().contains(
input);
}
});

return Lists.newArrayList(filtered);
return FilterUtil.filterOutPersonList(
getInstanceMaintainers(), personList);
}

@Override
Expand Down Expand Up @@ -390,13 +379,7 @@ public List<HLocale> getInstanceActiveLocales() {
List<HLocale> activeLocales =
Lists.newArrayList(getInstance().getActiveLocales());

Collections.sort(activeLocales, new Comparator<HLocale>() {
@Override
public int compare(HLocale hLocale, HLocale hLocale2) {
return hLocale.retrieveDisplayName().compareTo(
hLocale2.retrieveDisplayName());
}
});
Collections.sort(activeLocales, ComparatorUtil.LOCALE_COMPARATOR);
return activeLocales;
}

Expand All @@ -412,39 +395,19 @@ public List<HProjectIteration> getSortedInstanceProjectIterations() {
List<HProjectIteration> list =
Lists.newArrayList(getInstance().getProjectIterations());

Collections.sort(list, new Comparator<HProjectIteration>() {
@Override
public int compare(HProjectIteration documentWithIds,
HProjectIteration documentWithIds2) {
return documentWithIds
.getProject()
.getName()
.toLowerCase()
.compareTo(
documentWithIds2.getProject().getName()
.toLowerCase());
}
});
Collections.sort(list, ComparatorUtil.PROJECT_NAME_COMPARATOR);

return list;
}

public List<HPerson> getInstanceMaintainers() {
List<HPerson> list = Lists.newArrayList(getInstance().getMaintainers());

Collections.sort(list, PERSON_COMPARATOR);
Collections.sort(list, ComparatorUtil.PERSON_NAME_COMPARATOR);

return list;
}

public final static Comparator<HPerson> PERSON_COMPARATOR =
new Comparator<HPerson>() {
@Override
public int compare(HPerson hPerson, HPerson hPerson2) {
return hPerson.getName().compareTo(hPerson2.getName());
}
};

@Override
public NaturalIdentifier getNaturalId() {
return Restrictions.naturalId().set("slug", slug);
Expand Down
Expand Up @@ -48,6 +48,7 @@
import org.zanata.ui.AbstractSortAction;
import org.zanata.ui.FilterUtil;
import org.zanata.ui.model.statistic.WordStatistic;
import org.zanata.util.ComparatorUtil;
import org.zanata.util.StatisticsUtil;
import org.zanata.util.ZanataMessages;

Expand Down Expand Up @@ -423,7 +424,7 @@ public WordStatistic getSelectedVersionStatistic(LocaleId localeId) {
public List<HPerson> getMaintainers() {
List<HPerson> list = versionGroupDAO.getMaintainersBySlug(getSlug());

Collections.sort(list, VersionGroupHome.PERSON_COMPARATOR);
Collections.sort(list, ComparatorUtil.PERSON_NAME_COMPARATOR);
return list;
}

Expand Down
36 changes: 11 additions & 25 deletions zanata-war/src/main/java/org/zanata/action/VersionHome.java
Expand Up @@ -55,6 +55,8 @@
import org.zanata.service.ValidationService;
import org.zanata.service.impl.LocaleServiceImpl;
import org.zanata.ui.AbstractAutocomplete;
import org.zanata.ui.FilterUtil;
import org.zanata.util.ComparatorUtil;
import org.zanata.util.ZanataMessages;
import org.zanata.webtrans.shared.model.ValidationAction;
import org.zanata.webtrans.shared.model.ValidationId;
Expand Down Expand Up @@ -157,15 +159,6 @@ public void updateRequireTranslationReview(String key, boolean checked) {
(ZanataMessages) Component
.getInstance(ZanataMessages.class);

private boolean isIncludeLocale(HLocale input) {
return !getInstance().getCustomizedLocales()
.contains(input)
&& (input.getLocaleId().getId()
.startsWith(getQuery()) || input
.retrieveDisplayName().toLowerCase()
.contains(getQuery().toLowerCase()));
}

@Override
public List<HLocale> suggest() {
if (StringUtils.isEmpty(getQuery())
Expand All @@ -180,7 +173,12 @@ public List<HLocale> suggest() {
@Override
public boolean apply(
@Nullable HLocale input) {
return isIncludeLocale(input);
return FilterUtil
.isIncludeLocale(
getInstance()
.getCustomizedLocales(),
input,
getQuery());
}
});
return Lists.newArrayList(filtered);
Expand Down Expand Up @@ -327,13 +325,7 @@ public List<HLocale> getInstanceActiveLocales() {
} else {
locales = localeServiceImpl.getSupportedAndEnabledLocales();
}
Collections.sort(locales, new Comparator<HLocale>() {
@Override
public int compare(HLocale hLocale, HLocale hLocale2) {
return hLocale.retrieveDisplayName().compareTo(
hLocale2.retrieveDisplayName());
}
});
Collections.sort(locales, ComparatorUtil.LOCALE_COMPARATOR);
return locales;
}

Expand All @@ -347,13 +339,7 @@ public List<HLocale> getProjectActiveLocales() {
} else {
projectLocales = localeServiceImpl.getSupportedAndEnabledLocales();
}
Collections.sort(projectLocales, new Comparator<HLocale>() {
@Override
public int compare(HLocale hLocale, HLocale hLocale2) {
return hLocale.retrieveDisplayName().compareTo(
hLocale2.retrieveDisplayName());
}
});
Collections.sort(projectLocales, ComparatorUtil.LOCALE_COMPARATOR);
return projectLocales;
}

Expand Down Expand Up @@ -480,7 +466,7 @@ public void updateValidationOption(String name, String state) {
* If this action is enabled(Warning or Error), then it's exclusive
* validation will be turn off
*
* @param selectedValidationAction
* @param seletedValidationAction
*/
private void ensureMutualExclusivity(
ValidationAction selectedValidationAction) {
Expand Down

0 comments on commit c58ecb1

Please sign in to comment.