ActivityType.java

package org.linkedopenactors.rdfpub.domain.commonsrdf;

import java.util.Arrays;
import java.util.Optional;

import org.apache.commons.rdf.api.IRI;
import org.linkedopenactors.rdfpub.domain.commonsrdf.vocab.AS;

public enum ActivityType {
	
	CREATE(new RdfPubIRI(AS.Create)), UPDATE(new RdfPubIRI(AS.Update)), DELETE(new RdfPubIRI(AS.Delete)), UNDO(new RdfPubIRI(AS.Undo)), FOLLOW(new RdfPubIRI(AS.Follow));

	private IRI iri;

	public IRI getIri() {
		return iri;
	}

	private ActivityType(IRI iri) {
		this.iri = iri;
	}
	
	public boolean is(IRI other) {
		return iri.equals(other);
	}

	public static Optional<ActivityType> valueOf(IRI type) {
		return Arrays.asList(ActivityType.values()).stream()
		.filter(t->t.getIri().equals(type))
		.findFirst();
	}
}