package org.sculptor.examples.library.media.repositoryimpl; import static org.sculptor.examples.library.media.domain.LibraryProperties.name; import static org.sculptor.framework.accessapi.ConditionalCriteriaBuilder.criteriaFor; import java.util.List; import org.sculptor.examples.library.media.domain.Library; import org.sculptor.examples.library.media.exception.LibraryNotFoundException; import org.sculptor.framework.errorhandling.ValidationException; import org.springframework.stereotype.Repository; /** * Repository implementation for Library */ @Repository("libraryRepository") public class LibraryRepositoryImpl extends LibraryRepositoryBase { public LibraryRepositoryImpl() { } @Override public Library findLibraryByName(String name) throws LibraryNotFoundException { List<Library> result = findByCondition(criteriaFor(Library.class).withProperty(name()).eq(name).build()); if (result.isEmpty()) { throw new LibraryNotFoundException("Library not found: " + name); } else { return result.get(0); } } @Override public Library save(Library entity) { if (entity.getName().equals("err")) { throw new RuntimeException("SimulatedRuntimeException"); } if (entity.getName().equals("validation")) { throw new ValidationException("foo", "Simulated validation exception"); } return super.save(entity); } }