view src/main/java/de/mpiwg/itgroup/annotations/Person.java @ 102:9140017e8962

fix bug with empty username. add logging for JSON exceptions.
author casties
date Thu, 09 Feb 2017 20:46:15 +0100
parents b406507a953d
children f83eb8b335b1
line wrap: on
line source

package de.mpiwg.itgroup.annotations;

/*
 * #%L
 * AnnotationManager
 * %%
 * Copyright (C) 2012 - 2014 MPIWG Berlin
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as 
 * published by the Free Software Foundation, either version 3 of the 
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Lesser Public License for more details.
 * 
 * You should have received a copy of the GNU General Lesser Public 
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
 * #L%
 */

import java.util.Set;

import de.mpiwg.itgroup.annotations.restlet.BaseRestlet;

/**
 * @author casties
 *
 */
public class Person extends Actor {

    public Set<String> groups;
    
    public Person() {
    }

    public Person(String id) {
        super();
        this.id = id;
    }

    public Person(String uri, String name) {
        super();
        this.uri = uri;
        this.name = name;
    }

    public Person(String id, String uri, String name) {
        super();
        this.id = id;
        this.uri = uri;
        this.name = name;
    }

    @Override
    public boolean isGroup() {
        return false;
    }

    public String getIdString() {
        if (id == null) {
            id = getIdFromUri(uri, false);
        }
        return id;
    }

    /**
     * Returns a Person with this id or null.
     * 
     * @param id
     * @return
     */
    public static Person createPersonWithId(String id) {
        if (id != null) {
            return new Person(id);
        }
        return null;
    }

    /**
     * Sets the name from the id using getFullNameForId of the Application.
     *  
     * @param application
     * @return
     */
    public String updateName(BaseRestlet application) {
        if (id != null) {
            name = application.getFullNameForId(id);
        }
        return name;
    }
    
    /**
     * Returns the anonymous Person.
     * 
     * @return
     */
    public static Person getAnonymous() {
        return new Person("anonymous", "Anonymous");
    }

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        String s = "PERSON["+id+"]";
        if (name != null) {
            s += ": "+name;
        }
        return s;
    }
}