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

il.ac.bgu.cs.bp.bpjs.eventsets.ExplicitEventSet Maven / Gradle / Ivy

package il.ac.bgu.cs.bp.bpjs.eventsets;

import il.ac.bgu.cs.bp.bpjs.events.BEvent;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;

/**
 * An event set composed of actual, explicit events.
 * @author michael
 */
public class ExplicitEventSet implements EventSet {

    private final Set collection = new HashSet<>();
    
    public static ExplicitEventSet of( BEvent... events ) {
        ExplicitEventSet retVal = new ExplicitEventSet();
        retVal.collection.addAll(Arrays.asList(events));
        return retVal;
    }
    
    public static ExplicitEventSet from( Collection events ) {
        ExplicitEventSet retVal = new ExplicitEventSet();
        retVal.collection.addAll(events);
        return retVal;
    }
    
    @Override
    public boolean contains(BEvent event) {
        return ( (event instanceof BEvent) &&  collection.contains((BEvent)event ) );
    }
    
    public void add( BEvent be ) {
        collection.add(be);
    }

    public Set getCollection() {
        return collection;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 89 * hash + Objects.hashCode(this.collection);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if ( obj instanceof ExplicitEventSet ) {
            final ExplicitEventSet other = (ExplicitEventSet) obj;
            return Objects.equals(this.collection, other.collection);
        } else {
            return false;
        }
    }
    
    @Override
    public String toString() {
        return "[EventCollection " + collection + "]";
    }
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy