// Path: src/main/java/io/usethesource/criterion/api/JmhMap.java
// public interface JmhMap extends Iterable<JmhValue>, JmhValue {
// 
//   public boolean isEmpty();
// 
//   public int size();
// 
//   public JmhMap put(JmhValue key, JmhValue value);
// 
//   public JmhMap removeKey(JmhValue key);
// 
//   /**
//    * @return the value that is mapped to this key, or null if no such value exists
//    */
//   public JmhValue get(JmhValue key);
// 
//   public boolean containsKey(JmhValue key);
// 
//   public boolean containsValue(JmhValue value);
// 
//   /**
//    * @return an iterator over the keys of the map
//    */
//   @Override
//   public Iterator<JmhValue> iterator();
// 
//   /**
//    * @return an iterator over the values of the map
//    */
//   public Iterator<JmhValue> valueIterator();
// 
//   /**
//    * @return an iterator over the keys-value pairs of the map
//    */
//   public Iterator<Entry<JmhValue, JmhValue>> entryIterator();
// 
//   public static interface Builder extends JmhBuilder {
// 
//     void put(JmhValue key, JmhValue value);
// 
//     void putAll(JmhMap map);
// 
//     void putAll(Map<JmhValue, JmhValue> map);
// 
//     @Override
//     JmhMap done();
// 
//   }
// 
// }
// 
// Path: src/main/java/io/usethesource/criterion/api/JmhSet.java
// public interface JmhSet extends JmhValue, Iterable<JmhValue> {
// 
//   boolean isEmpty();
// 
//   int size();
// 
//   boolean contains(JmhValue element);
// 
//   JmhSet insert(JmhValue element);
// 
//   JmhSet delete(JmhValue elem);
// 
//   default boolean subsetOf(JmhSet other) {
//      throw new UnsupportedOperationException();
//   }
// 
//   default JmhSet union(JmhSet other) {
//     throw new UnsupportedOperationException();
//   }
// 
//   default JmhSet subtract(JmhSet other) {
//     throw new UnsupportedOperationException();
//   }
// 
//   default JmhSet intersect(JmhSet other) {
//     throw new UnsupportedOperationException();
//   }
// 
//   @Override
//   Iterator<JmhValue> iterator();
// 
//   @Deprecated
//   java.util.Set<JmhValue> asJavaSet();
// 
//   interface Builder extends JmhBuilder {
// 
//     @Deprecated
//     default void insert(JmhValue value) {
//       insert(new JmhValue[]{value});
//     }
// 
//     void insert(JmhValue... v);
// 
//     void insertAll(Iterable<? extends JmhValue> collection);
// 
//     @Override
//     JmhSet done();
// 
//   }
// 
// }
// 
// Path: src/main/java/io/usethesource/criterion/api/JmhValueFactory.java
// public interface JmhValueFactory {
// 
//   static RuntimeException FACTORY_NOT_YET_IMPLEMENTED_EXCEPTION =
//       new UnsupportedOperationException("Not yet implemented.");
// 
//   // default JmhSet set() {
//   // return setBuilder().done();
//   // }
// 
//   default JmhSet.Builder setBuilder() {
//     throw FACTORY_NOT_YET_IMPLEMENTED_EXCEPTION;
//   }
// 
//   // default JmhMap map() {
//   // return mapBuilder().done();
//   // }
// 
//   default JmhMap.Builder mapBuilder() {
//     throw FACTORY_NOT_YET_IMPLEMENTED_EXCEPTION;
//   }
// 
//   // default JmhSetMultimap setMulimap() {
//   // return setMultimapBuilder().done();
//   // }
// 
//   default JmhSetMultimap.Builder setMultimapBuilder() {
//     throw FACTORY_NOT_YET_IMPLEMENTED_EXCEPTION;
//   }
// 
// }


import io.usethesource.criterion.api.JmhMap;
import io.usethesource.criterion.api.JmhSet;
import io.usethesource.criterion.api.JmhValueFactory;
/**
 * Copyright (c) Michael Steindorfer <Centrum Wiskunde & Informatica> and Contributors.
 * All rights reserved.
 *
 * This file is licensed under the BSD 2-Clause License, which accompanies this project
 * and is available under https://opensource.org/licenses/BSD-2-Clause.
 */
package io.usethesource.criterion.impl.persistent.pcollections;


public class PcollectionsValueFactory implements JmhValueFactory {

  @Override
  public JmhSet.Builder setBuilder() {
    return new PcollectionsSetBuilder();
  }

  @Override
  public JmhMap.Builder mapBuilder() {
    return new PcollectionsMapBuilder();
  }

  @Override
  public String toString() {
// Path: src/main/java/io/usethesource/criterion/api/JmhMap.java
// public interface JmhMap extends Iterable<JmhValue>, JmhValue {
// 
//   public boolean isEmpty();
// 
//   public int size();
// 
//   public JmhMap put(JmhValue key, JmhValue value);
// 
//   public JmhMap removeKey(JmhValue key);
// 
//   /**
//    * @return the value that is mapped to this key, or null if no such value exists
//    */
//   public JmhValue get(JmhValue key);
// 
//   public boolean containsKey(JmhValue key);
// 
//   public boolean containsValue(JmhValue value);
// 
//   /**
//    * @return an iterator over the keys of the map
//    */
//   @Override
//   public Iterator<JmhValue> iterator();
// 
//   /**
//    * @return an iterator over the values of the map
//    */
//   public Iterator<JmhValue> valueIterator();
// 
//   /**
//    * @return an iterator over the keys-value pairs of the map
//    */
//   public Iterator<Entry<JmhValue, JmhValue>> entryIterator();
// 
//   public static interface Builder extends JmhBuilder {
// 
//     void put(JmhValue key, JmhValue value);
// 
//     void putAll(JmhMap map);
// 
//     void putAll(Map<JmhValue, JmhValue> map);
// 
//     @Override
//     JmhMap done();
// 
//   }
// 
// }
// 
// Path: src/main/java/io/usethesource/criterion/api/JmhSet.java
// public interface JmhSet extends JmhValue, Iterable<JmhValue> {
// 
//   boolean isEmpty();
// 
//   int size();
// 
//   boolean contains(JmhValue element);
// 
//   JmhSet insert(JmhValue element);
// 
//   JmhSet delete(JmhValue elem);
// 
//   default boolean subsetOf(JmhSet other) {
//      throw new UnsupportedOperationException();
//   }
// 
//   default JmhSet union(JmhSet other) {
//     throw new UnsupportedOperationException();
//   }
// 
//   default JmhSet subtract(JmhSet other) {
//     throw new UnsupportedOperationException();
//   }
// 
//   default JmhSet intersect(JmhSet other) {
//     throw new UnsupportedOperationException();
//   }
// 
//   @Override
//   Iterator<JmhValue> iterator();
// 
//   @Deprecated
//   java.util.Set<JmhValue> asJavaSet();
// 
//   interface Builder extends JmhBuilder {
// 
//     @Deprecated
//     default void insert(JmhValue value) {
//       insert(new JmhValue[]{value});
//     }
// 
//     void insert(JmhValue... v);
// 
//     void insertAll(Iterable<? extends JmhValue> collection);
// 
//     @Override
//     JmhSet done();
// 
//   }
// 
// }
// 
// Path: src/main/java/io/usethesource/criterion/api/JmhValueFactory.java
// public interface JmhValueFactory {
// 
//   static RuntimeException FACTORY_NOT_YET_IMPLEMENTED_EXCEPTION =
//       new UnsupportedOperationException("Not yet implemented.");
// 
//   // default JmhSet set() {
//   // return setBuilder().done();
//   // }
// 
//   default JmhSet.Builder setBuilder() {
//     throw FACTORY_NOT_YET_IMPLEMENTED_EXCEPTION;
//   }
// 
//   // default JmhMap map() {
//   // return mapBuilder().done();
//   // }
// 
//   default JmhMap.Builder mapBuilder() {
//     throw FACTORY_NOT_YET_IMPLEMENTED_EXCEPTION;
//   }
// 
//   // default JmhSetMultimap setMulimap() {
//   // return setMultimapBuilder().done();
//   // }
// 
//   default JmhSetMultimap.Builder setMultimapBuilder() {
//     throw FACTORY_NOT_YET_IMPLEMENTED_EXCEPTION;
//   }
// 
// }


// Path: src/main/java/io/usethesource/criterion/impl/persistent/pcollections/PcollectionsValueFactory.java
import io.usethesource.criterion.api.JmhMap;
import io.usethesource.criterion.api.JmhSet;
import io.usethesource.criterion.api.JmhValueFactory;

/**
 * Copyright (c) Michael Steindorfer <Centrum Wiskunde & Informatica> and Contributors.
 * All rights reserved.
 *
 * This file is licensed under the BSD 2-Clause License, which accompanies this project
 * and is available under https://opensource.org/licenses/BSD-2-Clause.
 */
package io.usethesource.criterion.impl.persistent.pcollections;


public class PcollectionsValueFactory implements JmhValueFactory {

  @Override
  public JmhSet.Builder setBuilder() {
    return new PcollectionsSetBuilder();
  }

  @Override
  public JmhMap.Builder mapBuilder() {
    return new PcollectionsMapBuilder();
  }

  @Override
  public String toString() {
    return "VF_PCOLLECTIONS";