You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2016/10/23 14:23:49 UTC
[08/28] zest-java git commit: ZEST-180, ZEST-186, ZEST-187,
ZEST-188 Big Identity refactoring UnitOfWorkFactory is auto added to
all modules that doesn't declare one IdentityGenerator is auto-added to all
modules that deosn't declare one. Removed DCI/DDD
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectReceivedCargo.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectReceivedCargo.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectReceivedCargo.java
deleted file mode 100644
index ad18b66..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectReceivedCargo.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.event;
-
-import java.time.Instant;
-import org.apache.zest.api.injection.scope.This;
-import org.apache.zest.api.mixin.Mixins;
-import org.apache.zest.api.value.ValueBuilder;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.CargoMisdirectedException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.InspectionException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.InspectionFailedException;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.Cargo;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.RouteSpecification;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.Delivery;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.NextHandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Itinerary;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Leg;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.location.Location;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.Voyage;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.Context;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.RoleMixin;
-
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.MISROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.NOT_ROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.ROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.TransportStatus.IN_PORT;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType.LOAD;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType.RECEIVE;
-
-/**
- * Inspect Received Cargo (subfunction use case)
- *
- * This is one the variations of the {@link org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.InspectCargoDeliveryStatus} use case.
- *
- * Note that we consider the cargo still on track if it's received in cargo origin regardless of routing status!
- */
-public class InspectReceivedCargo extends Context
-{
- private DeliveryInspectorRole deliveryInspector;
-
- private HandlingEvent previousEvent;
-
- private HandlingEvent receiveEvent;
- private Location receiveLocation;
- private Voyage voyage;
-
- private RouteSpecification routeSpecification;
- private Itinerary itinerary;
- private Integer itineraryProgressIndex;
-
- public InspectReceivedCargo( Cargo cargo, HandlingEvent handlingEvent )
- {
- deliveryInspector = rolePlayer( DeliveryInspectorRole.class, cargo );
- previousEvent = cargo.delivery().get().lastHandlingEvent().get();
-
- receiveEvent = handlingEvent;
- receiveLocation = receiveEvent.location().get();
- voyage = receiveEvent.voyage().get();
-
- routeSpecification = cargo.routeSpecification().get();
- itinerary = cargo.itinerary().get();
-
- // Before handling
- itineraryProgressIndex = cargo.delivery().get().itineraryProgressIndex().get();
- }
-
- public void inspect()
- throws InspectionException
- {
- // Pre-conditions
-
- // Cargo has already been received before
- if( previousEvent != null && !previousEvent.equals( receiveEvent ) )
- {
- throw new InspectionFailedException( "Can't receive cargo again." );
- }
-
- if( receiveEvent == null || !receiveEvent.handlingEventType().get().equals( RECEIVE ) )
- {
- throw new InspectionFailedException( "Can only inspect received cargo." );
- }
-
- deliveryInspector.inspectReceivedCargo();
- }
-
- @Mixins( DeliveryInspectorRole.Mixin.class )
- public interface DeliveryInspectorRole
- {
- void setContext( InspectReceivedCargo context );
-
- void inspectReceivedCargo()
- throws InspectionException;
-
- class Mixin
- extends RoleMixin<InspectReceivedCargo>
- implements DeliveryInspectorRole
- {
- @This
- Cargo cargo;
-
- Delivery newDelivery;
-
- public void inspectReceivedCargo()
- throws InspectionException
- {
- // Step 1 - Collect known delivery data
-
- ValueBuilder<Delivery> newDeliveryBuilder = vbf.newValueBuilder( Delivery.class );
- newDelivery = newDeliveryBuilder.prototype();
- newDelivery.timestamp().set( Instant.now() );
- newDelivery.lastHandlingEvent().set( c.receiveEvent );
- newDelivery.transportStatus().set( IN_PORT );
- newDelivery.isUnloadedAtDestination().set( false );
- newDelivery.itineraryProgressIndex().set( 0 );
-
- // Step 2 - Verify cargo is routed
-
- if( c.itinerary == null )
- {
- newDelivery.routingStatus().set( NOT_ROUTED );
- }
- else if( !c.routeSpecification.isSatisfiedBy( c.itinerary ) )
- {
- newDelivery.routingStatus().set( MISROUTED );
- }
- else
- {
- newDelivery.routingStatus().set( ROUTED );
- }
-
- if( newDelivery.routingStatus().get().equals( ROUTED ) )
- {
- // Step 3 - Verify cargo is received in origin
-
- Leg firstLeg = c.itinerary.firstLeg();
- if( !firstLeg.loadLocation().get().equals( c.receiveEvent.location().get() ) )
- {
- newDelivery.isMisdirected().set( true );
- cargo.delivery().set( newDeliveryBuilder.newInstance() );
- throw new CargoMisdirectedException( c.receiveEvent, "Itinerary expected receipt in "
- + firstLeg.loadLocation()
- .get()
- .getString() );
- }
-
- newDelivery.isMisdirected().set( false );
- newDelivery.eta().set( c.itinerary.eta() );
-
- // Step 4 - Determine next expected handling event
-
- ValueBuilder<NextHandlingEvent> nextHandlingEvent = vbf.newValueBuilder( NextHandlingEvent.class );
- nextHandlingEvent.prototype().handlingEventType().set( LOAD );
- nextHandlingEvent.prototype().location().set( firstLeg.loadLocation().get() );
- nextHandlingEvent.prototype().date().set( firstLeg.loadDate().get() );
- nextHandlingEvent.prototype().voyage().set( firstLeg.voyage().get() );
- newDelivery.nextHandlingEvent().set( nextHandlingEvent.newInstance() );
- }
-
- // Step 5 - Save cargo delivery snapshot
-
- cargo.delivery().set( newDeliveryBuilder.newInstance() );
- }
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectUnhandledCargo.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectUnhandledCargo.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectUnhandledCargo.java
deleted file mode 100644
index 2694e55..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectUnhandledCargo.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.event;
-
-import java.time.Instant;
-import org.apache.zest.api.injection.scope.This;
-import org.apache.zest.api.mixin.Mixins;
-import org.apache.zest.api.value.ValueBuilder;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.InspectionException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.InspectionFailedException;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.Cargo;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.RouteSpecification;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.Delivery;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.NextHandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Itinerary;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.Context;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.RoleMixin;
-
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.MISROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.NOT_ROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.ROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.TransportStatus.NOT_RECEIVED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType.RECEIVE;
-
-/**
- * Inspect Unhandled Cargo (subfunction use case)
- *
- * This is one the variations of the {@link org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.InspectCargoDeliveryStatus} use case.
- *
- * Here we can check a cargo that hasn't been received in origin yet.
- */
-public class InspectUnhandledCargo extends Context
-{
- private DeliveryInspectorRole deliveryInspector;
-
- private HandlingEvent noEvent;
-
- private RouteSpecification routeSpecification;
-
- private Itinerary itinerary;
-
- public InspectUnhandledCargo( Cargo cargo )
- {
- deliveryInspector = rolePlayer( DeliveryInspectorRole.class, cargo );
-
- noEvent = cargo.delivery().get().lastHandlingEvent().get();
-
- routeSpecification = cargo.routeSpecification().get();
- itinerary = cargo.itinerary().get();
- }
-
- public void inspect()
- throws InspectionException
- {
- // Pre-conditions
- if( noEvent != null )
- {
- throw new InspectionFailedException( "Can only inspect unhandled cargo." );
- }
-
- deliveryInspector.inspectUnhandledCargo();
- }
-
- @Mixins( DeliveryInspectorRole.Mixin.class )
- public interface DeliveryInspectorRole
- {
- void setContext( InspectUnhandledCargo context );
-
- void inspectUnhandledCargo()
- throws InspectionException;
-
- class Mixin
- extends RoleMixin<InspectUnhandledCargo>
- implements DeliveryInspectorRole
- {
- @This
- Cargo cargo;
-
- Delivery newDelivery;
-
- public void inspectUnhandledCargo()
- throws InspectionException
- {
- // Step 1 - Collect known delivery data
-
- ValueBuilder<Delivery> newDeliveryBuilder = vbf.newValueBuilder( Delivery.class );
- newDelivery = newDeliveryBuilder.prototype();
- newDelivery.timestamp().set( Instant.now() );
- newDelivery.lastHandlingEvent().set( null );
- newDelivery.transportStatus().set( NOT_RECEIVED );
- newDelivery.isUnloadedAtDestination().set( false );
- newDelivery.itineraryProgressIndex().set( 0 );
-
- // Can't be misdirected before being handled
- newDelivery.isMisdirected().set( false );
-
- // Step 2 - Determine if cargo is routed
-
- if( c.itinerary == null )
- {
- newDelivery.routingStatus().set( NOT_ROUTED );
- newDelivery.eta().set( null );
- }
- else if( !c.routeSpecification.isSatisfiedBy( c.itinerary ) )
- {
- newDelivery.routingStatus().set( MISROUTED );
- newDelivery.eta().set( null );
- }
- else
- {
- newDelivery.routingStatus().set( ROUTED );
- newDelivery.eta().set( c.itinerary.eta() );
- }
-
- // Step 3 - Expect receipt in origin location
-
- ValueBuilder<NextHandlingEvent> nextHandlingEvent = vbf.newValueBuilder( NextHandlingEvent.class );
- nextHandlingEvent.prototype().handlingEventType().set( RECEIVE );
- nextHandlingEvent.prototype().location().set( cargo.origin().get() );
- nextHandlingEvent.prototype().date().set( null );
- nextHandlingEvent.prototype().voyage().set( null );
- newDelivery.nextHandlingEvent().set( nextHandlingEvent.newInstance() );
-
- // Step 4 - Save cargo delivery snapshot
-
- cargo.delivery().set( newDeliveryBuilder.newInstance() );
- }
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectUnloadedCargo.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectUnloadedCargo.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectUnloadedCargo.java
deleted file mode 100644
index 22f9311..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/event/InspectUnloadedCargo.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.event;
-
-import java.time.Instant;
-import org.apache.zest.api.injection.scope.This;
-import org.apache.zest.api.mixin.Mixins;
-import org.apache.zest.api.value.ValueBuilder;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.CargoMisdirectedException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.CargoMisroutedException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.CargoNotRoutedException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.InspectionException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception.InspectionFailedException;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.Cargo;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.RouteSpecification;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.Delivery;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.NextHandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Itinerary;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Leg;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.location.Location;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.Voyage;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.Context;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.RoleMixin;
-
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.MISROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.NOT_ROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.RoutingStatus.ROUTED;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.delivery.TransportStatus.IN_PORT;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType.LOAD;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType.UNLOAD;
-
-/**
- * Inspect Unloaded Cargo (subfunction use case)
- *
- * This is one the variations of the {@link org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.InspectCargoDeliveryStatus} use case.
- */
-public class InspectUnloadedCargo extends Context
-{
- private DeliveryInspectorRole deliveryInspector;
-
- private HandlingEvent unloadEvent;
- private Location unloadLocation;
- private Voyage voyage;
-
- private RouteSpecification routeSpecification;
- private Location destination;
- private Itinerary itinerary;
- private Integer itineraryProgressIndex;
- private boolean wasMisdirected;
-
- public InspectUnloadedCargo( Cargo cargo, HandlingEvent handlingEvent )
- {
- deliveryInspector = rolePlayer( DeliveryInspectorRole.class, cargo );
-
- unloadEvent = handlingEvent;
- unloadLocation = unloadEvent.location().get();
- voyage = unloadEvent.voyage().get();
-
- routeSpecification = cargo.routeSpecification().get();
- destination = routeSpecification.destination().get();
- itinerary = cargo.itinerary().get();
- wasMisdirected = cargo.delivery().get().isMisdirected().get();
-
- // Before inspection
- itineraryProgressIndex = cargo.delivery().get().itineraryProgressIndex().get();
- }
-
- public void inspect()
- throws InspectionException
- {
- // Pre-conditions
- if( unloadEvent == null || !unloadEvent.handlingEventType()
- .get()
- .equals( UNLOAD ) || unloadLocation.equals( destination ) )
- {
- throw new InspectionFailedException( "Can only inspect unloaded cargo that hasn't arrived at destination." );
- }
-
- deliveryInspector.inspectUnloadedCargo();
- }
-
- @Mixins( DeliveryInspectorRole.Mixin.class )
- public interface DeliveryInspectorRole
- {
- void setContext( InspectUnloadedCargo context );
-
- void inspectUnloadedCargo()
- throws InspectionException;
-
- class Mixin
- extends RoleMixin<InspectUnloadedCargo>
- implements DeliveryInspectorRole
- {
- @This
- Cargo cargo;
-
- Delivery newDelivery;
-
- public void inspectUnloadedCargo()
- throws InspectionException
- {
- // Step 1 - Collect known delivery data
-
- ValueBuilder<Delivery> newDeliveryBuilder = vbf.newValueBuilder( Delivery.class );
- newDelivery = newDeliveryBuilder.prototype();
- newDelivery.timestamp().set( Instant.now() );
- newDelivery.lastHandlingEvent().set( c.unloadEvent );
- newDelivery.transportStatus().set( IN_PORT );
- newDelivery.isUnloadedAtDestination().set( false );
-
- // Step 2 - Verify cargo is routed
-
- if( c.itinerary == null )
- {
- newDelivery.routingStatus().set( NOT_ROUTED );
- newDelivery.itineraryProgressIndex().set( 0 );
- cargo.delivery().set( newDeliveryBuilder.newInstance() );
- throw new CargoNotRoutedException( c.unloadEvent );
- }
- if( !c.routeSpecification.isSatisfiedBy( c.itinerary ) )
- {
- newDelivery.routingStatus().set( MISROUTED );
- newDelivery.itineraryProgressIndex().set( 0 );
- cargo.delivery().set( newDeliveryBuilder.newInstance() );
- throw new CargoMisroutedException( c.unloadEvent, c.routeSpecification, c.itinerary );
- }
- newDelivery.routingStatus().set( ROUTED );
- newDelivery.eta().set( c.itinerary.eta() );
-
- // Current itinerary progress
- newDelivery.itineraryProgressIndex().set( c.itineraryProgressIndex );
-
- // Step 3 - Verify cargo is on track
-
- Leg plannedCarrierMovement = c.itinerary.leg( c.itineraryProgressIndex );
- if( plannedCarrierMovement == null )
- {
- throw new InspectionFailedException( "Itinerary progress index '" + c.itineraryProgressIndex + "' is invalid!" );
- }
-
- Integer itineraryProgressIndex;
-// if (c.wasMisdirected && c.unloadLocation.equals( c.routeSpecification.origin().get() ))
- if( c.unloadLocation.equals( c.routeSpecification.origin().get() ) )
-// if (c.itineraryProgressIndex == -1)
- {
- /**
- * Unloading in the origin of a route specification of a misdirected cargo
- * tells us that the cargo has been re-routed (re-routing while on board a
- * carrier sets new origin of route specification to arrival location of
- * current carrier movement).
- *
- * Since the current unload was related to the old itinerary, we don't verify
- * the misdirection status against the new itinerary.
- *
- * The itinerary index starts over from the first leg of the new itinerary
- * */
- itineraryProgressIndex = 0;
- }
- else if( !plannedCarrierMovement.unloadLocation().get().equals( c.unloadLocation ) )
- {
- newDelivery.isMisdirected().set( true );
- cargo.delivery().set( newDeliveryBuilder.newInstance() );
- throw new CargoMisdirectedException( c.unloadEvent, "Itinerary expected unload in "
- + plannedCarrierMovement.unloadLocation()
- .get() );
- }
- else if( !plannedCarrierMovement.voyage().get().equals( c.voyage ) )
- {
- // Do we care if cargo unloads from an unexpected carrier?
- itineraryProgressIndex = c.itineraryProgressIndex + 1;
- }
- else
- {
- // Cargo delivery has progressed and we expect a load in next itinerary leg load location
- itineraryProgressIndex = c.itineraryProgressIndex + 1;
- }
-
- newDelivery.isMisdirected().set( false );
-
- // Modify itinerary progress index according to misdirection status
- newDelivery.itineraryProgressIndex().set( itineraryProgressIndex );
-
- // Step 4 - Determine next expected handling event
-
- Leg nextCarrierMovement = c.itinerary.leg( itineraryProgressIndex );
-
- ValueBuilder<NextHandlingEvent> nextHandlingEvent = vbf.newValueBuilder( NextHandlingEvent.class );
- nextHandlingEvent.prototype().handlingEventType().set( LOAD );
- nextHandlingEvent.prototype().location().set( nextCarrierMovement.loadLocation().get() );
- nextHandlingEvent.prototype().date().set( nextCarrierMovement.loadDate().get() );
- nextHandlingEvent.prototype().voyage().set( nextCarrierMovement.voyage().get() );
- newDelivery.nextHandlingEvent().set( nextHandlingEvent.newInstance() );
-
- // Step 5 - Save cargo delivery snapshot
-
- cargo.delivery().set( newDeliveryBuilder.newInstance() );
- }
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoArrivedException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoArrivedException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoArrivedException.java
deleted file mode 100644
index 6af1e96..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoArrivedException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-
-public class CargoArrivedException extends InspectionException
-{
- public CargoArrivedException( HandlingEvent handlingEvent )
- {
- super( createMessage( handlingEvent) );
- }
-
- public static String createMessage(HandlingEvent handlingEvent )
- {
- String id = handlingEvent.trackingId().get().id().get();
- String city = handlingEvent.location().get().name().get();
- String location = handlingEvent.location().get().getString();
- String msg = "Cargo '" + id + "' has arrived in destination " + location + ".";
- msg += "\nMOCKUP REQUEST TO CARGO OWNER: Please claim cargo '" + id + "' in " + city + ".";
- return msg;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoHijackedException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoHijackedException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoHijackedException.java
deleted file mode 100644
index 53fe4ec..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoHijackedException.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-
-/**
- * The easter egg.
- */
-public class CargoHijackedException extends InspectionException
-{
- public CargoHijackedException( HandlingEvent handlingEvent )
- {
- super( createMessage( handlingEvent ) );
- }
-
- public static String createMessage( HandlingEvent handlingEvent )
- {
- String id = handlingEvent.trackingId().get().id().get();
- StringBuilder msg = new StringBuilder().append( "Cargo '" ).append( id ).append( "' was hijacked." );
- msg.append( msg );
- msg.append( "\nMOCKUP MESSAGE TO CARGO OWNER: We're sorry to inform you that your cargo '" );
- msg.append( id );
- msg.append( "' was hijacked. Please contact your insurance company." );
- return msg.toString();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoMisdirectedException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoMisdirectedException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoMisdirectedException.java
deleted file mode 100644
index 53702d5..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoMisdirectedException.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Itinerary;
-
-/**
- * CargoMisdirectedException
- *
- * This would have to set off notifying the cargo owner and request a re-route.
- */
-public class CargoMisdirectedException extends InspectionException
-{
- private Itinerary itinerary;
-
- public CargoMisdirectedException( HandlingEvent handlingEvent, String msg )
- {
- super( createMessage(msg, handlingEvent, null) );
- }
-
- public CargoMisdirectedException( HandlingEvent handlingEvent, Itinerary itinerary, String msg )
- {
- super( msg );
- this.itinerary = itinerary;
- }
-
- private static String createMessage( String msg, HandlingEvent handlingEvent, Itinerary itinerary )
- {
- String id = handlingEvent.trackingId().get().id().get();
- String city = handlingEvent.location().get().name().get();
-
- String itineraryString = "";
- if( itinerary != null )
- {
- itineraryString = itinerary.print();
- }
-
- return "\nCargo is MISDIRECTED! " + msg + "\n" + handlingEvent.print() + itineraryString
- + "MOCKUP REQUEST TO CARGO OWNER: Please re-route misdirected cargo '" + id + "' (now in " + city + ").";
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoMisroutedException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoMisroutedException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoMisroutedException.java
deleted file mode 100644
index 1fc70ab..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoMisroutedException.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.RouteSpecification;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.itinerary.Itinerary;
-
-/**
- * CargoMisroutedException
- *
- * This would have to set off notifying the cargo owner and request a re-route.
- */
-public class CargoMisroutedException extends InspectionException
-{
- public CargoMisroutedException( HandlingEvent handlingEvent,
- RouteSpecification routeSpecification,
- Itinerary itinerary
- )
- {
- super( createMessage( handlingEvent, routeSpecification, itinerary ) );
- }
-
- private static String createMessage( HandlingEvent handlingEvent,
- RouteSpecification routeSpecification,
- Itinerary itinerary )
- {
- String id = handlingEvent.trackingId().get().id().get();
- String city = handlingEvent.location().get().name().get();
- return "\nCargo is MISROUTED! Route specification is not satisfied with itinerary:\n"
- + routeSpecification.print() + itinerary.print()
- + "MOCKUP REQUEST TO CARGO OWNER: Please re-route misrouted cargo '" + id + "' (now in " + city + ")."
- ;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoNotRoutedException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoNotRoutedException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoNotRoutedException.java
deleted file mode 100644
index 2d5bcbc..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/CargoNotRoutedException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-
-public class CargoNotRoutedException extends InspectionException
-{
- public CargoNotRoutedException( HandlingEvent handlingEvent )
- {
- super( createMessage(handlingEvent) );
- }
-
- private static String createMessage( HandlingEvent handlingEvent )
- {
- String id = handlingEvent.trackingId().get().id().get();
- String city = handlingEvent.location().get().name().get();
- return "\nCargo is NOT ROUTED while being handled!" + handlingEvent.print()
- + "MOCKUP REQUEST TO CARGO OWNER: Please re-route cargo '" + id + "' (now in " + city + ").";
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/InspectionException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/InspectionException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/InspectionException.java
deleted file mode 100644
index 3e0a99b..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/InspectionException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception;
-
-/**
- * Base exception for all variations of inspection.
- */
-public class InspectionException extends Exception
-{
- public InspectionException( String message )
- {
- super( message );
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/InspectionFailedException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/InspectionFailedException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/InspectionFailedException.java
deleted file mode 100644
index 0b2ef76..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/InspectionFailedException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception;
-
-/**
- * Truly unexpected errors.
- */
-public class InspectionFailedException extends InspectionException
-{
- public InspectionFailedException( String s )
- {
- super( s );
- }
-
- @Override
- public String getMessage()
- {
- return "INTERNAL ERROR: " + super.getMessage();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/UnexpectedCarrierException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/UnexpectedCarrierException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/UnexpectedCarrierException.java
deleted file mode 100644
index 277e5c5..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/inspection/exception/UnexpectedCarrierException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.inspection.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-
-public class UnexpectedCarrierException extends InspectionException
-{
- public UnexpectedCarrierException( HandlingEvent handlingEvent )
- {
- super( createMessage(handlingEvent) );
- }
-
- private static String createMessage( HandlingEvent handlingEvent )
- {
- String voyage = handlingEvent.voyage().get().voyageNumber().get().number().get();
- String city = handlingEvent.location().get().name().get();
- String location = handlingEvent.location().get().getString();
- return "\nCarrier of voyage " + voyage + " didn't expect a load in " + location;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/ParseHandlingEventData.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/ParseHandlingEventData.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/ParseHandlingEventData.java
deleted file mode 100644
index 5274dfd..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/ParseHandlingEventData.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.time.format.DateTimeParseException;
-import org.apache.zest.api.common.Optional;
-import org.apache.zest.api.injection.scope.Structure;
-import org.apache.zest.api.mixin.Mixins;
-import org.apache.zest.api.service.ServiceComposite;
-import org.apache.zest.api.value.ValueBuilder;
-import org.apache.zest.api.value.ValueBuilderFactory;
-import org.apache.zest.library.constraints.annotation.NotEmpty;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto.ParsedHandlingEventData;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.exception.InvalidHandlingEventDataException;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType;
-
-/**
- * Parse Handling Event Data (subfunction use case)
- *
- * First step in the ProcessHandlingEvent use case.
- *
- * Since no Data objects are playing a Role in a Context, it's implemented as a Service
- * instead of a Context. In that respect it doesn't have much to do with DCI, but it shares
- * the intend to implement a use case and we therefore have it in the context package that
- * is then given the broader semantics of the English word "context".
- *
- * Could be implemented as a web service endpoint like HandlingReportServiceImpl,
- * a file upload solution like UploadDirectoryScanner in the DDD sample - or some other
- * technical solution.
- */
-@Mixins( ParseHandlingEventData.Mixin.class )
-public interface ParseHandlingEventData
- extends ServiceComposite
-{
- // Step 1 - Receive handling event data for a handled cargo
- // Step 2 - Verify that data is complete (with annotated constraints)
-
- public ParsedHandlingEventData parse( @NotEmpty String completionStr,
- @NotEmpty String trackingIdStr,
- @NotEmpty String handlingEventTypeStr,
- @NotEmpty String unLocodeStr,
- @Optional String voyageNumberStr
- )
- throws InvalidHandlingEventDataException;
-
- abstract class Mixin
- implements ParseHandlingEventData
- {
- @Structure
- ValueBuilderFactory vbf;
-
- static final String ISO_8601_FORMAT = "yyyy-MM-dd HH:mm";
-
- LocalDate completionDate;
- HandlingEventType handlingEventType;
-
- public ParsedHandlingEventData parse( String completionStr,
- String trackingIdStr,
- String handlingEventTypeStr,
- String unLocodeStr,
- String voyageNumberStr
- )
- throws InvalidHandlingEventDataException
- {
- // Step 3 - Perform basic type conversion
-
- try
- {
- completionDate = LocalDate.parse( completionStr.trim(), DateTimeFormatter.ISO_LOCAL_DATE );
- }
- catch( DateTimeParseException e )
- {
- throw new InvalidHandlingEventDataException(
- "Invalid date format: '" + completionStr + "' must be on ISO 8601 format " + ISO_8601_FORMAT );
- }
-
- try
- {
- handlingEventType = HandlingEventType.valueOf( handlingEventTypeStr.trim() );
- }
- catch( Exception e )
- {
- throw new InvalidHandlingEventDataException( e.getMessage() );
- }
-
- // Step 4 - Collect parsed handling event data
-
- ValueBuilder<ParsedHandlingEventData> parsedData = vbf.newValueBuilder( ParsedHandlingEventData.class );
- parsedData.prototype().registrationDate().set( LocalDate.now() );
- parsedData.prototype().completionDate().set( completionDate );
- parsedData.prototype().trackingIdString().set( trackingIdStr );
- parsedData.prototype().handlingEventType().set( handlingEventType );
- parsedData.prototype().unLocodeString().set( unLocodeStr );
- parsedData.prototype().voyageNumberString().set( voyageNumberStr );
-
- // Step 5 - Return parsed handling event data
-
- return parsedData.newInstance();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/dto/ParsedHandlingEventData.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/dto/ParsedHandlingEventData.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/dto/ParsedHandlingEventData.java
deleted file mode 100644
index d1909d9..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/dto/ParsedHandlingEventData.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto;
-
-import java.time.LocalDate;
-import org.apache.zest.api.common.Optional;
-import org.apache.zest.api.mixin.Mixins;
-import org.apache.zest.api.property.Immutable;
-import org.apache.zest.api.property.Property;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.conversion.DTO;
-
-/**
- * The ParsedHandlingEventData simply helps move submitted event registration data around.
- */
-@Immutable
-@Mixins( ParsedHandlingEventData.Mixin.class )
-public interface ParsedHandlingEventData
-{
- Property<LocalDate> registrationDate();
-
- Property<LocalDate> completionDate();
-
- Property<String> trackingIdString();
-
- Property<HandlingEventType> handlingEventType();
-
- Property<String> unLocodeString();
-
- @Optional
- Property<String> voyageNumberString();
-
- public String print();
-
- abstract class Mixin
- implements ParsedHandlingEventData
- {
- public String print()
- {
- String voyage = "";
- if( voyageNumberString().get() != null )
- {
- voyage = voyageNumberString().get();
- }
-
- return "\nPARSED HANDLING EVENT DATA -----------------" +
- "\n Tracking id string " + trackingIdString().get() +
- "\n Handling Event Type string " + handlingEventType().get().name() +
- "\n UnLocode string " + unLocodeString().get() +
- "\n Completed string " + completionDate().get() +
- "\n Registered string " + registrationDate().get() +
- "\n Voyage string " + voyage +
- "\n--------------------------------------------\n";
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/exception/InvalidHandlingEventDataException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/exception/InvalidHandlingEventDataException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/exception/InvalidHandlingEventDataException.java
deleted file mode 100644
index 8236457..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/parsing/exception/InvalidHandlingEventDataException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.exception;
-
-public class InvalidHandlingEventDataException extends Exception
-{
- public InvalidHandlingEventDataException( String msg )
- {
- super( msg );
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/RegisterHandlingEvent.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/RegisterHandlingEvent.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/RegisterHandlingEvent.java
deleted file mode 100644
index 17e159b..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/RegisterHandlingEvent.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration;
-
-import org.apache.zest.api.injection.scope.This;
-import org.apache.zest.api.mixin.Mixins;
-import org.apache.zest.api.query.Query;
-import org.apache.zest.api.query.QueryBuilder;
-import org.apache.zest.api.unitofwork.NoSuchEntityException;
-import org.apache.zest.api.unitofwork.UnitOfWork;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.ProcessHandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto.ParsedHandlingEventData;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception.AlreadyClaimedException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception.CannotRegisterHandlingEventException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception.DuplicateEventException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception.MissingVoyageNumberException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception.UnknownCargoException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception.UnknownLocationException;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception.UnknownVoyageException;
-import org.apache.zest.sample.dcicargo.sample_b.data.aggregateroot.HandlingEventAggregateRoot;
-import org.apache.zest.sample.dcicargo.sample_b.data.factory.HandlingEventFactory;
-import org.apache.zest.sample.dcicargo.sample_b.data.factory.exception.CannotCreateHandlingEventException;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.cargo.Cargo;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.location.Location;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.tracking.TrackingId;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.voyage.Voyage;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.Context;
-import org.apache.zest.sample.dcicargo.sample_b.infrastructure.dci.RoleMixin;
-
-import static org.apache.zest.api.query.QueryExpressions.*;
-import static org.apache.zest.sample.dcicargo.sample_b.data.aggregateroot.HandlingEventAggregateRoot.HANDLING_EVENTS_ID;
-import static org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEventType.*;
-
-/**
- * Register Handling Event (subfunction use case)
- *
- * Second step in the ProcessHandlingEvent use case.
- *
- * Verifies handling event data received from ParseHandlingEventData against the database in
- * order to create a valid HandlingEvent.
- *
- * If only the enclosing {@link ProcessHandlingEvent} summary use case is allowed to call this
- * subfunction use case, we could draw an interesting parallel to the responsibilities of the
- * DDD aggregate of enforcing invariants between its member objects. Whereas here it would be
- * {@link ProcessHandlingEvent} enforcing its subfunction use cases to process correctly and
- * ultimately abort the interactions chain when any of the subfunction interactions fail...
- *
- * As an example of "process integrity enforcement" we here validate that a cargo with the
- * given TrackingId exists in our system. When we then inspect the cargo in the third and last
- * step of the ProcessHandlingEvent summary use case, we presume having a valid cargo.
- *
- * How can we ensure that RegisterHandlingEvent is not mistakenly called directly out of the
- * larger context of ProcessHandlingEvent?
- *
- * IMPORTANT:
- * Compared to the DDD sample, we don't save a Cargo object with the HandlingEvent, but only
- * the TrackingId! HandlingEvent never needs the full Cargo graph (not in the DDD sample either),
- * so by saving only the TrackingId we get a much slimmer HandlingEvent object.
- */
-public class RegisterHandlingEvent extends Context
-{
- private EventRegistrarRole eventRegistrar;
-
- private ParsedHandlingEventData eventData;
- private HandlingEventType eventType;
- private String trackingIdString;
- private String unLocodeString;
- private String voyageNumberString;
-
- public RegisterHandlingEvent( ParsedHandlingEventData parsedEventData )
- {
- eventRegistrar = rolePlayer( EventRegistrarRole.class, HandlingEventAggregateRoot.class, HANDLING_EVENTS_ID );
-
- this.eventData = parsedEventData;
- eventType = parsedEventData.handlingEventType().get();
- trackingIdString = parsedEventData.trackingIdString().get();
- unLocodeString = parsedEventData.unLocodeString().get();
- voyageNumberString = parsedEventData.voyageNumberString().get();
- }
-
- public HandlingEvent getEvent()
- throws CannotRegisterHandlingEventException
- {
- return eventRegistrar.registerAndGetHandlingEvent();
- }
-
- @Mixins( EventRegistrarRole.Mixin.class )
- public interface EventRegistrarRole
- {
- void setContext( RegisterHandlingEvent context );
-
- HandlingEvent registerAndGetHandlingEvent()
- throws CannotRegisterHandlingEventException;
-
- class Mixin
- extends RoleMixin<RegisterHandlingEvent>
- implements EventRegistrarRole
- {
- @This
- HandlingEventFactory eventFactory;
-
- public HandlingEvent registerAndGetHandlingEvent()
- throws CannotRegisterHandlingEventException
- {
- UnitOfWork uow = uowf.currentUnitOfWork();
- TrackingId trackingId;
- Location location;
- Voyage voyage = null;
-
- // Step 1 - Find Cargo from tracking id string
- try
- {
- trackingId = uow.get( Cargo.class, c.trackingIdString ).trackingId().get();
- }
- catch( NoSuchEntityException e )
- {
- throw new UnknownCargoException( c.eventData );
- }
-
- // Step 2 - Find Location from UnLocode string
-
- try
- {
- location = uow.get( Location.class, c.unLocodeString );
- }
- catch( NoSuchEntityException e )
- {
- throw new UnknownLocationException( c.eventData );
- }
-
- // Step 3 - Find Voyage from voyage number string
-
- if( c.eventType.requiresVoyage() )
- {
- if( c.voyageNumberString == null )
- {
- throw new MissingVoyageNumberException( c.eventData );
- }
-
- try
- {
- voyage = uow.get( Voyage.class, c.voyageNumberString );
- }
- catch( NoSuchEntityException e )
- {
- throw new UnknownVoyageException( c.eventData );
- }
- }
-
- // Step 4 - Verify that cargo is not received, in customs or claimed more than once
-
- if( c.eventType.equals( RECEIVE ) || c.eventType.equals( CUSTOMS ) || c.eventType.equals( CLAIM ) )
- {
- QueryBuilder<HandlingEvent> qb = qbf.newQueryBuilder( HandlingEvent.class )
- .where(
- and(
- eq( templateFor( HandlingEvent.class ).trackingId().get().id(), c.trackingIdString ),
- eq( templateFor( HandlingEvent.class ).handlingEventType(), c.eventType )
- )
- );
- Query<HandlingEvent> duplicates = uowf.currentUnitOfWork().newQuery( qb );
- if( duplicates.count() > 0 )
- {
- throw new DuplicateEventException( c.eventData );
- }
- }
-
- // Step 5 - Verify that cargo is not handled after being claimed
-
- if( !c.eventType.equals( CLAIM ) )
- {
- HandlingEvent eventTemplate = templateFor( HandlingEvent.class );
- QueryBuilder<HandlingEvent> qb = qbf.newQueryBuilder( HandlingEvent.class )
- .where(
- and(
- eq( eventTemplate.trackingId().get().id(), c.trackingIdString ),
- eq( eventTemplate.handlingEventType(), CLAIM )
- )
- );
- Query<HandlingEvent> alreadyClaimed = uowf.currentUnitOfWork().newQuery( qb );
- if( alreadyClaimed.count() > 0 )
- {
- throw new AlreadyClaimedException( c.eventData );
- }
- }
-
- // Step 6 - Create Handling Event in the system
-
- try
- {
- return eventFactory.createHandlingEvent( c.eventData.registrationDate().get(),
- c.eventData.completionDate().get(),
- trackingId,
- c.eventData.handlingEventType().get(),
- location,
- voyage );
- }
- catch( CannotCreateHandlingEventException e )
- {
- throw new CannotRegisterHandlingEventException( c.eventData );
- }
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/AlreadyClaimedException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/AlreadyClaimedException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/AlreadyClaimedException.java
deleted file mode 100644
index 11514bb..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/AlreadyClaimedException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto.ParsedHandlingEventData;
-
-/**
- * Thrown when trying to register a handling event after cargo has been claimed.
- */
-public final class AlreadyClaimedException extends CannotRegisterHandlingEventException
-{
- public AlreadyClaimedException( ParsedHandlingEventData parsedHandlingEventData )
- {
- super( parsedHandlingEventData );
- }
-
- @Override
- public String getMessage()
- {
- return type + " handling event can't be registered after cargo has been claimed.";
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/CannotRegisterHandlingEventException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/CannotRegisterHandlingEventException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/CannotRegisterHandlingEventException.java
deleted file mode 100644
index 4a3d905..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/CannotRegisterHandlingEventException.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto.ParsedHandlingEventData;
-import org.apache.zest.sample.dcicargo.sample_b.data.structure.handling.HandlingEvent;
-
-/**
- * If a {@link HandlingEvent} can't be created from a given set of parameters.
- *
- * It is a checked exception because it's not a programming error, but rather a
- * special case that the application is built to handle. It can occur during normal
- * program execution.
- */
-public class CannotRegisterHandlingEventException extends Exception
-{
- private ParsedHandlingEventData parsedHandlingEventData;
-
- protected String msg, id, time, type, unloc;
- protected String voy = "";
-
- public CannotRegisterHandlingEventException( ParsedHandlingEventData parsedHandlingEventData )
- {
- super();
- this.parsedHandlingEventData = parsedHandlingEventData;
-
- time = parseDate( parsedHandlingEventData.completionDate().get() );
- id = parse( parsedHandlingEventData.trackingIdString().get() );
- type = parse( parsedHandlingEventData.handlingEventType().get().name() );
- unloc = parse( parsedHandlingEventData.unLocodeString().get() );
- voy = parse( parsedHandlingEventData.voyageNumberString().get() );
- }
-
- public ParsedHandlingEventData getParsedHandlingEventData()
- {
- return parsedHandlingEventData;
- }
-
- private String parse( String str )
- {
- return str == null ? "null" : str;
- }
-
- private String parseDate( LocalDate date )
- {
- return date == null ? "null" : date.toString();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/ChronologicalException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/ChronologicalException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/ChronologicalException.java
deleted file mode 100644
index 7aaaf2d..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/ChronologicalException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception;
-
-import java.time.LocalDate;
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto.ParsedHandlingEventData;
-
-/**
- * Thrown when trying to register a handling event with an unknown tracking id.
- */
-public final class ChronologicalException extends CannotRegisterHandlingEventException
-{
- private LocalDate lastCompletionTime;
-
- public ChronologicalException( ParsedHandlingEventData parsedHandlingEventData, LocalDate lastCompletionTime )
- {
- super( parsedHandlingEventData );
- this.lastCompletionTime = lastCompletionTime;
- }
-
- @Override
- public String getMessage()
- {
- return "Completion time " + time + " is unexpectedly before last handling event completion.";
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/DuplicateEventException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/DuplicateEventException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/DuplicateEventException.java
deleted file mode 100644
index 2c68e58..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/DuplicateEventException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto.ParsedHandlingEventData;
-
-/**
- * Thrown when trying to register a receive/in customs/claim handling event twice.
- */
-public final class DuplicateEventException extends CannotRegisterHandlingEventException
-{
- public DuplicateEventException( ParsedHandlingEventData parsedHandlingEventData )
- {
- super( parsedHandlingEventData );
- }
-
- @Override
- public String getMessage()
- {
- if( type.equals( "RECEIVE" ) )
- {
- return "Cargo can't be received more than once.";
- }
- else if( type.equals( "CUSTOMS" ) )
- {
- return "Cargo can't be in customs more than once.";
- }
- else if( type.equals( "CLAIM" ) )
- {
- return "Cargo can't be claimed more than once.";
- }
- else
- {
- return "INTERNAL ERROR: Unexpected handling event type for this exception";
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/103c59cb/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/MissingVoyageNumberException.java
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/MissingVoyageNumberException.java b/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/MissingVoyageNumberException.java
deleted file mode 100644
index 05b0d52..0000000
--- a/samples/dci-cargo/dcisample_b/src/main/java/org/apache/zest/sample/dcicargo/sample_b/context/interaction/handling/registration/exception/MissingVoyageNumberException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *
- */
-package org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.registration.exception;
-
-import org.apache.zest.sample.dcicargo.sample_b.context.interaction.handling.parsing.dto.ParsedHandlingEventData;
-
-/**
- * Thrown when trying to register a handling event without a required voyage
- */
-public final class MissingVoyageNumberException extends CannotRegisterHandlingEventException
-{
- public MissingVoyageNumberException( ParsedHandlingEventData parsedHandlingEventData )
- {
- super( parsedHandlingEventData );
- }
-
- @Override
- public String getMessage()
- {
- msg = "Unsuccessful handling event registration for cargo '" + id + "' (handling event '" + type + "' in '" + unloc + "')." +
- "\nMissing voyage number. Handling event " + type + " requires a voyage.";
-
- msg += "\nMOCKUP NOTIFICATION TO HANDLING AUTHORITY: Please check submitted invalid handling event data:";
- msg += getParsedHandlingEventData();
-
- return msg;
- }
-}