view src/main/java/de/mpiwg/itgroup/annotations/Actor.java @ 13:abe25edf2178

storing and retrieving permissions works now.
author casties
date Fri, 13 Jul 2012 17:22:05 +0200
parents 90911b2da322
children 629e15b345aa
line wrap: on
line source

/**
 * 
 */
package de.mpiwg.itgroup.annotations;

import de.mpiwg.itgroup.annotations.old.NS;

/**
 * @author casties
 *
 */
public abstract class Actor {

    public String uri;
    public String name;
    public String id;
    
    /**
     * @return if this Actor is a Group
     */
    public abstract boolean isGroup();
    
    /**
     * @return the uri
     */
    public String getUri() {
        return uri;
    }

    /**
     * Returns the uri (uses id if empty).
     * 
     * @return the uri
     */
    public String getUriString() {
    	if (uri == null) {
    		return getUriFromId(id, isGroup());
    	}
        return uri;
    }

    /**
     * @param uri the uri to set
     */
    public void setUri(String uri) {
        this.uri = uri;
    }
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the id
     */
    public String getId() {
        return id;
    }
    
    /**
     * Returns id as a String starting with "group:" for groups.
     * 
     * @return
     */
    public abstract String getIdString();
    
    /**
     * @param id the id to set
     */
    public void setId(String id) {
        this.id = id;
    }
    
    /**
     * Returns a short id from an uri.
     * 
     * @param uri
     * @return
     */
    public static String getIdFromUri(String uri, boolean isGroup) {
        String id = null;
        String prefix = NS.MPIWG_PERSONS_URL;
        if (isGroup) {
            prefix = NS.MPIWG_GROUPS_URL;
        }
        if (uri != null && uri.startsWith(prefix)) {
            id = uri.replace(prefix, "");
        }
        return id;
    }

    /**
     * Returns an uri from a short id.
     * 
     * @param id
     * @return
     */
    public static String getUriFromId(String id, boolean isGroup) {
        String uri = null;
        String prefix = NS.MPIWG_PERSONS_URL;
        if (isGroup) {
            prefix = NS.MPIWG_GROUPS_URL;
        }
        if (id != null && ! id.startsWith("http://")) {
            uri = prefix + id; 
        }
        return uri;
    }

}