package org.needle4j.configuration; import java.lang.annotation.Annotation; import java.util.Set; import org.needle4j.injection.InjectionProvider; import org.needle4j.injection.InjectionProviderInstancesSupplier; public final class NeedleConfiguration implements Cloneable { private Set<Class<Annotation>> customInjectionAnnotations; private Set<Class<InjectionProvider<?>>> customInjectionProviderClasses; private Set<Class<InjectionProviderInstancesSupplier>> customInjectionProviderInstancesSupplierClasses; private String persistenceunitName; private String hibernateCfgFilename; private String mockProviderClassName; private String dbOperationClassName; private String jdbcUrl; private String jdbcDriver; private String jdbcUser; private String jdbcPassword; private PostConstructExecuteStrategy postConstructExecuteStrategy; /** * Returns the configured custom {@link Annotation} classes for default mock * injections. * * @return a {@link Set} of {@link Annotation} classes */ public Set<Class<Annotation>> getCustomInjectionAnnotations() { return customInjectionAnnotations; } public void setCustomInjectionAnnotations(final Set<Class<Annotation>> customInjectionAnnotations) { this.customInjectionAnnotations = customInjectionAnnotations; } /** * Returns the configured custom {@link InjectionProvider} classes. * * @return a {@link Set} of {@link InjectionProvider} classes */ public Set<Class<InjectionProvider<?>>> getCustomInjectionProviderClasses() { return customInjectionProviderClasses; } public void setCustomInjectionProviderClasses(final Set<Class<InjectionProvider<?>>> customInjectionProviderClasses) { this.customInjectionProviderClasses = customInjectionProviderClasses; } /** * Returns the configured database operation class name. * * @return database operation class name or null */ public String getDBOperationClassName() { return dbOperationClassName; } public void setDBOperationClassName(final String dbOperationClassName) { this.dbOperationClassName = dbOperationClassName; } public String getJdbcUrl() { return jdbcUrl; } public void setJdbcUrl(final String jdbcUrl) { this.jdbcUrl = jdbcUrl; } public String getJdbcDriver() { return jdbcDriver; } public void setJdbcDriver(final String jdbcDriver) { this.jdbcDriver = jdbcDriver; } public String getJdbcUser() { return jdbcUser; } public void setJdbcUser(final String jdbcUser) { this.jdbcUser = jdbcUser; } public String getJdbcPassword() { return jdbcPassword; } public void setJdbcPassword(final String jdbcPassword) { this.jdbcPassword = jdbcPassword; } /** * Returns the name of the configured mock provider class * * @return mock provider class name or null */ public String getMockProviderClassName() { return mockProviderClassName; } public void setMockProviderClassName(final String mockProviderClassName) { this.mockProviderClassName = mockProviderClassName; } /** * Returns the configured jpa persistence unit name. * * @return jpa persistence unit name */ public String getPersistenceunitName() { return persistenceunitName; } public void setPersistenceunitName(final String persistenceunitName) { this.persistenceunitName = persistenceunitName; } /** * Returns the name of the configured hibernate.cfg file * * @return name of hibernate.cfg file */ public String getHibernateCfgFilename() { return hibernateCfgFilename; } public void setHibernateCfgFilename(final String hibernateCfgFilename) { this.hibernateCfgFilename = hibernateCfgFilename; } public Set<Class<InjectionProviderInstancesSupplier>> getCustomInjectionProviderInstancesSupplierClasses() { return customInjectionProviderInstancesSupplierClasses; } public void setCustomInjectionProviderInstancesSupplierClasses( final Set<Class<InjectionProviderInstancesSupplier>> supplier) { this.customInjectionProviderInstancesSupplierClasses = supplier; } public PostConstructExecuteStrategy getPostConstructExecuteStrategy() { return postConstructExecuteStrategy; } public void setPostConstructExecuteStrategy(final PostConstructExecuteStrategy postConstructExecuteStrategy) { this.postConstructExecuteStrategy = postConstructExecuteStrategy; } @Override public String toString() { final StringBuilder builder = new StringBuilder(); builder.append("\nPU_NAME=").append(getPersistenceunitName()); builder.append("\nCFG_FILE=").append(getHibernateCfgFilename()); builder.append("\nDB_OPERATION=").append(getDBOperationClassName()); builder.append("\nMOCK_PROVIDER=").append(getMockProviderClassName()); return builder.toString(); } @Override public NeedleConfiguration clone() throws CloneNotSupportedException { return (NeedleConfiguration) super.clone(); } }