package org.axway.grapes.server.core.options;
import org.axway.grapes.commons.api.ServerAPI;
import org.axway.grapes.commons.datamodel.Scope;
import org.axway.grapes.server.db.datamodel.DbDependency;
import javax.ws.rs.core.MultivaluedMap;
public class ScopeHandler {
/** Value - {@value}, boolean query parameter used to filter dependencies.
* Default value: true. */
private Boolean scopeComp = true;
/** Value - {@value}, boolean query parameter used to filter dependencies.
* Default value: false. */
private Boolean scopeRun = false;
/** Value - {@value}, boolean query parameter used to filter dependencies.
* Default value: true. */
private Boolean scopePro = true;
/** Value - {@value}, boolean query parameter used to filter dependencies.
* Default value: false. */
private Boolean scopeTest = false;
public ScopeHandler(){
// Default value init
}
/**
* The parameter must never be null
*
* @param queryParameters
*/
public void init(final MultivaluedMap<String, String> queryParameters) {
final String scopeCompileParam = queryParameters.getFirst(ServerAPI.SCOPE_COMPILE_PARAM);
if(scopeCompileParam != null){
this.scopeComp = Boolean.valueOf(scopeCompileParam);
}
final String scopeProvidedParam = queryParameters.getFirst(ServerAPI.SCOPE_PROVIDED_PARAM);
if(scopeProvidedParam != null){
this.scopePro = Boolean.valueOf(scopeProvidedParam);
}
final String scopeRuntimeParam = queryParameters.getFirst(ServerAPI.SCOPE_RUNTIME_PARAM);
if(scopeRuntimeParam != null){
this.scopeRun = Boolean.valueOf(scopeRuntimeParam);
}
final String scopeTestParam = queryParameters.getFirst(ServerAPI.SCOPE_TEST_PARAM);
if(scopeTestParam != null){
this.scopeTest = Boolean.valueOf(scopeTestParam);
}
}
public boolean filter(final DbDependency datamodelObj) {
if(!scopeComp && ((DbDependency)datamodelObj).getScope().equals(Scope.COMPILE)){
return false;
}
if(!scopePro && ((DbDependency)datamodelObj).getScope().equals(Scope.PROVIDED)){
return false;
}
if(!scopeRun && ((DbDependency)datamodelObj).getScope().equals(Scope.RUNTIME)){
return false;
}
if(!scopeTest && ((DbDependency)datamodelObj).getScope().equals(Scope.TEST)){
return false;
}
return true;
}
public Boolean getScopeComp() {
return scopeComp;
}
public void setScopeComp(final Boolean scopeComp) {
this.scopeComp = scopeComp;
}
public Boolean getScopeRun() {
return scopeRun;
}
public void setScopeRun(final Boolean scopeRun) {
this.scopeRun = scopeRun;
}
public Boolean getScopePro() {
return scopePro;
}
public void setScopePro(final Boolean scopePro) {
this.scopePro = scopePro;
}
public Boolean getScopeTest() {
return scopeTest;
}
public void setScopeTest(final Boolean scopeTest) {
this.scopeTest = scopeTest;
}
}