argos/dmp-backend/src/main/java/eu/eudat/builders/BuilderFactoryImpl.java

31 lines
1.5 KiB
Java

package eu.eudat.builders;
import eu.eudat.builders.entity.*;
import eu.eudat.builders.model.criteria.DataRepositoryCriteriaBuilder;
import eu.eudat.builders.model.criteria.RegistryCriteriaBuilder;
import eu.eudat.builders.model.models.DataTableDataBuilder;
import eu.eudat.builders.model.models.PrincipalBuilder;
import eu.eudat.builders.model.models.ProjectBuilder;
import org.springframework.stereotype.Service;
/**
* Created by ikalyvas on 2/15/2018.
*/
@Service("builderFactory")
public class BuilderFactoryImpl implements BuilderFactory {
public <T extends Builder> T getBuilder(Class<T> tClass) {
if (tClass.equals(CredentialBuilder.class)) return (T) new CredentialBuilder();
if (tClass.equals(DataRepositoryCriteriaBuilder.class)) return (T) new DataRepositoryCriteriaBuilder();
if (tClass.equals(DatasetProfileBuilder.class)) return (T) new DatasetProfileBuilder();
if (tClass.equals(DataTableDataBuilder.class)) return (T) new DataTableDataBuilder<>();
if (tClass.equals(PrincipalBuilder.class)) return (T) new PrincipalBuilder();
if (tClass.equals(ProjectBuilder.class)) return (T) new ProjectBuilder();
if (tClass.equals(RegistryCriteriaBuilder.class)) return (T) new RegistryCriteriaBuilder();
if (tClass.equals(UserInfoBuilder.class)) return (T) new UserInfoBuilder();
if (tClass.equals(UserRoleBuilder.class)) return (T) new UserRoleBuilder();
if (tClass.equals(UserTokenBuilder.class)) return (T) new UserTokenBuilder();
return null;
}
}