// Path: src/main/java/org/neo4j/neode/probabilities/ProbabilityDistribution.java
// public abstract class ProbabilityDistribution
// {
//     private static final Random RANDOM_INSTANCE = new Random();
// 
//     public static ProbabilityDistribution flatDistribution()
//     {
//         return new FlatProbabilityDistributionUnique();
//     }
// 
//     public static ProbabilityDistribution normalDistribution()
//     {
//         return new NormalProbabilityDistributionUnique();
//     }
// 
//     private final Random random;
// 
//     protected ProbabilityDistribution()
//     {
//         this.random = RANDOM_INSTANCE;
//     }
// 
//     public abstract List<Integer> generateList( Range sizeRange, Range range );
// 
//     public abstract List<Integer> generateList( int size, Range range );
// 
//     public abstract int generateSingle( Range range );
// 
//     public abstract String description();
// 
//     protected final Random random()
//     {
//         return random;
//     }
// }
// 
// Path: src/main/java/org/neo4j/neode/Range.java
// public static Range minMax( int min, int max )
// {
//     return new Range( min, max );
// }


import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.neo4j.graphdb.Node;
import org.neo4j.neode.probabilities.ProbabilityDistribution;
import static org.neo4j.neode.Range.minMax;
package org.neo4j.neode;




class GetOrCreateUniqueNodes implements TargetNodesSource
{
    private final NodeSpecification nodeSpecification;
    private final int totalNumberOfNodes;
// Path: src/main/java/org/neo4j/neode/probabilities/ProbabilityDistribution.java
// public abstract class ProbabilityDistribution
// {
//     private static final Random RANDOM_INSTANCE = new Random();
// 
//     public static ProbabilityDistribution flatDistribution()
//     {
//         return new FlatProbabilityDistributionUnique();
//     }
// 
//     public static ProbabilityDistribution normalDistribution()
//     {
//         return new NormalProbabilityDistributionUnique();
//     }
// 
//     private final Random random;
// 
//     protected ProbabilityDistribution()
//     {
//         this.random = RANDOM_INSTANCE;
//     }
// 
//     public abstract List<Integer> generateList( Range sizeRange, Range range );
// 
//     public abstract List<Integer> generateList( int size, Range range );
// 
//     public abstract int generateSingle( Range range );
// 
//     public abstract String description();
// 
//     protected final Random random()
//     {
//         return random;
//     }
// }
// 
// Path: src/main/java/org/neo4j/neode/Range.java
// public static Range minMax( int min, int max )
// {
//     return new Range( min, max );
// }


// Path: src/main/java/org/neo4j/neode/GetOrCreateUniqueNodes.java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.neo4j.graphdb.Node;
import org.neo4j.neode.probabilities.ProbabilityDistribution;
import static org.neo4j.neode.Range.minMax;

package org.neo4j.neode;




class GetOrCreateUniqueNodes implements TargetNodesSource
{
    private final NodeSpecification nodeSpecification;
    private final int totalNumberOfNodes;
    private final ProbabilityDistribution probabilityDistribution;