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

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

package com.github.dakusui.jcunit8.factorspace;

import java.util.*;

import static java.lang.String.format;

public interface FactorSpace {
  static FactorSpace create(List factors, List constraints) {
    List work = new ArrayList<>(constraints);
    return new FactorSpace() {
      Map factorMap = new LinkedHashMap() {{
        factors.forEach(each -> put(each.getName(), each));
      }};

      @Override
      public List getFactors() {
        //noinspection unchecked
        return (List) factors;
      }

      @Override
      public Factor getFactor(String name) {
        return factorMap.get(name);
      }

      @Override
      public List getConstraints() {
        return work;
      }

      @Override
      public String toString() {
        return format("factors:%s,constraints:%s", factors, constraints);
      }
    };
  }

  List getConstraints();

  List getFactors();

  Factor getFactor(String name);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy