branch feature/7017 updated (8ef6168 -> 9f63563)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git from 8ef6168 refactor save action for table entities (in ObjectSchoolEstimate) new 9f63563 ajout des binders (longline model) dans le binder service (refs #7017) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 9f63563968c237bd5b58eb5eb0c6a5c893eb7b26 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 29 11:22:11 2015 +0200 ajout des binders (longline model) dans le binder service (refs #7017) Summary of changes: .../main/java/fr/ird/observe/BinderService.java | 543 ++++++++++++++++++++- .../observe/services/AbstractObserveService.java | 20 + .../ird/observe/ui/content/ContentUIHandler.java | 16 + 3 files changed, 575 insertions(+), 4 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git commit 9f63563968c237bd5b58eb5eb0c6a5c893eb7b26 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 29 11:22:11 2015 +0200 ajout des binders (longline model) dans le binder service (refs #7017) --- .../main/java/fr/ird/observe/BinderService.java | 543 ++++++++++++++++++++- .../observe/services/AbstractObserveService.java | 20 + .../ird/observe/ui/content/ContentUIHandler.java | 16 + 3 files changed, 575 insertions(+), 4 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/BinderService.java b/observe-business/src/main/java/fr/ird/observe/BinderService.java index ec23806..30579ea 100644 --- a/observe-business/src/main/java/fr/ird/observe/BinderService.java +++ b/observe-business/src/main/java/fr/ird/observe/BinderService.java @@ -21,9 +21,25 @@ */ package fr.ird.observe; +import fr.ird.observe.entities.longline.ActivityLongline; +import fr.ird.observe.entities.longline.BaitsComposition; +import fr.ird.observe.entities.longline.Branchline; +import fr.ird.observe.entities.longline.BranchlinesComposition; +import fr.ird.observe.entities.longline.CatchLongline; +import fr.ird.observe.entities.longline.Encounter; +import fr.ird.observe.entities.longline.FloatlinesComposition; +import fr.ird.observe.entities.longline.GearUseFeaturesLongline; +import fr.ird.observe.entities.longline.GearUseFeaturesMeasurementLongline; +import fr.ird.observe.entities.longline.HooksComposition; +import fr.ird.observe.entities.longline.SensorUsed; +import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.entities.longline.Tdr; +import fr.ird.observe.entities.longline.TripLongline; +import fr.ird.observe.entities.seine.TripSeine; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.topia.persistence.util.TopiaEntityHelper; +import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderModelBuilder; /** @@ -34,7 +50,526 @@ import org.nuiton.util.beans.BinderModelBuilder; */ public class BinderService { - public <E extends TopiaEntity> BinderModelBuilder<E, E> newBinderBuilder(Class<E> type, String... properties) { + public static final String DISPLAY = "display"; + + public static final String EDIT = "edit"; + + public static final String EDIT_BAITS_COMPOSITION = "editBaitsComposition"; + + public static final String EDIT_CATCH_LONGLINE = "editCatchLongline"; + + public static final String EDIT_BRANCHLINES_COMPOSITION = "editBranchlinesComposition"; + + public static final String EDIT_ENCOUNTER = "editEncounter"; + + public static final String EDIT_FLOATLINES_COMPOSITION = "editFloatlinesComposition"; + + public static final String EDIT_GEAR_USE_FEATURES_LONGLINE = "editGearUseFeaturesLongline"; + + public static final String EDIT_HOOKS_COMPOSITION = "editHooksComposition"; + + public static final String EDIT_SENSOR_USED = "editSensorUsed"; + + public static final String EDIT_TDR = "editTdr"; + + + static { + + registerBinders(); + + } + + private static void registerBinders() { + + { + + BinderModelBuilder<ActivityLongline, ActivityLongline> builder = newBinderBuilder( + ActivityLongline.class, + ActivityLongline.PROPERTY_QUADRANT, + ActivityLongline.PROPERTY_LATITUDE, + ActivityLongline.PROPERTY_LONGITUDE, + ActivityLongline.PROPERTY_TIME_STAMP, + ActivityLongline.PROPERTY_SEA_SURFACE_TEMPERATURE, + ActivityLongline.PROPERTY_COMMENT, + ActivityLongline.PROPERTY_SET_LONGLINE, + ActivityLongline.PROPERTY_VESSEL_ACTIVITY_LONGLINE, + ActivityLongline.PROPERTY_FPA_ZONE, + ActivityLongline.PROPERTY_OPEN, + ActivityLongline.PROPERTY_ENCOUNTER, + ActivityLongline.PROPERTY_SENSOR_USED); + + builder.addCollectionStrategy(Binder.CollectionStrategy.duplicate, ActivityLongline.PROPERTY_ENCOUNTER); + + builder.addCollectionStrategy(Binder.CollectionStrategy.duplicate, ActivityLongline.PROPERTY_SENSOR_USED); + + registerTopiaBinder(ActivityLongline.class, builder, EDIT); + + } + + { + + BinderModelBuilder<SetLongline, SetLongline> builder = newBinderBuilder( + SetLongline.class, + SetLongline.PROPERTY_BAITS_COMPOSITION); + + registerTopiaBinder(SetLongline.class, builder, EDIT_BAITS_COMPOSITION); + + } + + { + + BinderModelBuilder<BaitsComposition, BaitsComposition> builder = newBinderBuilder( + BaitsComposition.class, + BaitsComposition.PROPERTY_BAIT_TYPE, + BaitsComposition.PROPERTY_BAIT_SETTING_STATUS, + BaitsComposition.PROPERTY_INDIVIDUAL_SIZE, + BaitsComposition.PROPERTY_INDIVIDUAL_WEIGHT, + BaitsComposition.PROPERTY_PROPORTION); + + registerTopiaBinder(BaitsComposition.class, builder, EDIT); + + } + + { + + BinderModelBuilder<SetLongline, SetLongline> builder = newBinderBuilder( + SetLongline.class, + SetLongline.PROPERTY_BRANCHLINES_COMPOSITION); + + registerTopiaBinder(SetLongline.class, builder, EDIT_BRANCHLINES_COMPOSITION); + + } + + { + + BinderModelBuilder<BranchlinesComposition, BranchlinesComposition> builder = newBinderBuilder( + BranchlinesComposition.class, + BranchlinesComposition.PROPERTY_TOP_TYPE, + BranchlinesComposition.PROPERTY_TRACELINE_TYPE, + BranchlinesComposition.PROPERTY_LENGTH, + BranchlinesComposition.PROPERTY_PROPORTION); + + registerTopiaBinder(BranchlinesComposition.class, builder, EDIT); + + } + + { + + BinderModelBuilder<SetLongline, SetLongline> builder = newBinderBuilder( + SetLongline.class, + SetLongline.PROPERTY_CATCH_LONGLINE); + + registerTopiaBinder(SetLongline.class, builder, EDIT_CATCH_LONGLINE); + + } + + + { + + BinderModelBuilder<CatchLongline, CatchLongline> builder = newBinderBuilder( + CatchLongline.class, + CatchLongline.PROPERTY_SPECIES_CATCH, + CatchLongline.PROPERTY_ACQUISITION_MODE, + CatchLongline.PROPERTY_COUNT, + CatchLongline.PROPERTY_CATCH_HEALTHNESS, + CatchLongline.PROPERTY_CATCH_FATE_LONGLINE, + CatchLongline.PROPERTY_DISCARD_HEALTHNESS, + CatchLongline.PROPERTY_DEPREDATED, + CatchLongline.PROPERTY_NUMBER, + CatchLongline.PROPERTY_HOME_ID, + CatchLongline.PROPERTY_HOOK_POSITION, + CatchLongline.PROPERTY_HOOK_WHEN_DISCARDED, + CatchLongline.PROPERTY_MATURITY_STATUS, + CatchLongline.PROPERTY_PHOTO_REFERENCES, + CatchLongline.PROPERTY_SEX, + CatchLongline.PROPERTY_PREDATOR, + CatchLongline.PROPERTY_STOMAC_FULLNESS, + CatchLongline.PROPERTY_TOTAL_WEIGHT, + CatchLongline.PROPERTY_BEAT_DIAMETER, + CatchLongline.PROPERTY_GONADE_WEIGHT, + CatchLongline.PROPERTY_SECTION, + CatchLongline.PROPERTY_BASKET, + CatchLongline.PROPERTY_BRANCHLINE, + CatchLongline.PROPERTY_COMMENT); + + builder.addCollectionStrategy(Binder.CollectionStrategy.duplicate, CatchLongline.PROPERTY_PREDATOR); + + registerTopiaBinder(CatchLongline.class, builder, EDIT); + + } + + { + + BinderModelBuilder<Branchline, Branchline> builder = newBinderBuilder(Branchline.class, + Branchline.PROPERTY_DEPTH_RECORDER, + Branchline.PROPERTY_HOOK_LOST, + Branchline.PROPERTY_TRACE_CUT_OFF, + Branchline.PROPERTY_TIMER, + Branchline.PROPERTY_TIME_SINCE_CONTACT, + Branchline.PROPERTY_TIMER_TIME_ON_BOARD, + Branchline.PROPERTY_BAIT_HAULING_STATUS); + + registerTopiaBinder(Branchline.class, builder, EDIT_CATCH_LONGLINE); + + } + + { + + BinderModelBuilder<ActivityLongline, ActivityLongline> builder = newBinderBuilder( + ActivityLongline.class, + ActivityLongline.PROPERTY_COMMENT, + ActivityLongline.PROPERTY_ENCOUNTER); + + registerTopiaBinder(ActivityLongline.class, builder, EDIT_ENCOUNTER); + + } + + { + + BinderModelBuilder<Encounter, Encounter> builder = newBinderBuilder( + Encounter.class, + Encounter.PROPERTY_SPECIES, + Encounter.PROPERTY_DISTANCE, + Encounter.PROPERTY_COUNT, + Encounter.PROPERTY_ENCOUNTER_TYPE); + + registerTopiaBinder(Encounter.class, builder, EDIT); + + } + + { + + BinderModelBuilder<SetLongline, SetLongline> builder = newBinderBuilder( + SetLongline.class, + SetLongline.PROPERTY_FLOATLINES_COMPOSITION); + + registerTopiaBinder(SetLongline.class, builder, EDIT_FLOATLINES_COMPOSITION); + + } + + { + + BinderModelBuilder<FloatlinesComposition, FloatlinesComposition> builder = newBinderBuilder( + FloatlinesComposition.class, + FloatlinesComposition.PROPERTY_LINE_TYPE, + FloatlinesComposition.PROPERTY_LENGTH, + FloatlinesComposition.PROPERTY_PROPORTION); + + + registerTopiaBinder(FloatlinesComposition.class, builder, EDIT); + + } + + { + + BinderModelBuilder<TripLongline, TripLongline> builder = newBinderBuilder( + TripLongline.class, + TripLongline.PROPERTY_GEAR_USE_FEATURES_LONGLINE); + + registerTopiaBinder(TripLongline.class, builder, EDIT_GEAR_USE_FEATURES_LONGLINE); + + } + + { + + BinderModelBuilder<GearUseFeaturesLongline, GearUseFeaturesLongline> builder = newBinderBuilder( + GearUseFeaturesLongline.class, + GearUseFeaturesLongline.PROPERTY_COMMENT, + GearUseFeaturesLongline.PROPERTY_GEAR, + GearUseFeaturesLongline.PROPERTY_NUMBER, + GearUseFeaturesLongline.PROPERTY_USED_IN_TRIP); + + registerTopiaBinder(GearUseFeaturesLongline.class, builder, EDIT); + + } + + { + + BinderModelBuilder<GearUseFeaturesMeasurementLongline, GearUseFeaturesMeasurementLongline> builder = + newBinderBuilder(GearUseFeaturesMeasurementLongline.class, + GearUseFeaturesMeasurementLongline.PROPERTY_GEAR_CARACTERISTIC, + GearUseFeaturesMeasurementLongline.PROPERTY_MEASUREMENT_VALUE); + + registerTopiaBinder(GearUseFeaturesMeasurementLongline.class, builder, EDIT); + + } + + { + + BinderModelBuilder<SetLongline, SetLongline> builder = newBinderBuilder( + SetLongline.class, + SetLongline.PROPERTY_HOOKS_COMPOSITION); + + registerTopiaBinder(SetLongline.class, builder, EDIT_HOOKS_COMPOSITION); + + } + + { + + BinderModelBuilder<HooksComposition, HooksComposition> builder = newBinderBuilder( + HooksComposition.class, + HooksComposition.PROPERTY_HOOK_TYPE, + HooksComposition.PROPERTY_HOOK_SIZE, + HooksComposition.PROPERTY_HOOK_OFFSET, + HooksComposition.PROPERTY_PROPORTION); + + registerTopiaBinder(HooksComposition.class, builder, EDIT); + + } + + { + + BinderModelBuilder<ActivityLongline, ActivityLongline> builder = newBinderBuilder( + ActivityLongline.class, + ActivityLongline.PROPERTY_SENSOR_USED, ActivityLongline.PROPERTY_COMMENT); + + registerTopiaBinder(ActivityLongline.class, builder, EDIT_SENSOR_USED); + + } + + { + + BinderModelBuilder<SensorUsed, SensorUsed> builder = newBinderBuilder( + SensorUsed.class, + SensorUsed.PROPERTY_DATA, + SensorUsed.PROPERTY_DATA_FILENAME, + SensorUsed.PROPERTY_DATA_LOCATION, + SensorUsed.PROPERTY_SENSOR_SERIAL_NO, + SensorUsed.PROPERTY_SENSOR_TYPE, + SensorUsed.PROPERTY_SENSOR_BRAND, + SensorUsed.PROPERTY_SENSOR_DATA_FORMAT); + + registerTopiaBinder(SensorUsed.class, builder, EDIT); + + } + + { + + BinderModelBuilder<SetLongline, SetLongline> builder = newBinderBuilder( + SetLongline.class, + SetLongline.PROPERTY_COMMENT, + + // setting tab + SetLongline.PROPERTY_HOME_ID, + SetLongline.PROPERTY_NUMBER, + + SetLongline.PROPERTY_SETTING_START_TIME_STAMP, + SetLongline.PROPERTY_SETTING_START_QUADRANT, + SetLongline.PROPERTY_SETTING_START_LATITUDE, + SetLongline.PROPERTY_SETTING_START_LONGITUDE, + + SetLongline.PROPERTY_SETTING_END_TIME_STAMP, + SetLongline.PROPERTY_SETTING_END_QUADRANT, + SetLongline.PROPERTY_SETTING_END_LATITUDE, + SetLongline.PROPERTY_SETTING_END_LONGITUDE, + + // setting caracteristics tab + SetLongline.PROPERTY_SETTING_SHAPE, + SetLongline.PROPERTY_LINE_TYPE, + SetLongline.PROPERTY_LIGHTSTICKS_TYPE, + SetLongline.PROPERTY_LIGHTSTICKS_COLOR, + SetLongline.PROPERTY_SETTING_VESSEL_SPEED, + SetLongline.PROPERTY_MAX_DEPTH_TARGETED, + SetLongline.PROPERTY_SHOOTER_USED, + SetLongline.PROPERTY_SHOOTER_SPEED, + SetLongline.PROPERTY_WEIGHTED_SWIVEL, + SetLongline.PROPERTY_SWIVEL_WEIGHT, + SetLongline.PROPERTY_WEIGHTED_SNAP, + SetLongline.PROPERTY_SNAP_WEIGHT, + SetLongline.PROPERTY_MONITORED, + SetLongline.PROPERTY_TIME_BETWEEN_HOOKS, + SetLongline.PROPERTY_BASKETS_PER_SECTION_COUNT, + SetLongline.PROPERTY_BRANCHLINES_PER_BASKET_COUNT, + SetLongline.PROPERTY_LIGHTSTICKS_PER_BASKET_COUNT, + SetLongline.PROPERTY_TOTAL_SECTIONS_COUNT, + SetLongline.PROPERTY_TOTAL_BASKETS_COUNT, + SetLongline.PROPERTY_TOTAL_HOOKS_COUNT, + + // hauling tab + SetLongline.PROPERTY_HAULING_DIRECTION_SAME_AS_SETTING, + + SetLongline.PROPERTY_HAULING_START_QUADRANT, + SetLongline.PROPERTY_HAULING_START_LATITUDE, + SetLongline.PROPERTY_HAULING_START_LONGITUDE, + SetLongline.PROPERTY_HAULING_START_TIME_STAMP, + + SetLongline.PROPERTY_HAULING_END_QUADRANT, + SetLongline.PROPERTY_HAULING_END_LATITUDE, + SetLongline.PROPERTY_HAULING_END_LONGITUDE, + SetLongline.PROPERTY_HAULING_END_TIME_STAMP, + + SetLongline.PROPERTY_HAULING_BREAKS); + + // on ajoute la recopie de l'association route + builder.addCollectionStrategy(Binder.CollectionStrategy.duplicate, TripSeine.PROPERTY_ROUTE); + + registerTopiaBinder(SetLongline.class, builder, EDIT); + + } + + { + + BinderModelBuilder<SetLongline, SetLongline> builder = newBinderBuilder( + SetLongline.class, + SetLongline.PROPERTY_TDR, + SetLongline.PROPERTY_SETTING_START_TIME_STAMP, + SetLongline.PROPERTY_SETTING_END_TIME_STAMP, + SetLongline.PROPERTY_HAULING_START_TIME_STAMP, + SetLongline.PROPERTY_HAULING_END_TIME_STAMP); + + registerTopiaBinder(SetLongline.class, builder, EDIT_TDR); + + } + + { + + BinderModelBuilder<Tdr, Tdr> builder = newBinderBuilder( + Tdr.class, + // caracteristics tab + Tdr.PROPERTY_HOME_ID, + Tdr.PROPERTY_SERIAL_NO, + Tdr.PROPERTY_SENSOR_BRAND, + Tdr.PROPERTY_DATA, + Tdr.PROPERTY_DATA_FILENAME, + Tdr.PROPERTY_DATA_LOCATION, + + // localisation tab + Tdr.PROPERTY_SECTION, + Tdr.PROPERTY_BASKET, + Tdr.PROPERTY_BRANCHLINE, + Tdr.PROPERTY_ITEM_HORIZONTAL_POSITION, + Tdr.PROPERTY_ITEM_VERTICAL_POSITION, + Tdr.PROPERTY_FLOATLINE1_LENGTH, + Tdr.PROPERTY_FLOATLINE2_LENGTH, + + // timestamp tab + Tdr.PROPERTY_DEPLOYEMENT_START, + Tdr.PROPERTY_DEPLOYEMENT_START_DATE, + Tdr.PROPERTY_DEPLOYEMENT_START_TIME, + Tdr.PROPERTY_DEPLOYEMENT_END, + Tdr.PROPERTY_DEPLOYEMENT_END_DATE, + Tdr.PROPERTY_DEPLOYEMENT_END_TIME, + Tdr.PROPERTY_FISHING_START, + Tdr.PROPERTY_FISHING_START_DATE, + Tdr.PROPERTY_FISHING_START_TIME, + Tdr.PROPERTY_FISHING_END, + Tdr.PROPERTY_FISHING_END_DATE, + Tdr.PROPERTY_FISHING_END_TIME, + + // key data tab + Tdr.PROPERTY_FISHING_START_DEPTH, + Tdr.PROPERTY_FISHING_END_DEPTH, + Tdr.PROPERTY_MEAN_DEPLOYEMENT_DEPTH, + Tdr.PROPERTY_MEDIAN_DEPLOYEMENT_DEPTH, + Tdr.PROPERTY_MEAN_FISHING_DEPTH, + Tdr.PROPERTY_MEDIAN_FISHING_DEPTH, + Tdr.PROPERTY_MIN_FISHING_DEPTH, + Tdr.PROPERTY_MAX_FISHING_DEPTH, + + // species tab + Tdr.PROPERTY_SPECIES); + + registerTopiaBinder(Tdr.class, builder, EDIT); + + } + + { + + BinderModelBuilder<TripLongline, TripLongline> builder = newBinderBuilder( + TripLongline.class, + TripLongline.PROPERTY_START_DATE, + TripLongline.PROPERTY_END_DATE, + TripLongline.PROPERTY_TRIP_TYPE, + TripLongline.PROPERTY_HOME_ID, + TripLongline.PROPERTY_COMMENT, + TripLongline.PROPERTY_VESSEL, + TripLongline.PROPERTY_OBSERVER, + TripLongline.PROPERTY_CAPTAIN, + TripLongline.PROPERTY_DATA_ENTRY_OPERATOR, + TripLongline.PROPERTY_TOTAL_FISHING_OPERATIONS_NUMBER, + TripLongline.PROPERTY_OCEAN, + TripLongline.PROPERTY_DEPARTURE_HARBOUR, + TripLongline.PROPERTY_LANDING_HARBOUR, + TripLongline.PROPERTY_PROGRAM, + TripLongline.PROPERTY_ACTIVITY_LONGLINE, + TripLongline.PROPERTY_OPEN); + + // on ajoute la recopie de l'association route + builder.addCollectionStrategy(Binder.CollectionStrategy.duplicate, TripLongline.PROPERTY_ACTIVITY_LONGLINE); + + registerTopiaBinder(TripLongline.class, builder, EDIT); + + } + + { + + BinderModelBuilder<TripLongline, TripLongline> builder = newBinderBuilder( + TripLongline.class, + TripLongline.PROPERTY_START_DATE, + TripLongline.PROPERTY_END_DATE, + TripLongline.PROPERTY_OPEN, + TripLongline.PROPERTY_OBSERVER, + TripLongline.PROPERTY_VESSEL, + TripLongline.PROPERTY_PROGRAM); + + registerTopiaBinder(TripLongline.class, builder, DISPLAY); + + } + + { + + } + + { + + } + + { + + } + + { + + } + + { + + } + + } + + public <E extends TopiaEntity> void copy(Class<E> type, String context, E source, E target) { + + copy(type, context, source, target, true); + + } + + public <E extends TopiaEntity> void copyExcluding(Class<E> type, String context, E source, E target, String... propertyNames) { + + TopiaEntityBinder<E> binder = getBinder(type, context); + + binder.copyExcluding(source, target, propertyNames); + + } + + public <E extends TopiaEntity> void copy(Class<E> type, String context, E source, E target, boolean bindTechnical) { + + TopiaEntityBinder<E> binder = getBinder(type, context); + + binder.load(source, target, bindTechnical); + + } + + public <E extends TopiaEntity> TopiaEntityBinder<E> getBinder(Class<E> type, String context) { + TopiaEntityBinder<E> binder = getTopiaBinder(type, context); + if (binder == null) { + throw new IllegalArgumentException("Could not find binder for " + type.getName() + "::" + context); + } + return binder; + } + + + public static <E extends TopiaEntity> BinderModelBuilder<E, E> newBinderBuilder(Class<E> type, String... properties) { BinderModelBuilder<E, E> builder = BinderModelBuilder.newEmptyBuilder(type); builder.addSimpleProperties(properties); return builder; @@ -50,9 +585,9 @@ public class BinderService { return (TopiaEntityBinder<E>) ObserveBinderHelper.newBinder(entityClass, entityClass, contextName, TopiaEntityBinder.class); } - public <E extends TopiaEntity> TopiaEntityBinder<E> registerTopiaBinder(Class<E> entityClass, - BinderModelBuilder<E, E> builder, - String contextName) { + public static <E extends TopiaEntity> TopiaEntityBinder<E> registerTopiaBinder(Class<E> entityClass, + BinderModelBuilder<E, E> builder, + String contextName) { return ObserveBinderHelper.registerTopiaBinder(entityClass, builder, contextName); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java index c887367..ed7492b 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java @@ -129,6 +129,26 @@ public abstract class AbstractObserveService implements ObserveService { return serviceContext.now(); } + public BinderService getBinderService() { + return serviceContext.getBinderService(); + } + + public <E extends TopiaEntity> void copy(Class<E> type, String context, E source, E target) { + getBinderService().copy(type, context, source, target); + } + + public <E extends TopiaEntity> void copyExcluding(Class<E> type, String context, E source, E target, String... propertyNames) { + getBinderService().copyExcluding(type, context, source, target, propertyNames); + } + + public <E extends TopiaEntity> void copy(Class<E> type, String context, E source, E target, boolean bindTechnical) { + getBinderService().copy(type, context, source, target, bindTechnical); + } + + public <E extends TopiaEntity> TopiaEntityBinder<E> getBinder(Class<E> entityClass, String contextName) { + return getBinderService().getBinder(entityClass, contextName); + } + protected <E extends TopiaEntity> TopiaDAO<E> getDao(Class<E> entityType) { return serviceContext.getDataSource().getDAO(getTransaction(), entityType); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java index 3fcbcca..1354ecd 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ContentUIHandler.java @@ -353,6 +353,22 @@ public abstract class ContentUIHandler<E extends TopiaEntity> { return ObserveContext.get().getBinderService(); } + public <E extends TopiaEntity> void copy(Class<E> type, String context, E source, E target) { + getBinderService().copy(type, context, source, target); + } + + public <E extends TopiaEntity> void copyExcluding(Class<E> type, String context, E source, E target, String... propertyNames) { + getBinderService().copyExcluding(type, context, source, target, propertyNames); + } + + public <E extends TopiaEntity> void copy(Class<E> type, String context, E source, E target, boolean bindTechnical) { + getBinderService().copy(type, context, source, target, bindTechnical); + } + + public <E extends TopiaEntity> TopiaEntityBinder<E> getBinder(Class<E> type, String context) { + return getBinderService().getBinder(type, context); + } + protected DataSource getDataSource() { return ui.getDataSource(); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm