registry-publisher/src/main/java/org/gcube/informationsystem/publisher/scope/ValidatorProvider.java

31 lines
772 B
Java

package org.gcube.informationsystem.publisher.scope;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.gcube.common.resources.gcore.Resource;
public class ValidatorProvider {
private static Map<Class, Validator> validatorsMap= new LinkedHashMap<Class, Validator>();
public static Validator getValidator(Resource resource){
Validator validator=null;
if(validatorsMap.isEmpty()){
IValidatorContext context= ScopeValidatorScanner.provider();
List<Validator> validators=context.getValidators();
for(Validator v :validators){
validatorsMap.put(v.type(), v);
}
}
validator=validatorsMap.get(resource.getClass());
if (validator==null)
validator=new DefaultScopeValidator();
return validator;
}
}