Author: tchemit Date: 2013-03-06 18:10:04 +0100 (Wed, 06 Mar 2013) New Revision: 552 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/552 Log: improve some technical code Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java (rev 0) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java 2013-03-06 17:10:04 UTC (rev 552) @@ -0,0 +1,76 @@ +package fr.ifremer.tutti.persistence.entities.data; + +/* + * #%L + * Tutti :: Persistence + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + + +import com.google.common.base.Preconditions; +import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile; + +public enum SampleCategoryEnum implements TuttiEnumerationFile.TuttiEnumerable<Integer> { + + sortedUnsorted("PMFM_ID_SORTED_UNSORTED"), + size("PMFM_ID_SIZE_CATEGORY"), + sex("PMFM_ID_SEX"), + maturity("PMFM_ID_MATURITY"), + age("PMFM_ID_AGE"); + + private final String fieldName; + + private Integer fieldValue; + + private boolean init; + + SampleCategoryEnum(String fieldName) { + this.fieldName = fieldName; + } + + @Override + public String getFieldName() { + return fieldName; + } + + @Override + public Integer getFieldValue() { + Preconditions.checkState( + isInit(), + "Enumeration " + getClass() + " was not init!"); + return fieldValue; + } + + @Override + public void setFieldValue(Object fieldValue) { + this.fieldValue = (Integer) fieldValue; + } + + @Override + public boolean isInit() { + return init; + } + + @Override + public void setInit(boolean init) { + this.init = init; + } +} //SampleCategoryEnum Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SampleCategoryEnum.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-06 17:10:04 UTC (rev 552) @@ -791,7 +791,7 @@ sm = catchBatchDao.getInheritedSortingMeasurement(source, enumeration.PMFM_ID_SORTED_UNSORTED); } if (sm != null) { - SampleCategoryEnum sampleCategory = referentialService.getSampleCategoryByPmfmId(sm.getPmfm().getId()); + SampleCategoryEnum sampleCategory = enumeration.getSampleCategoryByPmfmId(sm.getPmfm().getId()); if (sampleCategory != null) { setSampleCategoryQualitative(target, sm.getPmfm().getId(), sm.getNumericalValue(), sm.getAlphanumericalValue(), sm.getQualitativeValue().getId()); } @@ -1039,7 +1039,7 @@ return; } - SampleCategoryEnum sampleCategory = referentialService.getSampleCategoryByPmfmId(pmfmId); + SampleCategoryEnum sampleCategory = enumeration.getSampleCategoryByPmfmId(pmfmId); Preconditions.checkNotNull(sampleCategory, "Unable to find corresponding SampleCategoryEnum for PMFM.ID : " + pmfmId); target.setSampleCategoryType(sampleCategory); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-06 16:05:03 UTC (rev 551) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-06 17:10:04 UTC (rev 552) @@ -218,8 +218,6 @@ boolean isSortedQualitativeValue(CaracteristicQualitativeValue value); - List<Integer> getSampleCategoryIds(); - /** * Import given temporary species. * @@ -259,14 +257,4 @@ @Transactional(readOnly = false) @CacheEvict(value = "gears", allEntries = true) List<Gear> importTemporaryGear(List<Gear> gears); - - - /** - * Convert a PMFM ID into a SampleCategoryEnum.<br/> - * This method will typically use enumeration values, to compare with the given pmfmId. - * - * @param pmfmId a Id of a PMFM - * @return a SampleCategoryEnum, or null if the PMFM is not mapped - */ - SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId); } Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-06 16:05:03 UTC (rev 551) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-06 17:10:04 UTC (rev 552) @@ -35,7 +35,6 @@ import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefTaxVO; import fr.ifremer.adagio.core.service.technical.CacheService; import fr.ifremer.tutti.persistence.entities.TuttiEntities; -import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; import fr.ifremer.tutti.persistence.entities.referential.AbstractTuttiReferentialEntity; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; @@ -446,7 +445,7 @@ Integer pmfmId = (Integer) source[0]; Caracteristic target = loadCaracteristic(source); // Skip some protected PSFM - if (!isProtectedCaracteristic(pmfmId)) { + if (!enumeration.isProtectedCaracteristic(pmfmId)) { result.add(target); } pmfmByIdCache.put(pmfmId, target); @@ -843,51 +842,22 @@ entity.setStatus(newStatus); } - /** - * Return list of protected pmfm for sample category - * (i.e. to check the validity of a existing batch tree) - * - * @return - */ - public List<Integer> getSampleCategoryIds() { - return Lists.newArrayList(enumeration.PMFM_ID_SORTED_UNSORTED - , enumeration.PMFM_ID_SIZE_CATEGORY - , enumeration.PMFM_ID_MATURITY - , enumeration.PMFM_ID_SEX - , enumeration.PMFM_ID_AGE); - } - - /** - * Return true if the pmfm should NOT be used for caracteristics lists - * (i.e. because used somewhere when storing some properties into the database) - * - * @param pmfmId - * @return - */ - protected boolean isProtectedCaracteristic(Integer pmfmId) { - return pmfmId.equals(enumeration.PMFM_ID_MULTIRIG_AGGREGATION) - || pmfmId.equals(enumeration.PMFM_ID_MULTIRIG_NUMBER) - || pmfmId.equals(enumeration.PMFM_ID_STATION_NUMBER) - || pmfmId.equals(enumeration.PMFM_ID_RECTILINEAR_OPERATION) - || pmfmId.equals(enumeration.PMFM_ID_HAUL_VALID) - || pmfmId.equals(enumeration.PMFM_ID_TRAWL_DISTANCE); - } - - @Override - public SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId) { - if (pmfmId == null) return null; - SampleCategoryEnum sampleCategory = null; - if (pmfmId.intValue() == enumeration.PMFM_ID_SORTED_UNSORTED.intValue()) { - sampleCategory = SampleCategoryEnum.sortedUnsorted; - } else if (enumeration.PMFM_ID_SIZE_CATEGORY.equals(pmfmId)) { - sampleCategory = SampleCategoryEnum.size; - } else if (enumeration.PMFM_ID_MATURITY.equals(pmfmId)) { - sampleCategory = SampleCategoryEnum.maturity; - } else if (enumeration.PMFM_ID_SEX.equals(pmfmId)) { - sampleCategory = SampleCategoryEnum.sex; - } else if (enumeration.PMFM_ID_AGE.equals(pmfmId)) { - sampleCategory = SampleCategoryEnum.age; - } - return sampleCategory; - } +// @Override +// public SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId) { +// +// if (pmfmId == null) return null; +// SampleCategoryEnum sampleCategory = null; +// if (pmfmId.intValue() == enumeration.PMFM_ID_SORTED_UNSORTED.intValue()) { +// sampleCategory = SampleCategoryEnum.sortedUnsorted; +// } else if (enumeration.PMFM_ID_SIZE_CATEGORY.equals(pmfmId)) { +// sampleCategory = SampleCategoryEnum.size; +// } else if (enumeration.PMFM_ID_MATURITY.equals(pmfmId)) { +// sampleCategory = SampleCategoryEnum.maturity; +// } else if (enumeration.PMFM_ID_SEX.equals(pmfmId)) { +// sampleCategory = SampleCategoryEnum.sex; +// } else if (enumeration.PMFM_ID_AGE.equals(pmfmId)) { +// sampleCategory = SampleCategoryEnum.age; +// } +// return sampleCategory; +// } } Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-03-06 16:05:03 UTC (rev 551) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-03-06 17:10:04 UTC (rev 552) @@ -26,12 +26,15 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.ReflectionUtils; import java.lang.reflect.Field; import java.util.Map; +import java.util.Set; /** * Contains all constants usable via the enumeration file. @@ -241,6 +244,10 @@ void setInit(boolean init); } + protected Set<Integer> propertedPmfmIds; + + protected Map<Integer, SampleCategoryEnum> pmfmIdToSampleCategory; + public void init() { Map<String, Object> annotatedFieldValues = Maps.newTreeMap(); @@ -263,8 +270,53 @@ // init enums initEnum(AttachementObjectTypeEnum.class, annotatedFieldValues); + initEnum(SampleCategoryEnum.class, annotatedFieldValues); + + // init protected pmfm ids + propertedPmfmIds = Sets.newHashSet( + PMFM_ID_MULTIRIG_AGGREGATION, + PMFM_ID_MULTIRIG_NUMBER, + PMFM_ID_STATION_NUMBER, + PMFM_ID_RECTILINEAR_OPERATION, + PMFM_ID_HAUL_VALID, + PMFM_ID_TRAWL_DISTANCE, + PMFM_ID_SURVEY_PART, + PMFM_ID_MEASUREMENT_FILE, + PMFM_ID_SORTED_UNSORTED, + PMFM_ID_SIZE_CATEGORY, + PMFM_ID_MATURITY, + PMFM_ID_SEX, + PMFM_ID_AGE + ); + + pmfmIdToSampleCategory = Maps.newTreeMap(); + for (SampleCategoryEnum type : SampleCategoryEnum.values()) { + pmfmIdToSampleCategory.put(type.getFieldValue(), type); + } } + /** + * @param pmfmId id of pmfm to test + * @return {@code true} if the pmfm should NOT be used for caracteristics lists + * (i.e. because used somewhere when storing some properties into the database) + */ + public boolean isProtectedCaracteristic(Integer pmfmId) { + return propertedPmfmIds.contains(pmfmId); + } + + + /** + * Convert a PMFM ID into a SampleCategoryEnum.<br/> + * This method will typically use enumeration values, to compare with the given pmfmId. + * + * @param pmfmId a Id of a PMFM + * @return a SampleCategoryEnum, or null if the PMFM is not mapped + */ + public SampleCategoryEnum getSampleCategoryByPmfmId(Integer pmfmId) { + SampleCategoryEnum result = pmfmIdToSampleCategory.get(pmfmId); + return result; + } + protected <O, E extends Enum<E> & TuttiEnumerable<O>> void initEnum( Class<E> enumType, Map<String, Object> annotatedFieldValues) {
participants (1)
-
tchemit@users.forge.codelutin.com