public HandlingEvent createHandlingEvent(
        Date completionTime,
        TrackingId trackingId,
        CarrierMovementId carrierMovementId,
        UnLocode unlocode,
        HandlingEvent.Type type)
        throws UnknownTrackingIdException, UnknownCarrierMovementIdException,
            UnknownLocationException {
      Cargo cargo = validateCargoExists(trackingId);
      CarrierMovement carrierMovement = findCarrierMovement(carrierMovementId);
      Location location = findLocation(unlocode);
      Date registrationTime = new Date();

      // Create entity
      UnitOfWork uow = uowf.currentUnitOfWork();
      EntityBuilder<HandlingEvent> builder = uow.newEntityBuilder(HandlingEvent.class);
      HandlingEventState state = builder.instanceFor(HandlingEventState.class);
      state.cargo().set(cargo);

      // TODO: remove next line when query + association is implemented
      state.cargoTrackingId().set(trackingId.idString());

      state.carrierMovement().set(carrierMovement);
      state.location().set(location);
      state.registrationTime().set(registrationTime);
      state.completionTime().set(completionTime);
      state.eventType().set(type);

      return builder.newInstance();
    }
 public School findSchoolByName(String schoolName) {
   QueryBuilder<School> builder = qbf.newQueryBuilder(School.class);
   SchoolEntity.SchoolState template = templateFor(SchoolEntity.SchoolState.class);
   builder.where(eq(template.name(), schoolName));
   Query<School> query = builder.newQuery(uowf.currentUnitOfWork());
   return query.find();
 }
 @Override
 public void passivate() throws Exception {
   UnitOfWork uow = uowf.newUnitOfWork();
   try {
     RootEntity root = rootEntity();
     LOGGER.info("Existing RootEntity: " + root.identity().get());
   } catch (NoSuchEntityException ex) {
     LOGGER.info("No RootEntity");
   }
   uow.complete();
 }
 @Override
 public void activate() throws Exception {
   UnitOfWork uow = uowf.newUnitOfWork();
   try {
     RootEntity root = rootEntity();
     LOGGER.info("Will use RootEntity: " + root.identity().get());
   } catch (NoSuchEntityException ex) {
     EntityBuilder<RootEntity> builder =
         uow.newEntityBuilder(RootEntity.class, RootEntity.IDENTITY);
     RootEntity root = builder.newInstance();
     LOGGER.info("Created new RootEntity: " + root.identity().get());
   }
   uow.complete();
 }
Exemple #5
0
 public Cargo create(String originUnLocode, String destinationUnLocode, Date arrivalDeadline) {
   TrackingId trackingId = cargoRepository.nextTrackingId();
   Location origin = locationRepository.findLocationByUnLocode(originUnLocode);
   Location destination = locationRepository.findLocationByUnLocode(destinationUnLocode);
   RouteSpecification routeSpecification =
       routeSpecificationFactory.create(origin, destination, arrivalDeadline);
   UnitOfWork uow = uowf.currentUnitOfWork();
   EntityBuilder<Cargo> builder = uow.newEntityBuilder(Cargo.class, trackingId.id().get());
   Cargo.State instanceState = builder.instanceFor(Cargo.State.class);
   instanceState.routeSpecification().set(routeSpecification);
   instanceState.origin().set(origin);
   Cargo cargo = builder.newInstance();
   logger.info("Booked new cargo with tracking id " + cargo.trackingId().id().get());
   return cargo;
 }
    public void activate() throws Exception {
      UnitOfWork unitOfWork = uowf.newUnitOfWork();
      try {
        {
          ValueBuilder<TestValue> valueBuilder = vbf.newValueBuilder(TestValue.class);
          valueBuilder.prototype().longList().get().add(42L);
          valueBuilder.prototype().string().set("Foo bar value");
          valueBuilder.prototype().map().set(new HashMap());

          EntityBuilder<TestEntity> builder =
              unitOfWork.newEntityBuilder(TestEntity.class, "test1");
          builder.instance().name().set("Foo bar");
          builder.instance().age().set(42);
          builder.instance().value().set(valueBuilder.newInstance());
          TestEntity testEntity = builder.newInstance();

          EntityBuilder<TestEntity> builder2 =
              unitOfWork.newEntityBuilder(TestEntity.class, "test2");
          builder2.instance().name().set("Xyzzy");
          builder2.instance().age().set(12);
          builder2.instance().association().set(testEntity);
          builder2.instance().manyAssociation().add(0, testEntity);
          builder2.instance().manyAssociation().add(0, testEntity);

          EntityBuilder<TestRole> builder3 = unitOfWork.newEntityBuilder(TestRole.class);
          builder3.instance().name().set("A role");
          TestRole testRole = builder3.newInstance();

          builder2.newInstance();
        }

        {
          EntityBuilder<TestEntity2> builder =
              unitOfWork.newEntityBuilder(TestEntity2.class, "test3");
          builder.instance().name().set("Test3");
          builder.newInstance();
        }

        unitOfWork.complete();
      } catch (Exception e) {
        unitOfWork.discard();
        throw e;
      }
    }
 public Query<School> findAll() {
   return qbf.newQueryBuilder(School.class).newQuery(uowf.currentUnitOfWork());
 }
 @Override
 public RootEntity rootEntity() {
   return uowf.currentUnitOfWork().get(RootEntity.class, RootEntity.IDENTITY);
 }
    public void activate() throws Exception {
      Usecase usecase = UsecaseBuilder.newUsecase("Populate Sample Voyages");
      UnitOfWork uow = uowf.newUnitOfWork(usecase);
      try {

        final Location HONGKONG = locationRepository.findLocationByUnLocode("CNHKG");
        final Location TOKYO = locationRepository.findLocationByUnLocode("JNTKO");
        final Location NEWYORK = locationRepository.findLocationByUnLocode("USNYC");
        final Location CHICAGO = locationRepository.findLocationByUnLocode("USCHI");
        final Location STOCKHOLM = locationRepository.findLocationByUnLocode("SESTO");
        final Location ROTTERDAM = locationRepository.findLocationByUnLocode("NLRTM");
        final Location MELBOURNE = locationRepository.findLocationByUnLocode("AUMEL");
        final Location HAMBURG = locationRepository.findLocationByUnLocode("DEHAM");
        final Location HELSINKI = locationRepository.findLocationByUnLocode("FIHEL");
        final Location DALLAS = locationRepository.findLocationByUnLocode("USDAL");
        final Location HANGZOU = locationRepository.findLocationByUnLocode("CNHGH");
        final Location SHANGHAI = locationRepository.findLocationByUnLocode("CNSHA");

        Voyage v100 =
            new VoyageRepository.Builder(vbf, uow, "V100", HONGKONG)
                .addMovement(TOKYO, toDate("2009-03-03"), toDate("2009-03-05"))
                .addMovement(NEWYORK, toDate("2009-03-06"), toDate("2009-03-09"))
                .build();
        Voyage v200 =
            new VoyageRepository.Builder(vbf, uow, "V200", TOKYO)
                .addMovement(NEWYORK, toDate("2009-03-06"), toDate("2009-03-08"))
                .addMovement(CHICAGO, toDate("2009-03-10"), toDate("2009-03-14"))
                .addMovement(STOCKHOLM, toDate("2009-03-14"), toDate("2009-03-16"))
                .build();
        Voyage v300 =
            new VoyageRepository.Builder(vbf, uow, "V300", TOKYO)
                .addMovement(ROTTERDAM, toDate("2009-03-22"), toDate("2009-03-25"))
                .addMovement(HAMBURG, toDate("2009-03-25"), toDate("2009-03-26"))
                .addMovement(MELBOURNE, toDate("2009-03-28"), toDate("2009-04-03"))
                .addMovement(TOKYO, toDate("2009-04-03"), toDate("2009-04-06"))
                .build();
        Voyage v400 =
            new VoyageRepository.Builder(vbf, uow, "V400", HAMBURG)
                .addMovement(STOCKHOLM, toDate("2009-03-14"), toDate("2009-03-15"))
                .addMovement(HELSINKI, toDate("2009-03-15"), toDate("2009-03-16"))
                .addMovement(HAMBURG, toDate("2009-03-20"), toDate("2009-03-22"))
                .build();

        /*
         * Voyage number 0100S (by ship)
         * <p/>
         * Hongkong - Hangzou - Tokyo - Melbourne - New York
         */
        Voyage HONGKONG_TO_NEW_YORK =
            new VoyageRepository.Builder(vbf, uow, "0100S", HONGKONG)
                .addMovement(HANGZOU, toDate("2008-10-01", "12:00"), toDate("2008-10-03", "14:30"))
                .addMovement(TOKYO, toDate("2008-10-03", "21:00"), toDate("2008-10-06", "06:15"))
                .addMovement(
                    MELBOURNE, toDate("2008-10-06", "11:00"), toDate("2008-10-12", "11:30"))
                .addMovement(NEWYORK, toDate("2008-10-14", "12:00"), toDate("2008-10-23", "23:10"))
                .build();

        /*
         * Voyage number 0200T (by train)
         * <p/>
         * New York - Chicago - Dallas
         */
        Voyage NEW_YORK_TO_DALLAS =
            new VoyageRepository.Builder(vbf, uow, "0200T", NEWYORK)
                .addMovement(CHICAGO, toDate("2008-10-24", "07:00"), toDate("2008-10-24", "17:45"))
                .addMovement(DALLAS, toDate("2008-10-24", "21:25"), toDate("2008-10-25", "19:30"))
                .build();

        /*
         * Voyage number 0300A (by airplane)
         * <p/>
         * Dallas - Hamburg - Stockholm - Helsinki
         */
        Voyage DALLAS_TO_HELSINKI =
            new VoyageRepository.Builder(vbf, uow, "0300A", DALLAS)
                .addMovement(HAMBURG, toDate("2008-10-29", "03:30"), toDate("2008-10-31", "14:00"))
                .addMovement(
                    STOCKHOLM, toDate("2008-11-01", "15:20"), toDate("2008-11-01", "18:40"))
                .addMovement(HELSINKI, toDate("2008-11-02", "09:00"), toDate("2008-11-02", "11:15"))
                .build();

        /*
         * Voyage number 0301S (by ship)
         * <p/>
         * Dallas - Hamburg - Stockholm - Helsinki, alternate route
         */
        Voyage DALLAS_TO_HELSINKI_ALT =
            new VoyageRepository.Builder(vbf, uow, "0301S", DALLAS)
                .addMovement(HELSINKI, toDate("2008-10-29", "03:30"), toDate("2008-11-05", "15:45"))
                .build();

        /*
         * Voyage number 0400S (by ship)
         * <p/>
         * Helsinki - Rotterdam - Shanghai - Hongkong
         */
        Voyage HELSINKI_TO_HONGKONG =
            new VoyageRepository.Builder(vbf, uow, "0400S", HELSINKI)
                .addMovement(
                    ROTTERDAM, toDate("2008-11-04", "05:50"), toDate("2008-11-06", "14:10"))
                .addMovement(SHANGHAI, toDate("2008-11-10", "21:45"), toDate("2008-11-22", "16:40"))
                .addMovement(HONGKONG, toDate("2008-11-24", "07:00"), toDate("2008-11-28", "13:37"))
                .build();
        uow.complete();
      } catch (RuntimeException e) {
        uow.discard();
        throw e;
      }
    }
 public Voyage findVoyageByVoyageIdentity(final String voyageIdentity) {
   UnitOfWork uow = uowf.currentUnitOfWork();
   return uow.get(Voyage.class, Builder.createVoyageIdentity(voyageIdentity));
 }