001/*
002 * The contents of this file are subject to the license and copyright
003 * detailed in the LICENSE and NOTICE files at the root of the source
004 * tree.
005 */
006package org.fcrepo.kernel.api.observer;
007
008import static org.fcrepo.kernel.api.RdfLexicon.ACTIVITY_STREAMS_NAMESPACE;
009
010/**
011 * A collection of repository event types
012 *
013 * @author ajs6f
014 * @since Feb 7, 2013
015 */
016public enum EventType {
017
018    RESOURCE_CREATION("create resource", "Create"),
019    RESOURCE_DELETION("delete resource", "Delete"),
020    RESOURCE_MODIFICATION("update resource", "Update"),
021    RESOURCE_RELOCATION("move resource", "Move"),
022    INBOUND_REFERENCE("refer to resource", "Follow"),
023    RESOURCE_PURGE("remove resource tombstone", "Purge");
024
025    private final String eventName;
026    private final String eventType;
027
028    EventType(final String eventName, final String eventType) {
029        this.eventName = eventName;
030        this.eventType = eventType;
031    }
032
033    /**
034     * @return a human-readable name for this event
035     */
036    public String getName() {
037        return this.eventName;
038    }
039
040    /**
041     * @return  type for this event without the namespace.
042     */
043    public String getTypeAbbreviated() {
044        return eventType;
045    }
046
047    /**
048     * @return an rdf type for this event
049     */
050    public String getType() {
051        return ACTIVITY_STREAMS_NAMESPACE + eventType;
052    }
053
054}