}
}
Domain domain = null;
if (hostnameRequirement != null) {
for (Domain d : store.getDomains()) {
HostnameSpecification spec = null;
for (DomainSpecification s : d.getSpecifications()) {
if (s instanceof HostnameSpecification) {
spec = (HostnameSpecification) s;
break;
}
}
if (spec != null && spec.test(hostnameRequirement).isMatch() && d.test(requirements)) {
domain = d;
break;
}
}
}
if (domain == null) {
if (hostnameRequirement != null) {
List<DomainSpecification> specs = new ArrayList<DomainSpecification>();
specs.add(
new HostnameSpecification(hostnameRequirement.getHostname(), null));
if (schemeRequirement != null) {
specs.add(new SchemeSpecification(schemeRequirement.getScheme()));
}
domain = new Domain(hostnameRequirement.getHostname(), null, specs);
if (store.addDomain(domain, credential)) {