package org.ovirt.engine.core.searchbackend;
import org.ovirt.engine.core.common.config.Config;
import org.ovirt.engine.core.common.config.ConfigValues;
public class SyntaxCheckerFactory {
private static final String UISyntaxChecker = "UISyntaxChecker";
private static final String BackendSyntaxChecker = "BackendSyntaxChecker";
private static final String ADSyntaxChecker = "ADSyntaxChecker";
private static final java.util.HashMap<String, ISyntaxChecker> syntaxCheckers =
new java.util.HashMap<String, ISyntaxChecker>();
private static String ConfigAuthenticationMethod;
// This method is for used in client side by uicommon, which cannot access
// server side config, so needs to get the auth method as a parameter.
public static ISyntaxChecker CreateUISyntaxChecker(String AuthenticationMethod) {
ConfigAuthenticationMethod = AuthenticationMethod;
synchronized (syntaxCheckers) {
if (!syntaxCheckers.containsKey(UISyntaxChecker)) {
SyntaxChecker checker = new SyntaxChecker(100, true);
syntaxCheckers.put(UISyntaxChecker, checker);
}
return syntaxCheckers.get(UISyntaxChecker);
}
}
public static ISyntaxChecker CreateBackendSyntaxChecker(String AuthenticationMethod) {
ConfigAuthenticationMethod = AuthenticationMethod;
synchronized (syntaxCheckers) {
if (!syntaxCheckers.containsKey(BackendSyntaxChecker)) {
SyntaxChecker checker = new SyntaxChecker(Config.<Integer> GetValue(ConfigValues.SearchResultsLimit),
true);
syntaxCheckers.put(BackendSyntaxChecker, checker);
}
return syntaxCheckers.get(BackendSyntaxChecker);
}
}
public static ISyntaxChecker CreateADSyntaxChecker(String AuthenticationMethod) {
ConfigAuthenticationMethod = AuthenticationMethod;
synchronized (syntaxCheckers) {
if (!syntaxCheckers.containsKey(ADSyntaxChecker)) {
ADSyntaxChecker checker = new ADSyntaxChecker();
syntaxCheckers.put(ADSyntaxChecker, checker);
}
return syntaxCheckers.get(ADSyntaxChecker);
}
}
public static String getConfigAuthenticationMethod() {
return ConfigAuthenticationMethod;
}
}