/************************************************************************* * * * CESeCore: CE Security Core * * * * This software is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or any later version. * * * * See terms of license at gnu.org. * * * *************************************************************************/ package org.cesecore.keys.validation; import java.util.AbstractMap; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ExecutorService; import org.cesecore.profiles.Profile; import org.cesecore.util.ui.DynamicUiModel; /** * @version $Id: DnsNameValidatorMock.java 29516 2018-07-20 17:24:47Z bastianf $ * */ public class DnsNameValidatorMock extends ValidatorBase implements DnsNameValidator { private static final long serialVersionUID = 1L; private static final String DOMAIN_NAMES_KEY = "domainNames"; private transient Set domainNames; public DnsNameValidatorMock() { super(); setDomainNames(new HashSet()); } public DnsNameValidatorMock(String name, String... domainNames) { super(name); setDomainNames(new HashSet<>(Arrays.asList(domainNames))); } @Override public void initDynamicUiModel() { // NOOP } @Override public DynamicUiModel getDynamicUiModel() { return null; } @Override public String getValidatorTypeIdentifier() { return null; } @Override public String getLabel() { return null; } @Override public Class getValidatorSubType() { return DnsNameValidator.class; } @Override public Entry> validate(final ExecutorService executorService, final String... domainNames) { //Return all domain names that overlap with those preset in this validator. List result = new ArrayList<>(); for(String domainName : domainNames) { if(getDomainNames().contains(domainName)) { result.add(domainName); } } if(result.size() != getDomainNames().size()) { throw new IllegalStateException("Test failed, wrong set of domain names was sent in."); } return new AbstractMap.SimpleImmutableEntry>(Boolean.TRUE, new ArrayList()); } @Override public String getIssuer() { return ""; } @Override public Set getIssuers() { return new HashSet(); } @Override protected Class getImplementationClass() { return DnsNameValidatorMock.class; } public Set getDomainNames() { return domainNames; } public void setDomainNames(Set domainNames) { this.domainNames = domainNames; saveTransientObjects(); } @SuppressWarnings("unchecked") @Override protected void loadTransientObjects() { super.loadTransientObjects(); this.domainNames = (Set) data.get(DOMAIN_NAMES_KEY); } @Override protected void saveTransientObjects() { super.saveTransientObjects(); //Here we return all sequences to be persisted. Map transientObjects = new HashMap<>(); if (getDomainNames() != null) { transientObjects.put(DOMAIN_NAMES_KEY, getDomainNames()); } data.putAll(transientObjects); } }