@Override public Race map(PetContract.Race input) { switch (input) { case CAT: return Race.CAT; case DOG: return Race.DOG; case GUINEA_PIG: return Race.PIG; default: throw new EidIllegalArgumentException(new Eid("20161221:183136")); } }
@Override public PetContract.Race reverseMap(Race output) { switch (output) { case CAT: return PetContract.Race.CAT; case DOG: return PetContract.Race.DOG; case PIG: return PetContract.Race.GUINEA_PIG; default: throw new EidIllegalArgumentException(new Eid("20161221:191805")); } }
private PetContract getPetByReference(String repr) { return entityReferenceMapper .map(repr) .flatMap(loadPetInteractor::findPetByReference) .orElseThrow( () -> new EidIndexOutOfBoundsException(new Eid("20180511:195020")) ); } }
private String getClassNameRepr(Serializable type) { if (type instanceof Class) { return classNameEncoder.getReprForClassName( Class.class.cast(type).getName() ); } throw new EidIllegalStateException( new Eid("20180509:143750"), "Unsupported type: %s", type.getClass() ); }
@Override @SuppressWarnings("unchecked") public <T> T create(Class<T> contractClass) { if (Predicate.class.isAssignableFrom(contractClass) && contractClass.isInterface()) { Class<? extends Predicate<InspectionPoint>> cls = (Class<? extends Predicate<InspectionPoint>>) contractClass; Predicate<InspectionPoint> predicate = createPredicateFalseProxy(cls); return (T) predicate; } throw new EidIndexOutOfBoundsException( new Eid("20180515:175613"), "Only interfaces extending Predicate can be instantiated by default, " + "provide your own implementation of BeanFactory" ); }
@Override public Optional<PetContract> findPetByReference(EntityReference reference) { if (reference.getType() != Pet.class) { throw new SecurityException( new EidIllegalStateException(new Eid("20180511:212223")) ); } Optional<Pet> pet = petsGateway .findByReference(reference::getReference) .fetch(PetFetchProfile.WITH_OWNER); return pet.map(this::petAsContract); }
@RequestMapping(value = "/edit", method = RequestMethod.POST) public String edit(Model model, @ModelAttribute(FORM_OBJECT) EditPetForm form) { EntityReference reference = entityReferenceMapper .map(form.getReference()) .orElseThrow(() -> new EidIllegalStateException(new Eid("20180514:223428"))); PetContract pet = getPetFromForm(form.getData()); UpdatePetRequest request = new UpdatePetRequest( reference, pet ); Consumer<UpdatePetResponse> response = updatePetUseCase.updatePet(request); EditPetPresenter presenter = new EditPetPresenter( form.getReference(), pet, racePresenter ); response.accept(presenter); if (presenter.isSuccessful()) { return "redirect:../"; } else { return formHanding(model, presenter); } }