./src/main/java/org/folio/circulation/resources/LoanCollectionResource.java: () -> singleValidationError("proxyUserId is not valid", "proxyUserId", ./src/main/java/org/folio/circulation/resources/LoanCollectionResource.java: clients, () -> singleValidationError("proxyUserId is not valid", "proxyUserId", ./src/main/java/org/folio/circulation/resources/LoanCollectionResource.java: return failedValidation("Holding does not exist", ./src/main/java/org/folio/circulation/resources/LoanCollectionResource.java: String.format("No item with ID %s could be found", loan.getItemId()), ./src/main/java/org/folio/circulation/resources/LoanCollectionResource.java: String.format("%s (%s) (Barcode: %s) has the item status %s, loan cannot be created", ./src/main/java/org/folio/circulation/resources/DeclareClaimedReturnedItemAsMissingResource.java: return failed(singleValidationError("Comment is a required field", ./src/main/java/org/folio/circulation/resources/DeclareClaimedReturnedItemAsMissingResource.java: return creator.createGeneralUserNote(loan.getUserId(), "Claimed returned item marked missing") ./src/main/java/org/folio/circulation/resources/ClaimItemReturnedResource.java: return failed(singleValidationError("Item claimed returned date is a required field", ./src/main/java/org/folio/circulation/resources/ChangeDueDateResource.java: "A new due date is required in order to change the due date", DUE_DATE, null)); ./src/main/java/org/folio/circulation/resources/CheckInByBarcodeResource.java: String.format("%s (%s) (Barcode: %s) has the item status %s and cannot be checked in", ./src/main/java/org/folio/circulation/resources/AbstractCirculationRulesEngineResource.java: ClientErrorResponse.badRequest(request.response(), "required query parameter missing: " + paramName); ./src/main/java/org/folio/circulation/resources/AbstractCirculationRulesEngineResource.java: ClientErrorResponse.badRequest(request.response(), "invalid uuid format of " + paramName + ./src/main/java/org/folio/circulation/resources/AbstractCirculationRulesEngineResource.java: ", expecting " + regex + " but it is " + uuid); ./src/main/java/org/folio/circulation/resources/RequestByInstanceIdResource.java: String reason = "Error processing instance-level request"; ./src/main/java/org/folio/circulation/resources/RequestByInstanceIdResource.java: return failedDueToServerError("Unable to find an item to place a request"); ./src/main/java/org/folio/circulation/resources/RequestByInstanceIdResource.java: String aggregateFailures = String.format("%n%s", String.join("%n", errors)); ./src/main/java/org/folio/circulation/resources/RequestByInstanceIdResource.java: "Failed to place a request for the instance. Reasons: " + aggregateFailures)); ./src/main/java/org/folio/circulation/resources/RequestByInstanceIdResource.java: return failedValidation("Cannot create request objects when items list is null or empty", "items", "null"); } ./src/main/java/org/folio/circulation/resources/RequestByInstanceIdResource.java: String message = "This requester already has an open request for an item of this instance"; ./src/main/java/org/folio/circulation/resources/RequestByInstanceIdResource.java: return failedValidation("There are no items for this instance", "items", "empty"); ./src/main/java/org/folio/circulation/resources/RequestByInstanceIdResource.java: singleValidationError("proxyUserId is not valid", ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: public static final String RENEWAL_WOULD_NOT_CHANGE_THE_DUE_DATE = "renewal would not change the due date"; ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "Items with this loan policy cannot be renewed when there is an active, pending hold request"; ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "Item's loan policy has fixed profile but alternative renewal period for holds is specified"; ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "Item's loan policy has fixed profile but renewal period is specified"; ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: public static final String DECLARED_LOST_ITEM_RENEWED_ERROR = "item is Declared lost"; ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: public static final String CLAIMED_RETURNED_RENEWED_ERROR = "item is Claimed returned"; ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: String reason = "Override renewal does not match any of expected cases: " + ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "item is not loanable, " + ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "item is not renewable, " + ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "reached number of renewals limit," + ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "renewal date falls outside of the date ranges in the loan policy, " + ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "items cannot be renewed when there is an active recall request, " + ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: ", item is Aged to lost, renewal would not change the due date"; ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "New due date must be specified when due date calculation fails", ./src/main/java/org/folio/circulation/resources/RenewalValidator.java: "New due date is required when renewal would not change the due date", ./src/main/java/org/folio/circulation/resources/renewal/OverrideRenewalStrategy.java: return completedFuture(failedValidation("Override renewal request must have a comment", ./src/main/java/org/folio/circulation/resources/renewal/RenewByIdRequest.java: return failedValidation("Renewal request must have an item ID", ./src/main/java/org/folio/circulation/resources/renewal/RenewByIdRequest.java: return failedValidation("Renewal request must have a user ID", ./src/main/java/org/folio/circulation/resources/renewal/RegularRenewalStrategy.java: "items cannot be renewed when there is an active recall request", ./src/main/java/org/folio/circulation/resources/renewal/RegularRenewalStrategy.java: errors.add(loanPolicyValidationError(loanPolicy, "item is not loanable")); ./src/main/java/org/folio/circulation/resources/renewal/RegularRenewalStrategy.java: errors.add(loanPolicyValidationError(loanPolicy, "loan is not renewable")); ./src/main/java/org/folio/circulation/resources/renewal/RegularRenewalStrategy.java: errors.add(itemByIdValidationError("item is " + loan.getItemStatusName(), ./src/main/java/org/folio/circulation/resources/renewal/RegularRenewalStrategy.java: errors.add(loanPolicyValidationError(loanPolicy, "loan at maximum renewal number")); ./src/main/java/org/folio/circulation/resources/renewal/RenewByBarcodeRequest.java: return failedValidation("Renewal request must have an item barcode", ./src/main/java/org/folio/circulation/resources/renewal/RenewByBarcodeRequest.java: return failedValidation("Renewal request must have a user barcode", ./src/main/java/org/folio/circulation/resources/renewal/RenewByIdResource.java: .orElse("unknown item ID"); ./src/main/java/org/folio/circulation/resources/renewal/RenewByIdResource.java: Result result = failedValidation("Cannot renew item checked out to different user", ./src/main/java/org/folio/circulation/resources/CirculationRulesResource.java: "Cannot initialise client to storage interface"); ./src/main/java/org/folio/circulation/resources/CirculationRulesResource.java: "Cannot initialise client to storage interface"); ./src/main/java/org/folio/circulation/resources/CirculationRulesResource.java: String.format("The policy %s does not exist", policyType), ./src/main/java/org/folio/circulation/resources/RequestFromRepresentationService.java: return failedValidation("Cannot create a request with no item ID", "itemId", itemId); ./src/main/java/org/folio/circulation/resources/handlers/LoanRelatedFeeFineClosedHandlerResource.java: new ValidationError("Loan id is required", "loanId", null))); ./src/main/java/org/folio/circulation/resources/DeclareLostResource.java: "Claimed returned item marked declared lost"))) ./src/main/java/org/folio/circulation/resources/DeclareLostResource.java: loan -> singleValidationError("The item is already declared lost", ./src/main/java/org/folio/circulation/storage/SingleOpenLoanByUserAndItemBarcodeFinder.java: failedValidation("Cannot renew item checked out to different user", ./src/main/java/org/folio/circulation/storage/ItemByInstanceIdFinder.java: "There are no holdings for this instance", "holdingsRecords", "null")); ./src/main/java/org/folio/circulation/support/RouteRegistration.java: ServerErrorResponse.internalError(context.response(), "Unknown failure occurred"); ./src/main/java/org/folio/circulation/support/InvalidOkapiLocationException.java: super(String.format("Invalid Okapi URL: %s", okapiLocation), cause); ./src/main/java/org/folio/circulation/support/utils/DateTimeUtil.java: throw new UnsupportedOperationException("Do not instantiate"); ./src/main/java/org/folio/circulation/support/ValidationErrorFailure.java: return String.format("validation failure:%n%s", ./src/main/java/org/folio/circulation/support/results/FailedResult.java: return String.format("failed result due to a %s", cause.toString()); ./src/main/java/org/folio/circulation/support/results/AsynchronousResultBindings.java: "The asynchronous result supplier should not be null"))); ./src/main/java/org/folio/circulation/support/http/server/InsufficientOverridePermissionsError.java: super("Insufficient override permissions", emptyMap(), ./src/main/java/org/folio/circulation/support/http/server/ClientErrorResponse.java: notFound(response, "Not Found"); ./src/main/java/org/folio/circulation/support/http/client/ResponseInterpreter.java: return failedDueToServerError("Cannot interpret null response"); ./src/main/java/org/folio/circulation/support/http/client/CqlQuery.java: return String.format("A CQL query of \"%s\"", asText()); ./src/main/java/org/folio/circulation/support/http/client/PageLimit.java: return "No page limit"; ./src/main/java/org/folio/circulation/support/http/client/PageLimit.java: return String.format("A page limit of \"%s\"", value); ./src/main/java/org/folio/circulation/support/ServerErrorFailure.java: reason = "Unknown internal error"; ./src/main/java/org/folio/circulation/support/ServerErrorFailure.java: return String.format("Server error failure, reason: %s", reason); ./src/main/java/org/folio/circulation/support/request/RequestHelper.java: throw new UnsupportedOperationException("Do not instantiate"); ./src/main/java/org/folio/circulation/support/ClockManager.java: throw new IllegalArgumentException("clock cannot be null"); ./src/main/java/org/folio/circulation/support/SingleRecordFetcher.java: requireNonNull(id, format("Cannot fetch single %s with null ID", recordType)); ./src/main/java/org/folio/circulation/support/RecordNotFoundFailure.java: return String.format("%s record with ID \"%s\" cannot be found", ./src/main/java/org/folio/circulation/support/fetching/PageableFetcher.java: "Maximum allowed item count is set to " + maxAllowedRecordsToFetchLimit ./src/main/java/org/folio/circulation/support/fetching/PageableFetcher.java: + " and it has been reached"))); ./src/main/java/org/folio/circulation/rules/cache/CirculationRulesCache.java: "Cannot apply blank circulation rules"))); ./src/main/java/org/folio/circulation/rules/ExecutableRules.java: "Executing circulation rules: `%s` with parameters: `%s` to determine %s did not find a match", nal String[] policyTypes = {"l", "r", "n", "o", "i"}; ./src/main/java/org/folio/circulation/rules/Text2Drools.java: String message = size < 7 ? "7 letters expected, found only " + size ./src/main/java/org/folio/circulation/rules/Text2Drools.java: : "Only 7 letters expected, found " + size; ./src/main/java/org/folio/circulation/rules/Text2Drools.java: throw new CirculationRulesException("Duplicate letter " + letter, ./src/main/java/org/folio/circulation/rules/Text2Drools.java: String.format("Only one policy of type %s allowed", policyType), ./src/main/java/org/folio/circulation/rules/Text2Drools.java: String.format("Must contain one of each policy type, missing type %s", policyType), ./src/main/java/org/folio/circulation/rules/Text2Drools.java: String.format("Only one fallback policy of type %s is allowed", policyType), ./src/main/java/org/folio/circulation/rules/Text2Drools.java: String.format("Must have a fallback policy of type %s", policyType), ./src/main/java/org/folio/circulation/rules/Text2Drools.java: throw new CirculationRulesException("Duplicate priority type", ./src/main/java/org/folio/circulation/rules/Text2Drools.java: default: throw new IllegalArgumentException("Unknown policy type: " ./src/main/java/org/folio/circulation/rules/Text2Drools.java: "Expected criterium type t, a, b, c, s, m or g but found: " + letter); ./src/main/java/org/folio/circulation/infrastructure/storage/loans/LostItemPolicyRepository.java: return String.format("Lost item policy %s could not be found, please check circulation rules", policyId); ./src/main/java/org/folio/circulation/infrastructure/storage/loans/OverdueFinePolicyRepository.java: return String.format("Overdue fine policy %s could not be found," + ./src/main/java/org/folio/circulation/infrastructure/storage/loans/OverdueFinePolicyRepository.java: " please check circulation rules", policyId); ./src/main/java/org/folio/circulation/infrastructure/storage/loans/LoanRepository.java: "More than one open loan for item %s", item.getItemId())); ./src/main/java/org/folio/circulation/infrastructure/storage/loans/LoanPolicyRepository.java: return String.format("Loan policy %s could not be found, please check circulation rules", policyId); ./src/main/java/org/folio/circulation/infrastructure/storage/CalendarRepository.java: new ValidationError("Calendar open periods are not found", Collections.emptyMap()))) ./src/main/java/org/folio/circulation/infrastructure/storage/notices/PatronNoticePolicyRepository.java: return String.format("Notice policy %s could not be found, please check circulation rules", policyId); ./src/main/java/org/folio/circulation/infrastructure/storage/notices/PatronNoticePolicyMapper.java: return failed(getPolicyParsingFailure("templateId must not be null")); ./src/main/java/org/folio/circulation/infrastructure/storage/notices/PatronNoticePolicyMapper.java: return failed(getPolicyParsingFailure("unexpected notice format")); ./src/main/java/org/folio/circulation/infrastructure/storage/notices/PatronNoticePolicyMapper.java: () -> getPolicyParsingFailure("the loan period is not recognised"), ./src/main/java/org/folio/circulation/infrastructure/storage/notices/PatronNoticePolicyMapper.java: interval -> getPolicyParsingFailure(format("the interval \"%s\" is not recognised", interval)), ./src/main/java/org/folio/circulation/infrastructure/storage/notices/PatronNoticePolicyMapper.java: duration -> getPolicyParsingFailure(format("the duration \"%s\" is invalid", duration))); ./src/main/java/org/folio/circulation/infrastructure/storage/notices/PatronNoticePolicyMapper.java: return new ServerErrorFailure("Unable to parse patron notice policy: " + message); ./src/main/java/org/folio/circulation/infrastructure/storage/notices/JsonScheduledNoticeMapper.java: () -> getParsingFailure("the loan period is not recognised"), ./src/main/java/org/folio/circulation/infrastructure/storage/notices/JsonScheduledNoticeMapper.java: interval -> getParsingFailure(format("the interval \"%s\" is not recognised", interval)), ./src/main/java/org/folio/circulation/infrastructure/storage/notices/JsonScheduledNoticeMapper.java: duration -> getParsingFailure(format("the duration \"%s\" is invalid", duration))); ./src/main/java/org/folio/circulation/infrastructure/storage/notices/JsonScheduledNoticeMapper.java: return new ServerErrorFailure("Unable to parse scheduled notice: " + message); ./src/main/java/org/folio/circulation/infrastructure/storage/requests/RequestPolicyRepository.java: "Request policy %s could not be found, please check circulation rules", requestPolicyId))) ./src/main/java/org/folio/circulation/infrastructure/storage/requests/RequestPolicyRepository.java: "Unable to find matching request rules for unknown item")); ./src/main/java/org/folio/circulation/infrastructure/storage/requests/RequestPolicyRepository.java: "Applying request rules for material type: {}, patron group: {}, loan type: {}, location: {}", ./src/main/java/org/folio/circulation/infrastructure/storage/requests/RequestPolicyRepository.java: future.complete(failedDueToServerError("Unable to find matching request rules")); ./src/main/java/org/folio/circulation/infrastructure/storage/sessions/PatronActionSessionRepository.java: return failedDueToServerError("Invalid patron action type value: " ./src/main/java/org/folio/circulation/infrastructure/storage/users/UserRepository.java: return completedFuture(failedValidation("user is not found", "userId", userId)); ./src/main/java/org/folio/circulation/infrastructure/storage/users/UserRepository.java: .whenNotFound(failedValidation("user is not found", "userId", userId)) ./src/main/java/org/folio/circulation/infrastructure/storage/users/UserRepository.java: failedValidation("Could not find user with matching barcode", ./src/main/java/org/folio/circulation/infrastructure/storage/CirculationPolicyRepository.java: "Unable to apply circulation rules for item that is null")); ./src/main/java/org/folio/circulation/infrastructure/storage/CirculationPolicyRepository.java: "Unable to apply circulation rules for item with user that is null")); ./src/main/java/org/folio/circulation/infrastructure/storage/CirculationPolicyRepository.java: "Unable to apply circulation rules for unknown item")); ./src/main/java/org/folio/circulation/infrastructure/storage/CirculationPolicyRepository.java: "Unable to apply circulation rules for unknown holding")); ./src/main/java/org/folio/circulation/Launcher.java: throw new IllegalArgumentException("port should not be null"); ./src/main/java/org/folio/circulation/domain/representations/EndPatronSessionRequest.java: return singletonList(failedValidation("End patron session request must have patron id", ./src/main/java/org/folio/circulation/domain/representations/EndPatronSessionRequest.java: return singletonList(failedValidation("End patron session request must have action type", ./src/main/java/org/folio/circulation/domain/representations/EndPatronSessionRequest.java: .orElse(failedValidation("Invalid patron action type value", ACTION_TYPE, actionTypeRepresentation))); ./src/main/java/org/folio/circulation/domain/representations/DeclareItemLostRequest.java: return failedValidation("A service point is required for item to be declared lost", SERVICE_POINT_ID, servicePointId); ./src/main/java/org/folio/circulation/domain/representations/RequestByInstanceIdRequest.java: return failedValidation("Request must have a request date", REQUEST_DATE, null); ./src/main/java/org/folio/circulation/domain/representations/RequestByInstanceIdRequest.java: return failedValidation("Request must have a requester id", REQUESTER_ID, null); ./src/main/java/org/folio/circulation/domain/representations/RequestByInstanceIdRequest.java: return failedValidation("Request must have an instance id", INSTANCE_ID, null); ./src/main/java/org/folio/circulation/domain/representations/CheckInByBarcodeRequest.java: return failedValidation("Checkin request must have an item barcode", ./src/main/java/org/folio/circulation/domain/representations/CheckInByBarcodeRequest.java: return failedValidation("Checkin request must have a service point id", ./src/main/java/org/folio/circulation/domain/representations/CheckInByBarcodeRequest.java: return failedValidation("Checkin request must have an check in date", ./src/main/java/org/folio/circulation/domain/representations/CheckInByBarcodeRequest.java: return failedValidation("Unrecognized value provided for property", ./src/main/java/org/folio/circulation/domain/UpdateRequestService.java: original -> singleValidationError("Patron comments are not allowed to change", ./src/main/java/org/folio/circulation/domain/Loan.java: return failedDueToServerError("Loan does not have a status"); ./src/main/java/org/folio/circulation/domain/Loan.java: return failedValidation("Loan status must be \"Open\" or \"Closed\"", ./src/main/java/org/folio/circulation/domain/Loan.java: return failedValidation("Open loan must have a user ID", ./src/main/java/org/folio/circulation/domain/Loan.java: return failedValidation("A Closed loan must have a Checkin Service Point", ./src/main/java/org/folio/circulation/domain/Loan.java: requireNonNull(newLoanPolicy, "newLoanPolicy cannot be null"); ./src/main/java/org/folio/circulation/domain/Loan.java: requireNonNull(newOverdueFinePolicy, "newOverdueFinePolicy cannot be null"); ./src/main/java/org/folio/circulation/domain/Loan.java: requireNonNull(newLostItemPolicy, "newLostItemPolicy cannot be null"); ./src/main/java/org/folio/circulation/domain/CheckInRecord.java: "occurredDateTime, itemId, checkInServicePoint and performedByUserId are required"); ./src/main/java/org/folio/circulation/domain/notice/schedule/LoanScheduledNoticeHandler.java: private static final String ERROR_MESSAGE_TEMPLATE = "Sending scheduled notice {} failed: {}"; ./src/main/java/org/folio/circulation/domain/notice/schedule/FeeFineScheduledNoticeHandler.java: "Scheduled \"%s\" notice with id %s for user %s will be deleted without sending: %s", ./src/main/java/org/folio/circulation/domain/notice/schedule/TriggeringEvent.java: "Failed to convert NoticeEventType to TriggeringEvent: " + eventType); ./src/main/java/org/folio/circulation/domain/notice/schedule/LoanScheduledNoticeService.java: throw new IllegalArgumentException("Unknown patron notice timing: " + timing); ./src/main/java/org/folio/circulation/domain/UpdateItem.java: throw new IllegalStateException("Unexpected value: " + ./src/main/java/org/folio/circulation/domain/UpdateItem.java: "Failed to check in item due to the highest priority " + ./src/main/java/org/folio/circulation/domain/UpdateItem.java: "request missing a pickup service point", ./src/main/java/org/folio/circulation/domain/notes/GeneralNoteTypeValidator.java: note -> singleValidationError("No General note type found", "noteTypes", null)) ./src/main/java/org/folio/circulation/domain/UpdateRequestQueue.java: throw new IllegalStateException("Unexpected value: " + ./src/main/java/org/folio/circulation/domain/Location.java: return String.format("Institution: `%s`, Campus: `%s`, Library: `%s` Location: `%s`", ./src/main/java/org/folio/circulation/domain/StoredRequestRepresentation.java: String msg = "Unable to add requester properties to the request: {}, requester is null."; ./src/main/java/org/folio/circulation/domain/StoredRequestRepresentation.java: String msg = "Unable to add proxy properties to request {}, proxy object is null"; ./src/main/java/org/folio/circulation/domain/StoredRequestRepresentation.java: String msg = "Unable to add item properties to the request: {}, item is {}"; ./src/main/java/org/folio/circulation/domain/RequestServiceUtility.java: return failedValidation("Item does not exist", ITEM_ID, ./src/main/java/org/folio/circulation/domain/RequestServiceUtility.java: format("%s requests are not allowed for this patron and item combination", requestTypeName), ./src/main/java/org/folio/circulation/domain/RequestServiceUtility.java: return failedValidation("A valid user and patron group are required. User is null", "userId", ./src/main/java/org/folio/circulation/domain/RequestServiceUtility.java: return failedValidation("A valid patron group is required. PatronGroup ID is null", "PatronGroupId", null); ./src/main/java/org/folio/circulation/domain/RequestServiceUtility.java: String message = "Inactive users cannot make requests"; ./src/main/java/org/folio/circulation/domain/RequestServiceUtility.java: String message = "This requester already has an open request for this item"; ./src/main/java/org/folio/circulation/domain/RequestStatus.java: return "Request status must be one of the following: " + ./src/main/java/org/folio/circulation/domain/RequestRepresentation.java: String msg = "Unable to add requester properties to the request: {}, requester is null."; ./src/main/java/org/folio/circulation/domain/RequestRepresentation.java: String msg = "Unable to add proxy properties to request {}, proxy object is null"; ./src/main/java/org/folio/circulation/domain/RequestRepresentation.java: String msg = "Unable to add item properties to the request: {}, item is {}"; ./src/main/java/org/folio/circulation/domain/RequestRepresentation.java: String msg = "Unable to add servicepoint properties to request {}, servicepoint is null"; ./src/main/java/org/folio/circulation/domain/LoanCheckInService.java: return failed(new ServerErrorFailure("No loan action to resolve claimed returned: " ./src/main/java/org/folio/circulation/domain/OpeningDay.java: requireNonNull(openingDayJson, "Json object cannot be null"); ./src/main/java/org/folio/circulation/domain/validation/UserManualBlocksValidator.java: return failIfPatronIsBlocked(requester.getId(), "Patron blocked from requesting") ./src/main/java/org/folio/circulation/domain/validation/UserManualBlocksValidator.java: return failIfPatronIsBlocked(loanAndRelatedRecords.getUserId(), "Patron blocked from borrowing") ./src/main/java/org/folio/circulation/domain/validation/UserManualBlocksValidator.java: return failIfPatronIsBlocked(renewalContext.getLoan().getUserId(), "Patron blocked from renewing") ./src/main/java/org/folio/circulation/domain/validation/RequestedByAnotherPatronValidator.java: "%s (Barcode: %s) cannot be checked out to user %s" + ./src/main/java/org/folio/circulation/domain/validation/RequestedByAnotherPatronValidator.java: " because it has been requested by another patron", ./src/main/java/org/folio/circulation/domain/validation/ClosedRequestValidator.java: v -> singleValidationError("Cannot edit a closed request", "id", requestId))); ./src/main/java/org/folio/circulation/domain/validation/NotInItemStatusValidator.java: loan -> singleValidationError(String.format("Item is not %s", ./src/main/java/org/folio/circulation/domain/validation/UserNotFoundValidator.java: loan -> singleValidationError("user is not found", "userId", loan.getUserId())); ./src/main/java/org/folio/circulation/domain/validation/ServicePointLoanLocationValidator.java: return failedValidation("Check In Service Point does not exist", ./src/main/java/org/folio/circulation/domain/validation/ServicePointLoanLocationValidator.java: return failedValidation("Check Out Service Point does not exist", ./src/main/java/org/folio/circulation/domain/validation/RequestLoanValidator.java: String message = "This requester currently has this item on loan."; ./src/main/java/org/folio/circulation/domain/validation/ServicePointOfCheckoutPresentValidator.java: r -> servicePointOfCheckoutPresentFuntion.apply("Check out must be performed at a service point")); ./src/main/java/org/folio/circulation/domain/validation/CheckInValidators.java: "Item is claimed returned, a resolution is required to check in", ./src/main/java/org/folio/circulation/domain/validation/overriding/OverridingLoanValidator.java: "Override should be performed with due date specified"; ./src/main/java/org/folio/circulation/domain/validation/overriding/OverridingLoanValidator.java: "Due date should be later than loan date"; ./src/main/java/org/folio/circulation/domain/validation/overriding/OverridingLoanValidator.java: "Override should be performed with the comment specified"; ./src/main/java/org/folio/circulation/domain/validation/ServicePointPickupLocationValidator.java: "Hold Shelf Fulfillment Requests require a Pickup Service Point", ./src/main/java/org/folio/circulation/domain/validation/ServicePointPickupLocationValidator.java: return failedValidation("Pickup service point does not exist", ./src/main/java/org/folio/circulation/domain/validation/ServicePointPickupLocationValidator.java: "Service point is not a pickup location", ./src/main/java/org/folio/circulation/domain/validation/CommonFailures.java: format("More than one open loan for item %s", itemBarcode)); ./src/main/java/org/folio/circulation/domain/validation/CommonFailures.java: format("No item with barcode %s exists", itemBarcode), ./src/main/java/org/folio/circulation/domain/validation/CommonFailures.java: return () -> singleValidationError(format("No item with ID %s exists", itemId), ./src/main/java/org/folio/circulation/domain/validation/ItemLimitValidator.java: return itemLimitErrorFunction.apply(String.format("Patron has reached maximum limit of %d items %s", ./src/main/java/org/folio/circulation/domain/validation/ItemLimitValidator.java: return "for combination of patron group, material type and loan type"; ./src/main/java/org/folio/circulation/domain/validation/ItemLimitValidator.java: return "for combination of patron group and material type"; ./src/main/java/org/folio/circulation/domain/validation/ItemLimitValidator.java: return "for combination of patron group and loan type"; ./src/main/java/org/folio/circulation/domain/validation/ItemLimitValidator.java: return "for combination of material type and loan type"; ./src/main/java/org/folio/circulation/domain/validation/ItemLimitValidator.java: return "for material type"; ./src/main/java/org/folio/circulation/domain/validation/ItemLimitValidator.java: return "for loan type"; ./src/main/java/org/folio/circulation/domain/validation/CheckOutValidators.java: "Cannot check out item via proxy when relationship is invalid", ./src/main/java/org/folio/circulation/domain/validation/CheckOutValidators.java: () -> singleValidationError(String.format("No item with barcode %s could be found", ./src/main/java/org/folio/circulation/domain/validation/CheckOutValidators.java: String.format("%s (%s) (Barcode: %s) has the item status %s and cannot be checked out", ./src/main/java/org/folio/circulation/domain/validation/ChangeDueDateValidator.java: return singleValidationError("item is " + item.getStatusName(), ./src/main/java/org/folio/circulation/domain/validation/RequestQueueValidation.java: throw new UnsupportedOperationException("Do not instantiate"); ./src/main/java/org/folio/circulation/domain/validation/RequestQueueValidation.java: "There is inconsistency between provided reordered queue and item queue.", ./src/main/java/org/folio/circulation/domain/validation/RequestQueueValidation.java: "Requests can not be displaced from position 1 when fulfillment begun."); ./src/main/java/org/folio/circulation/domain/validation/RequestQueueValidation.java: "Page requests can not be displaced from position 1."); ./src/main/java/org/folio/circulation/domain/validation/RequestQueueValidation.java: r -> singleValidationError("Positions must have sequential order.", "newPosition", null) ./src/main/java/org/folio/circulation/domain/validation/LoanValidator.java: loan -> singleValidationError("Loan is closed", "loanId", loan.getId()) ./src/main/java/org/folio/circulation/domain/validation/ExistingOpenLoanValidator.java: "Cannot check out item that already has an open loan"))) ./src/main/java/org/folio/circulation/domain/validation/ProxyRelationshipValidator.java: "User cannot be proxy for themself", "proxyUserId", ./src/main/java/org/folio/circulation/domain/validation/AlreadyCheckedOutValidator.java: r -> alreadyCheckedOutErrorFunction.apply("Item is already checked out")); ./src/main/java/org/folio/circulation/domain/validation/InactiveUserValidator.java: "Cannot check out via inactive proxying user", ./src/main/java/org/folio/circulation/domain/validation/InactiveUserValidator.java: "Cannot determine if proxying user is active or not", ./src/main/java/org/folio/circulation/domain/validation/InactiveUserValidator.java: "Cannot check out to inactive user", ./src/main/java/org/folio/circulation/domain/validation/InactiveUserValidator.java: "Cannot determine if user is active or not", ./src/main/java/org/folio/circulation/domain/validation/LoanPolicyValidator.java: loanPolicyValidationError(loanPolicy, "Item is not loanable", ./src/main/java/org/folio/circulation/domain/policy/FixedScheduleRenewalDueDateStrategy.java: "renewal date falls outside of date ranges in fixed loan policy"; ./src/main/java/org/folio/circulation/domain/policy/library/ClosedLibraryStrategyUtils.java: String message = "Calendar timetable is absent for requested date"; ./src/main/java/org/folio/circulation/domain/policy/RollingRenewalDueDateStrategy.java: "renewal date falls outside of date ranges in the loan policy"; ./src/main/java/org/folio/circulation/domain/policy/RollingRenewalDueDateStrategy.java: "the interval \"%s\" in the loan policy is not recognised"; ./src/main/java/org/folio/circulation/domain/policy/RollingRenewalDueDateStrategy.java: "the duration \"%s\" in the loan policy is invalid"; ./src/main/java/org/folio/circulation/domain/policy/RollingRenewalDueDateStrategy.java: "the loan period in the loan policy is not recognised"; ./src/main/java/org/folio/circulation/domain/policy/RollingRenewalDueDateStrategy.java: "cannot determine when to renew from"; ./src/main/java/org/folio/circulation/domain/policy/FixedScheduleCheckOutDueDateStrategy.java: "loan date falls outside of the date ranges in the loan policy"; ./src/main/java/org/folio/circulation/domain/policy/RollingCheckOutDueDateStrategy.java: "loan date falls outside of the date ranges in the loan policy"; ./src/main/java/org/folio/circulation/domain/policy/RollingCheckOutDueDateStrategy.java: "the interval \"%s\" in the loan policy is not recognised"; ./src/main/java/org/folio/circulation/domain/policy/RollingCheckOutDueDateStrategy.java: "the duration \"%s\" in the loan policy is invalid"; ./src/main/java/org/folio/circulation/domain/policy/RollingCheckOutDueDateStrategy.java: "the loan period in the loan policy is not recognised"; ./src/main/java/org/folio/circulation/domain/policy/UnknownDueDateStrategy.java: "profile \"%s\" in the loan policy is not recognised"; ./src/main/java/org/folio/circulation/domain/policy/UnknownDueDateStrategy.java: "profile \"%s\" in the loan policy is not recognised"; ./src/main/java/org/folio/circulation/domain/policy/LoanPolicy.java: private static final String INTERVAL_ERROR_TEXT = "the interval \"%s\" in \"%s\" is not recognized"; ./src/main/java/org/folio/circulation/domain/policy/LoanPolicy.java: private static final String DURATION_ERROR_TEXT = "the duration \"%s\" in \"%s\" is invalid"; ./src/main/java/org/folio/circulation/domain/policy/LoanPolicy.java: () -> loanPolicyValidationError(format("the \"%s\" in the loan policy is not recognized", key)), ./src/main/java/org/folio/circulation/domain/LoanRepresentation.java: + " servicepoint is null", loanRepresentation.getString("id")); ./src/main/java/org/folio/circulation/domain/LoanRepresentation.java: + " borrower is null", loanRepresentation.getString("id")); ./src/main/java/org/folio/circulation/services/agedtolost/ChargeLostFeesWhenAgedToLostService.java: return failed(singleValidationError("No fee/fine owner found for item's effective location", ./src/main/java/org/folio/circulation/services/agedtolost/ChargeLostFeesWhenAgedToLostService.java: return failed(singleValidationError("No automated Lost item fee type found", ./src/main/java/org/folio/circulation/services/agedtolost/ChargeLostFeesWhenAgedToLostService.java: return failed(singleValidationError("No automated Lost item processing fee type found", ./src/main/java/org/folio/circulation/services/LostItemFeeRefundService.java: "Last loan for lost item is neither aged to lost nor declared lost", ./src/main/java/org/folio/circulation/services/LostItemFeeRefundService.java: "Item is lost however there is no aged to lost nor declared lost loan found", ./src/main/java/org/folio/circulation/services/LostItemFeeChargingService.java: return failed(singleValidationError("Expected automated fee of type " + type, ./src/main/java/org/folio/circulation/services/LostItemFeeChargingService.java: context -> singleValidationError("No fee/fine owner found for item's permanent location",