All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.dakusui.jcunit8.factorspace.ParameterSpace Maven / Gradle / Ivy

package com.github.dakusui.jcunit8.factorspace;

import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;

public interface ParameterSpace {
  List getParameterNames();

  

Parameter

getParameter(String name); List getConstraints(); class Builder { List parameters = new LinkedList<>(); List constraints = new LinkedList<>(); public Builder addParameter(Parameter parameter) { this.parameters.add(parameter); return this; } public Builder addAllParameters(Collection parameters) { parameters.forEach(Builder.this::addParameter); return this; } public Builder addConstraint(Constraint constraint) { this.constraints.add(constraint); return this; } public Builder addAllConstraints(Collection constraints) { constraints.forEach(Builder.this::addConstraint); return this; } public ParameterSpace build() { return new ParameterSpace() { @Override public List getParameterNames() { return parameters.stream().map(Parameter::getName).collect(Collectors.toList()); } @Override public

Parameter

getParameter(String name) { //noinspection unchecked,OptionalGetWithoutIsPresent return (Parameter

) (parameters .stream() .filter(parameter -> parameter.getName().equals(name)) .findFirst().>get()); } @Override public List getConstraints() { return Collections.unmodifiableList(constraints); } @Override public String toString() { return String.format("parameters:%s,constraints:%s", parameters, constraints); } }; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy