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

com.enonic.xp.support.AbstractImmutableEntitySet Maven / Gradle / Ivy

There is a newer version: 7.14.4
Show newest version
package com.enonic.xp.support;

import java.util.Iterator;
import java.util.Set;
import java.util.stream.Stream;

import com.google.common.collect.ImmutableSet;

import com.enonic.xp.annotation.PublicApi;

@PublicApi
public abstract class AbstractImmutableEntitySet
    implements Iterable
{
    protected final ImmutableSet set;

    protected AbstractImmutableEntitySet( final ImmutableSet set )
    {
        this.set = set;
    }

    public final int getSize()
    {
        return this.set.size();
    }

    public final boolean isEmpty()
    {
        return this.set.isEmpty();
    }

    public final boolean isNotEmpty()
    {
        return !this.set.isEmpty();
    }

    public final T first()
    {
        return this.set.isEmpty() ? null : this.set.iterator().next();
    }

    public final Set getSet()
    {
        return this.set;
    }

    public final Stream stream()
    {
        return this.set.stream();
    }

    public final boolean contains( T o )
    {
        return this.set.contains( o );
    }

    @Override
    public final Iterator iterator()
    {
        return this.set.iterator();
    }

    @Override
    public String toString()
    {
        return this.set.toString();
    }

    @Override
    public boolean equals( final Object o )
    {
        return this == o || this.getClass().isInstance( o ) && this.set.equals( ( (AbstractImmutableEntitySet) o ).set );
    }

    @Override
    public int hashCode()
    {
        return this.set.hashCode();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy