package org.axway.grapes.server.core.options.filters;
import org.axway.grapes.server.db.datamodel.DbArtifact;
import org.axway.grapes.server.db.datamodel.DbLicense;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class LicenseIdFilter implements Filter {
private String licenseId;
/**
* The parameter must never be null
*
* @param licenseId
*/
public LicenseIdFilter(final String licenseId) {
this.licenseId = licenseId;
}
@Override
public boolean filter(final Object datamodelObj) {
if(datamodelObj instanceof DbLicense){
return licenseId.equals( ((DbLicense)datamodelObj).getName());
}
if(datamodelObj instanceof DbArtifact){
return ((DbArtifact)datamodelObj).getLicenses().contains(licenseId);
}
return false;
}
@Override
public Map<String, Object> moduleFilterFields() {
return Collections.emptyMap();
}
@Override
public Map<String, Object> artifactFilterFields() {
final Map<String, Object> queryParams = new HashMap<String, Object>();
queryParams.put(DbArtifact.LICENCES_DB_FIELD, licenseId);
return queryParams;
}
}