/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.rest.common;
import org.atteo.evo.inflector.English;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.DSpaceObjectService;
import org.dspace.rest.Resource;
import javax.servlet.ServletContext;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* Created with IntelliJ IDEA.
* User: peterdietz
* Date: 10/7/13
* Time: 12:11 PM
* To change this template use File | Settings | File Templates.
*/
@XmlRootElement(name = "dspaceobject")
public class DSpaceObject {
private String uuid;
private String name;
private String handle;
private String type;
@XmlElement(name = "link", required = true)
private String link;
@XmlElement(required = true)
private ArrayList<String> expand = new ArrayList<String>();
public DSpaceObject() {
}
public DSpaceObject(org.dspace.content.DSpaceObject dso, ServletContext servletContext) {
setUUID(dso.getID().toString());
setName(dso.getName());
setHandle(dso.getHandle());
DSpaceObjectService dspaceObjectService = ContentServiceFactory.getInstance().getDSpaceObjectService(dso);
setType(dspaceObjectService.getTypeText(dso).toLowerCase());
link = createLink(servletContext);
}
public String getName(){
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getHandle() {
return handle;
}
public void setHandle(String handle) {
this.handle = handle;
}
public String getLink() {
return link;
}
public String getType() {
return this.type;
}
public void setType(String type) {
this.type = type;
}
public List<String> getExpand() {
return expand;
}
public void setExpand(ArrayList<String> expand) {
this.expand = expand;
}
public void addExpand(String expandableAttribute) {
this.expand.add(expandableAttribute);
}
public String getUUID() {
return uuid;
}
public void setUUID(String uuid) {
this.uuid = uuid;
}
private String createLink(ServletContext context){
return context.getContextPath() + "/" + English.plural(getType()) + "/" + getUUID();
}
}