package org.springframework.roo.addon.layers.repository.jpa.addon; import org.springframework.roo.model.JavaPackage; import org.springframework.roo.model.JavaType; /** * @author Stefan Schmidt * @author Juan Carlos García * @author Jose Manuel Vivó * @since 1.2.0 */ public interface RepositoryJpaOperations { /** * Checks if it's possible to generate new repositories on current project. * * @return true if is possible to generate new repositories. If not, return * false */ boolean isRepositoryInstallationPossible(); /** * Add new repository related with some existing entity. * * @param interfaceType new JavaType representing the interface that will be generated. * @param domainType the JavaType representing the domain entity this repository should expose. * @param defaultReturnType the JavaType of the findAll search results. * @param failOnComposition whatever should fail if a should-not-generate-repository-entity is received as parameter */ void addRepository(JavaType interfaceType, JavaType domainType, JavaType defaultReturnType, boolean failOnComposition); /** * Add new repository for all existing entities. * * @param repositoriesPackage package where repositories will be generated */ void generateAllRepositories(JavaPackage repositoriesPackage); /** * Informs a DomainType (entity) should or shouldn't has a repository. * * Entity shouldn't generate repository when is the child part of * one-to-one composition relation (as it's managed by parent). * * @param domainType * @return */ boolean shouldGenerateRepository(JavaType domainType); }