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

org.javimmutable.collections.hash.HashSetBuilder Maven / Gradle / Ivy

package org.javimmutable.collections.hash;

import org.javimmutable.collections.JImmutableSet;
import org.javimmutable.collections.hash.set.SetBuilder;

import javax.annotation.Nonnull;
import javax.annotation.concurrent.ThreadSafe;

@ThreadSafe
class HashSetBuilder
    implements JImmutableSet.Builder
{
    private final SetBuilder builder = new SetBuilder<>();

    @Nonnull
    @Override
    public synchronized JImmutableSet build()
    {
        if (builder.size() == 0) {
            return JImmutableHashSet.of();
        } else {
            return new JImmutableHashSet<>(builder.build(), builder.getCollisionSet());
        }
    }

    @Override
    public synchronized int size()
    {
        return builder.size();
    }

    @Nonnull
    @Override
    public synchronized JImmutableSet.Builder add(T value)
    {
        builder.add(value);
        return this;
    }

    @Nonnull
    @Override
    public synchronized JImmutableSet.Builder clear()
    {
        builder.clear();
        return this;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy