public AtomHashGenerator atomic() {

        if (depth < 0) throw new IllegalArgumentException("no depth specified, use .depth(int)");

        List<AtomEncoder> encoders = new ArrayList<AtomEncoder>();

        // set is ordered
        for (AtomEncoder encoder : encoderSet) {
            encoders.add(encoder);
        }
        encoders.addAll(this.customEncoders);

        // check if suppression of atoms is wanted - if not use a default value
        // we also use the 'Basic' generator (see below)
        boolean suppress = suppression != AtomSuppression.unsuppressed();

        AtomEncoder encoder = new ConjugatedAtomEncoder(encoders);
        SeedGenerator seeds = new SeedGenerator(encoder, suppression);

        AbstractAtomHashGenerator simple = suppress ? new SuppressedAtomHashGenerator(seeds, new Xorshift(),
                makeStereoEncoderFactory(), suppression, depth) : new BasicAtomHashGenerator(seeds, new Xorshift(),
                makeStereoEncoderFactory(), depth);

        // if there is a finder for checking equivalent vertices then the user
        // wants to 'perturb' the hashed
        if (equivSetFinder != null) {
            return new PerturbedAtomHashGenerator(seeds, simple, new Xorshift(), makeStereoEncoderFactory(),
                    equivSetFinder, suppression);
        } else {
            // no equivalence set finder - just use the simple hash
            return simple;
        }
    }
public AtomHashGenerator atomic ( ) { if ( depth < 0 ) throw new IllegalArgumentException ( "no depth specified, use .depth(int)" ) ; List < AtomEncoder > encoders = new ArrayList < AtomEncoder > ( ) ; for ( AtomEncoder encoder : encoderSet ) { encoders . add ( encoder ) ; } encoders . addAll ( this . customEncoders ) ; boolean suppress = suppression != AtomSuppression . unsuppressed ( ) ; AtomEncoder encoder = new ConjugatedAtomEncoder ( encoders ) ; SeedGenerator seeds = new SeedGenerator ( encoder , suppression ) ; AbstractAtomHashGenerator simple = suppress ? new SuppressedAtomHashGenerator ( seeds , new Xorshift ( ) , makeStereoEncoderFactory ( ) , suppression , depth ) : new BasicAtomHashGenerator ( seeds , new Xorshift ( ) , makeStereoEncoderFactory ( ) , depth ) ; if ( equivSetFinder != null ) { return new PerturbedAtomHashGenerator ( seeds , simple , new Xorshift ( ) , makeStereoEncoderFactory ( ) , equivSetFinder , suppression ) ; } else { return simple ; } }
Given the current configuration create an {@link AtomHashGenerator}.

@return instance of the generator
@throws IllegalArgumentException no depth or encoders were configured