@Override public KeyRepresentation findKeyWithName(String name) { return keyRepository.get(name).map(keyAssembler::assemble).orElse(null); } }
private Key loadKeyIfExistsOrFail() { return keyRepository.get(keyName) .orElseThrow(() -> new NotFoundException(String.format(KEY_NOT_FOUND, keyName))); } }
@Override public TranslationRepresentation findTranslation(String localeId, String keyId) { return keyRepository.get(keyId).map(k -> translationLocaleAssembler.assemble(k, localeId)).orElse(null); }
@Override public Optional<String> getTranslationWithFallback(String locale, String keyName) { return keyRepository.get(keyName).flatMap(k -> getTranslationWithFallback(locale, k)); }
private void assertKeyDoNotAlreadyExists(KeyRepresentation representation) { keyRepository.get(representation.getName()).ifPresent(k -> {throw new AlreadyExistException();}); }
@Override public void translate(String keyName, String locale, String translation) { if (isEmpty(keyName)) { throw new IllegalArgumentException(String.format(IS_EMPTY_ERROR_MESSAGE, "key name")); } if (isEmpty(locale)) { throw new IllegalArgumentException(String.format(IS_EMPTY_ERROR_MESSAGE, "locale")); } Key key = keyRepository.get(keyName).orElseThrow(() -> new IllegalArgumentException( "The locale " + locale + " is not available.")); if (isEmpty(translation)) { key.removeTranslation(locale); } else { updateTranslation(locale, translation, key); } }
@Override public Stream<KeyDTO> exportData() { return fluentAssembler.assemble(keyRepository.get(Specification.any())).toStreamOf(KeyDTO.class); } }
/** * Update translation for the given locale. * * @param keyName key name * @param representation translation representation * @return status code 204 (no content) or 404 (not found) if key or target translation is null. */ @PUT @Path("/{key}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @RequiresPermissions(I18nPermissions.TRANSLATION_WRITE) public Response updateTranslation(@PathParam("key") String keyName, TranslationRepresentation representation) { WebAssertions.assertNotNull(representation, "The translation should not be null"); TranslationValueRepresentation translationToUpdate = representation.getTarget(); WebAssertions.assertNotNull(translationToUpdate, "The translation target should not be null"); Key key = keyRepository.get(keyName).orElseThrow(() -> new NotFoundException("The key is not found")); key.addTranslation(locale, translationToUpdate.getTranslation(), translationToUpdate.isApprox()); keyRepository.update(key); return Response.noContent().build(); } }