package org.ovirt.engine.core.bll.adbroker; public class MultipleLdapQueryExecutionFormatter extends LdapQueryExecutionFormatterBase { private String prefix; private String suffix; MultipleLdapQueryExecutionFormatter(String prefix, String suffix) { this.prefix = prefix; this.suffix = suffix; } @Override protected String getDisplayFilter(LdapQueryMetadata queryMetadata) { // The display filter uses the regular parameters, because the encoded ones may not be readable return getFilter(queryMetadata, queryMetadata.getQueryData().getFilterParameters()); } @Override public LdapQueryExecution format(LdapQueryMetadata queryMetadata) { String displayFilter = getDisplayFilter(queryMetadata); Object[] encodedFilterParameters = getEncodedParameters(queryMetadata.getQueryData().getFilterParameters(), queryMetadata.getLdapGuidEncoder()); String filter = getFilter(queryMetadata, encodedFilterParameters); String baseDN = String.format(queryMetadata.getBaseDN(), getEncodedParameters(queryMetadata.getQueryData().getBaseDNParameters(), queryMetadata.getLdapGuidEncoder())); return new LdapQueryExecution(filter, displayFilter, baseDN, queryMetadata.getContextMapper(), queryMetadata.getSearchScope(), queryMetadata.getReturningAttributes(), queryMetadata.getQueryData().getDomain()); } protected String getFilter(LdapQueryMetadata queryMetadata, Object[] filterParameters) { String filter = prefix; for (Object currObject : filterParameters) { filter += String.format(queryMetadata.getFilter(), currObject); } filter += suffix; return filter; } public String getPrefix() { return prefix; } public void setPrefix(String prefix) { this.prefix = prefix; } public String getSuffix() { return suffix; } public void setSuffix(String suffix) { this.suffix = suffix; } }