package org.axway.grapes.server.materials; import org.axway.grapes.server.GrapesTestUtils; import org.axway.grapes.server.core.options.FiltersHolder; import org.axway.grapes.server.db.DataUtils; import org.axway.grapes.server.db.RepositoryHandler; import org.axway.grapes.server.db.datamodel.*; import org.axway.grapes.server.materials.cases.DependencyCase; import java.util.ArrayList; import java.util.List; /** * Repository Handler * * <p>Mock implemented for testing purposes.</p> * * @author jdcoffre */ public class TestingRepositoryHandler implements RepositoryHandler { private final List<DbCredential> credentials = new ArrayList<DbCredential>(); private final List<DbOrganization> organizations = new ArrayList<DbOrganization>(); private final List<DbModule> modules = new ArrayList<DbModule>(); private final List<DbArtifact> artifacts = new ArrayList<DbArtifact>(); private final List<DbLicense> licenses = new ArrayList<DbLicense>(); @Override public void store(final DbCredential credential) { final DbCredential dbCredential = getCredential(credential.getUser()); if(dbCredential != null){ credentials.remove(dbCredential); } credentials.add(credential); } @Override public void addUserRole(String user, DbCredential.AvailableRoles role) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void removeUserRole(String user, DbCredential.AvailableRoles role) { //To change body of implemented methods use File | Settings | File Templates. } public DbCredential getCredential(final String user) { for(DbCredential dbCredential: credentials){ if(dbCredential.getUser().equals(user)){ return dbCredential; } } return null; } @Override public void store(final DbLicense license) { final DbLicense dbLicense = getLicense(license.getName()); if(dbLicense != null){ licenses.remove(dbLicense); } licenses.add(license); } @Override public List<DbLicense> getAllLicenses() { return licenses; } @Override public DbLicense getLicense(final String name) { for(DbLicense dbLicense: licenses){ if(dbLicense.getName().equals(name)){ return dbLicense; } } return null; } @Override public void deleteLicense(String name) { //To change body of implemented methods use File | Settings | File Templates. } @Override public List<DbArtifact> getArtifacts(final FiltersHolder filters) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public void addLicenseToArtifact(DbArtifact artifact, String licenseId) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void removeLicenseFromArtifact(DbArtifact artifact, String name) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void approveLicense(final DbLicense license, final Boolean approved) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void store(final DbArtifact dbArtifact) { artifacts.add(dbArtifact); } @Override public List<String> getGavcs(final FiltersHolder filters) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public List<String> getGroupIds(FiltersHolder filters) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public List<String> getArtifactVersions(final DbArtifact artifact) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public DbArtifact getArtifact(final String gavc) { for(DbArtifact artifact: artifacts){ if(artifact.getGavc().equals(gavc)){ return artifact; } } return null; } @Override public void deleteArtifact(final String gavc) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void updateDoNotUse(DbArtifact artifact, Boolean doNotUse) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void updateDownloadUrl(DbArtifact artifact, String downLoadUrl) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void updateProvider(DbArtifact artifact, String provider) { //To change body of implemented methods use File | Settings | File Templates. } @Override public List<DbModule> getAncestors(final DbArtifact artifact, FiltersHolder filters) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public void store(final DbModule dbModule) { dbModule.updateHasAndUse(); modules.add(dbModule); } @Override public List<String> getModuleNames(final FiltersHolder filters) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public List<String> getModuleVersions(final String name, final FiltersHolder filters) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public DbModule getModule(final String moduleId) { for(DbModule module: modules){ if(module.getId().equals(moduleId)){ return module; } } return null; } @Override public List<DbModule> getModules(FiltersHolder filters) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override public void deleteModule(final String moduleId) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void promoteModule(final DbModule module) { //To change body of implemented methods use File | Settings | File Templates. } @Override public DbModule getRootModuleOf(final String gavc) { for(DbModule module: modules){ module.updateHasAndUse(); if(module.getHas().contains(gavc)){ return module; } } return null; } @Override public DbModule getModuleOf(final String gavc) { for(DbModule module: modules){ if(module.getHas().contains(gavc)){ return module; } for(DbModule submodule: DataUtils.getAllSubmodules(module)){ if(submodule.getHas().contains(gavc)){ return submodule; } } } return null; } @Override public List<String> getOrganizationNames() { List<String> names = new ArrayList<String>(); for(DbOrganization organization: organizations){ names.add(organization.getName()); } return names; } @Override public DbOrganization getOrganization(String name) { for(DbOrganization organization: organizations){ if(name.equals(organization.getName())){ return organization; } } return null; } @Override public void deleteOrganization(String organizationId) { organizations.remove(getOrganization(organizationId)); } @Override public void store(DbOrganization organization) { organizations.add(organization); } @Override public void addModulesOrganization(String corporateGroupId, DbOrganization dbOrganization) { } @Override public void removeModulesOrganization(String corporateGroupId, DbOrganization dbOrganization) { } @Override public void removeModulesOrganization(DbOrganization dbOrganization) { } @Override public List<DbOrganization> getAllOrganizations() { return organizations; } @Override public void store(DbProduct dbProduct) { } @Override public DbProduct getProduct(String name) { return null; } @Override public List<String> getProductNames() { return null; } @Override public void deleteProduct(String name) { } @Override public List<String> getLicenseNames(final FiltersHolder filters) { final List<String> names = new ArrayList<String>(); for(DbLicense license: licenses){ if(filters.shouldBeInReport(license)){ names.add(license.getName()); } } return names; } public List<DbModule> getTargetedModules(final List<DbDependency> dependencies) { final List<String> treatedModuleId = new ArrayList<String>(); final List<DbModule> axModuleDeps = new ArrayList<DbModule>(); for(DbDependency dependency: dependencies){ final DbModule module = getModule(dependency.getTarget()); if(!treatedModuleId.contains(module.getId())){ axModuleDeps.add(module); treatedModuleId.add(module.getId()); } } return axModuleDeps; } public void loadTestCase(final DependencyCase testCase) { final DbOrganization organization = new DbOrganization(); organization.setName(GrapesTestUtils.ORGANIZATION_NAME_4TEST); organization.getCorporateGroupIdPrefixes().add(GrapesTestUtils.CORPORATE_GROUPID_4TEST); store(organization); for(DbModule module: testCase.dbModulesToLoad()){ store(module); } for(DbArtifact artifact: testCase.dbArtifactsToLoad()){ store(artifact); } for(DbLicense license: testCase.dbLicensesToLoad()){ store(license); } } }