This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wao. See http://git.codelutin.com/wao.git commit ffe84f4c096360a214ec54a6f96dccc900b98d5c Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Oct 22 12:12:42 2014 +0200 Dans l'action ContactsFilterValuesJsonAction, on permet de passer filterValuesField pour alléger de beaucoup le JSON qui sera renvoyé à l'utilisateur --- .../wao/services/service/AbstractFilterValues.java | 10 +++- .../wao/services/service/BoatsFilterValues.java | 5 +- .../wao/services/service/ContactsFilterValues.java | 60 ++++++++++++++++++++-- .../services/service/SampleRowsFilterValues.java | 16 +----- .../web/action/ContactsFilterValuesJsonAction.java | 23 +++++++-- 5 files changed, 88 insertions(+), 26 deletions(-) diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/AbstractFilterValues.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/AbstractFilterValues.java index 4c92e3e..1e638d2 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/AbstractFilterValues.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/AbstractFilterValues.java @@ -21,6 +21,8 @@ package fr.ifremer.wao.services.service; * #L% */ +import com.google.common.base.Optional; +import fr.ifremer.wao.entity.ObsProgram; import org.apache.commons.beanutils.BeanUtilsBean; import java.io.Serializable; @@ -31,8 +33,14 @@ public abstract class AbstractFilterValues implements Serializable { protected Locale locale; - public AbstractFilterValues(Locale locale) { + protected ObsProgram obsProgram; + + protected Optional<String> optionalCompanyId; + + public AbstractFilterValues(Locale locale, ObsProgram obsProgram, Optional<String> optionalCompanyId) { this.locale = locale; + this.obsProgram = obsProgram; + this.optionalCompanyId = optionalCompanyId; } public Locale getLocale() { diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/BoatsFilterValues.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/BoatsFilterValues.java index dfd8953..7cda05d 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/BoatsFilterValues.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/BoatsFilterValues.java @@ -60,7 +60,7 @@ public class BoatsFilterValues extends AbstractFilterValues { protected Set<String> boatIds = new HashSet<>(); public BoatsFilterValues(Locale locale, ObsProgram obsProgram, Optional<String> optionalCompanyId) { - super(locale); + super(locale, obsProgram, optionalCompanyId); this.elligibleForSampleRowsFilterValues = new SampleRowsFilterValues(locale, obsProgram, optionalCompanyId); } @@ -150,8 +150,7 @@ public class BoatsFilterValues extends AbstractFilterValues { } public BoatsFilterValues getCopyWithSingleProperty(String propertyName) { - // FIXME brendan 20/05/14 null is a design fail :-( - BoatsFilterValues copy = new BoatsFilterValues(locale, elligibleForSampleRowsFilterValues.getObsProgram(), null); + BoatsFilterValues copy = new BoatsFilterValues(locale, obsProgram, optionalCompanyId); copyProperty(copy, propertyName); return copy; } diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsFilterValues.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsFilterValues.java index 7563e72..3f07c9c 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsFilterValues.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsFilterValues.java @@ -81,7 +81,7 @@ public class ContactsFilterValues extends AbstractFilterValues { protected SortedSet<FilterOption> completeSamplings = new TreeSet<>(); public ContactsFilterValues(Locale locale, ObsProgram obsProgram, Optional<String> optionalCompanyId) { - super(locale); + super(locale, obsProgram, optionalCompanyId); this.boatsFilterValues = new BoatsFilterValues(locale, obsProgram, optionalCompanyId); this.sampleRowsFilterValues = new SampleRowsFilterValues(locale, obsProgram, optionalCompanyId); } @@ -157,54 +157,106 @@ public class ContactsFilterValues extends AbstractFilterValues { return boatsFilterValues; } + public void setBoatsFilterValues(BoatsFilterValues boatsFilterValues) { + this.boatsFilterValues = boatsFilterValues; + } + public SampleRowsFilterValues getSampleRowsFilterValues() { return sampleRowsFilterValues; } + public void setSampleRowsFilterValues(SampleRowsFilterValues sampleRowsFilterValues) { + this.sampleRowsFilterValues = sampleRowsFilterValues; + } + public SortedSet<FilterOption> getBoatRegistrationCodes() { return boatRegistrationCodes; } + public void setBoatRegistrationCodes(SortedSet<FilterOption> boatRegistrationCodes) { + this.boatRegistrationCodes = boatRegistrationCodes; + } + public SortedSet<FilterOption> getContactStates() { return contactStates; } + public void setContactStates(SortedSet<FilterOption> contactStates) { + this.contactStates = contactStates; + } + public SortedSet<FilterOption> getDataReliabilities() { return dataReliabilities; } + public void setDataReliabilities(SortedSet<FilterOption> dataReliabilities) { + this.dataReliabilities = dataReliabilities; + } + public SortedSet<FilterOption> getActualSamplingStrategies() { return actualSamplingStrategies; } + public void setActualSamplingStrategies(SortedSet<FilterOption> actualSamplingStrategies) { + this.actualSamplingStrategies = actualSamplingStrategies; + } + public SortedSet<FilterOption> getObservedDataControls() { return observedDataControls; } + public void setObservedDataControls(SortedSet<FilterOption> observedDataControls) { + this.observedDataControls = observedDataControls; + } + public SortedSet<FilterOption> getObservers() { return observers; } + public void setObservers(SortedSet<FilterOption> observers) { + this.observers = observers; + } + public SortedSet<FilterOption> getTerrestrialLocations() { return terrestrialLocations; } + public void setTerrestrialLocations(SortedSet<FilterOption> terrestrialLocations) { + this.terrestrialLocations = terrestrialLocations; + } + public SortedSet<FilterOption> getContactStateMotives() { return contactStateMotives; } + public void setContactStateMotives(SortedSet<FilterOption> contactStateMotives) { + this.contactStateMotives = contactStateMotives; + } + public SortedSet<FilterOption> getCompanyAcceptations() { return companyAcceptations; } + public void setCompanyAcceptations(SortedSet<FilterOption> companyAcceptations) { + this.companyAcceptations = companyAcceptations; + } + public SortedSet<FilterOption> getProgramAcceptations() { return programAcceptations; } + public void setProgramAcceptations(SortedSet<FilterOption> programAcceptations) { + this.programAcceptations = programAcceptations; + } + public SortedSet<FilterOption> getCompleteSamplings() { return completeSamplings; } + public void setCompleteSamplings(SortedSet<FilterOption> completeSamplings) { + this.completeSamplings = completeSamplings; + } + protected void addBooleanFilterOption(SortedSet<FilterOption> options, Boolean booleanValue, String nullI18nKey, @@ -226,7 +278,9 @@ public class ContactsFilterValues extends AbstractFilterValues { } @Override - public <T extends AbstractFilterValues> T getCopyWithSingleProperty(String propertyName) { - throw new UnsupportedOperationException(); + public ContactsFilterValues getCopyWithSingleProperty(String propertyName) { + ContactsFilterValues copy = new ContactsFilterValues(locale, obsProgram, optionalCompanyId); + copyProperty(copy, propertyName); + return copy; } } \ No newline at end of file diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java index a748b24..56f836c 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java @@ -44,10 +44,6 @@ public class SampleRowsFilterValues extends AbstractFilterValues { private static final long serialVersionUID = 1L; - protected ObsProgram obsProgram; - - protected Optional<String> optionalCompanyId; - protected SortedSet<FilterOption> fishingZoneFacadeNames = new TreeSet<>(); protected SortedSet<FilterOption> fishingZoneSectorNames = new TreeSet<>(); @@ -69,17 +65,7 @@ public class SampleRowsFilterValues extends AbstractFilterValues { protected SortedSet<FilterOption> targetSpeciesDcfs = new TreeSet<>(); public SampleRowsFilterValues(Locale locale, ObsProgram obsProgram, Optional<String> optionalCompanyId) { - super(locale); - this.obsProgram = obsProgram; - this.optionalCompanyId = optionalCompanyId; - } - - public ObsProgram getObsProgram() { - return obsProgram; - } - - public Optional<String> getOptionalCompanyId() { - return optionalCompanyId; + super(locale, obsProgram, optionalCompanyId); } public void addSampleRow(SampleRow sampleRow) { diff --git a/wao-web/src/main/java/fr/ifremer/wao/web/action/ContactsFilterValuesJsonAction.java b/wao-web/src/main/java/fr/ifremer/wao/web/action/ContactsFilterValuesJsonAction.java index 1e52bb7..5b84cb9 100644 --- a/wao-web/src/main/java/fr/ifremer/wao/web/action/ContactsFilterValuesJsonAction.java +++ b/wao-web/src/main/java/fr/ifremer/wao/web/action/ContactsFilterValuesJsonAction.java @@ -26,6 +26,7 @@ import fr.ifremer.wao.ContactsFilter; import fr.ifremer.wao.services.service.ContactsFilterValues; import fr.ifremer.wao.services.service.ContactsService; import fr.ifremer.wao.web.WaoJsonActionSupport; +import org.apache.commons.lang3.StringUtils; /** * Created on 4/3/14. @@ -43,10 +44,16 @@ public class ContactsFilterValuesJsonAction extends WaoJsonActionSupport impleme protected ContactsFilterValues filterValues; + protected String filterValuesField; + public void setService(ContactsService service) { this.service = service; } + public void setFilterValuesField(String filterValuesField) { + this.filterValuesField = filterValuesField; + } + public ContactsFilter getFilter() { if (filter == null) { prepare(); @@ -54,10 +61,6 @@ public class ContactsFilterValuesJsonAction extends WaoJsonActionSupport impleme return filter; } - public ContactsFilterValues getFilterValues() { - return filterValues; - } - @Override public void prepare() { @@ -69,8 +72,20 @@ public class ContactsFilterValuesJsonAction extends WaoJsonActionSupport impleme filterValues = service.getContactsFilterValues(session.getAuthenticatedWaoUser(), filter); + if (StringUtils.isNotBlank(filterValuesField)) { + + // le client ne demande qu'un seul champ, on peut éviter de retourner l'objet complet + + filterValues = filterValues.getCopyWithSingleProperty(filterValuesField); + + } + return SUCCESS; } + public ContactsFilterValues getFilterValues() { + return filterValues; + } + } \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.