/** * Attempts to validate the provided {@code JobParameters}. If the JobParameters is valid, null * will be returned. If the JobParameters has errors, a list of those errors will be returned. */ @Nullable @Override @CallSuper public List<String> validate(@NonNull JobParameters job) { List<String> errors; errors = mergeErrorLists(null, validate(job.getTrigger())); errors = mergeErrorLists(errors, validate(job.getRetryStrategy())); if (job.isRecurring() && job.getTrigger() == Trigger.NOW) { errors = addError(errors, "ImmediateTriggers can't be used with recurring jobs"); } errors = mergeErrorLists(errors, validateForTransport(job.getExtras())); if (job.getLifetime() > Lifetime.UNTIL_NEXT_BOOT) { // noinspection ConstantConditions errors = mergeErrorLists(errors, validateForPersistence(job.getExtras())); } errors = mergeErrorLists(errors, validateTag(job.getTag())); errors = mergeErrorLists(errors, validateService(job.getService())); return errors; }