/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package edu.harvard.iq.dataverse.harvest.server.xoai; import com.lyncode.xoai.dataprovider.model.Item; import com.lyncode.xoai.dataprovider.model.Set; import com.lyncode.xoai.model.oaipmh.About; import edu.harvard.iq.dataverse.Dataset; import edu.harvard.iq.dataverse.harvest.server.OAIRecord; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * * @author Leonid Andreev * * This is an implemention of an Lyncode XOAI Item; * You can think of it as an XOAI Item wrapper around the * Dataverse OAIRecord entity. */ public class Xitem implements Item { public Xitem(OAIRecord oaiRecord) { super(); this.oaiRecord = oaiRecord; } private OAIRecord oaiRecord; public OAIRecord getOaiRecord() { return oaiRecord; } public void setOaiRecord(OAIRecord oaiRecord) { this.oaiRecord = oaiRecord; } private Dataset dataset; public Dataset getDataset() { return dataset; } public Xitem withDataset(Dataset dataset) { this.dataset = dataset; return this; } @Override public List<About> getAbout() { return null; } @Override public Xmetadata getMetadata() { return new Xmetadata((String)null); } @Override public String getIdentifier() { return oaiRecord.getGlobalId(); } @Override public Date getDatestamp() { return oaiRecord.getLastUpdateTime(); } @Override public List<com.lyncode.xoai.dataprovider.model.Set> getSets() { List<Set> sets = new ArrayList<>(); if (oaiRecord.getSetName() != null) { sets.add(new Set(oaiRecord.getSetName())); } return sets; } @Override public boolean isDeleted() { return oaiRecord.isRemoved(); } }