RepositoryService.java
package com.saltynote.service.service;
import com.saltynote.service.domain.Identifiable;
import lombok.NonNull;
import java.util.Optional;
public interface RepositoryService<K, T extends Identifiable> {
T create(T entity);
T update(T entity);
Optional<T> getById(K id);
void delete(T entity);
default void checkIdExists(@NonNull T entity) {
if (!hasValidId(entity)) {
throw new IllegalArgumentException("Id must not be empty: " + entity);
}
}
default boolean hasValidId(@NonNull T entity) {
return entity.getId() != null && !entity.getId().isBlank();
}
}