package spl; import org.sciplore.beans.Abstract; import org.sciplore.beans.Author; import org.sciplore.beans.Authors; import org.sciplore.beans.Document; import org.sciplore.formatter.Bean; import org.sciplore.formatter.SimpleTypeElementBean; /** * Created by IntelliJ IDEA. * User: Christoph Arbeit * Date: 10.09.2010 * Time: 20:02:51 * To change this template use File | Settings | File Templates. */ public class DocumentWrapper { Document xmlDocument; public DocumentWrapper(Document xmlDocument) { this.xmlDocument = xmlDocument; } public Document getXmlDocument() { return xmlDocument; } public void setXmlDocument(Document xmlDocument) { this.xmlDocument = xmlDocument; } public String getTitle(){ if(this.hasTitle()){ return xmlDocument.getTitle().getValue(); } else{ return ""; } } public boolean hasTitle(){ return (xmlDocument.getTitle() != null && xmlDocument.getTitle().getValue() != null && !xmlDocument.getTitle().getValue().isEmpty()); } public String getAbstract(){ if(this.hasAbstract()){ return ((Abstract)xmlDocument.getAbstract()).getValue(); } else{ return ""; } } public boolean hasAbstract(){ return (xmlDocument.getAbstract() != null && ((Abstract)xmlDocument.getAbstract()).getValue() != null && !((Abstract)xmlDocument.getAbstract()).getValue().isEmpty()); } public String getAuthors(String seperator){ if(this.hasAuthors()){ Authors authors = xmlDocument.getAuthors(); String value = ""; int i = 1; for(Bean author : authors.getCollection()){ if(i < authors.getCollection().size()){ value = value + getNameComplete((Author)author); value = value + " " + seperator + " "; } else{ value = value + getNameComplete((Author)author); } i++; } return value; } else{ return ""; } } public boolean hasAuthors(){ return (xmlDocument.getAuthors() != null && xmlDocument.getAuthors().getCollection() != null && !xmlDocument.getAuthors().getCollection().isEmpty()); } /* public String getKeyWords(){ if(this.hasKeyWords()){ List<XmlKeyword> keywords = xmlDocument.getKeywords().getKeywords(); String value = ""; int i = 1; for(XmlKeyword keyword : keywords){ if(i < keywords.size()){ value = value + keyword.getValue(); value = value + ", "; } else{ value = value + keyword.getValue(); } i++; } return value; } else{ return ""; } } public boolean hasKeyWords(){ return (xmlDocument.getKeywords() != null && xmlDocument.getKeywords().getKeywords() != null && !xmlDocument.getKeywords().getKeywords().isEmpty()); } */ public String getDoi(){ if(this.hasDoi()){ return this.getSimpleTypeValue(xmlDocument.getDoi()); } else{ return ""; } } public boolean hasDoi(){ return (xmlDocument.getDoi() != null && this.getSimpleTypeValue(xmlDocument.getDoi()) != null && !this.getSimpleTypeValue(xmlDocument.getDoi()).isEmpty()); } /* public String getPages(){ if(this.hasPages()){ return xmlDocument.getPages().getValue(); } else{ return ""; } } public boolean hasPages(){ return (xmlDocument.getPages() != null && xmlDocument.getPages().getValue() != null && !xmlDocument.getPages().getValue().isEmpty()); } public String getVolume(){ if(this.hasVolume()){ return xmlDocument.getVolume().getValue(); } else{ return ""; } } public boolean hasVolume(){ return (xmlDocument.getVolume() != null && xmlDocument.getVolume().getValue() != null && !xmlDocument.getVolume().getValue().isEmpty()); } public String getNumber(){ if(this.hasNumber()){ return xmlDocument.getNumber().getValue(); } else{ return ""; } } public boolean hasNumber(){ return (xmlDocument.getNumber() != null && xmlDocument.getNumber().getValue() != null && !xmlDocument.getNumber().getValue().isEmpty()); } */ public String getYear(){ if(this.hasYear()){ return this.getSimpleTypeValue(xmlDocument.getYear()); } else{ return ""; } } public boolean hasYear(){ return (this.getSimpleTypeValue(xmlDocument.getYear()) != null && !this.getSimpleTypeValue(xmlDocument.getYear()).isEmpty() && !this.getSimpleTypeValue(xmlDocument.getYear()).equalsIgnoreCase("null")); } /* public String getMonth(){ if(this.hasMonth()){ return xmlDocument.getPublishdate().getMonth(); } else{ return ""; } } public boolean hasMonth(){ return (xmlDocument.getPublishdate() != null && xmlDocument.getPublishdate().getMonth() != null && !xmlDocument.getPublishdate().getMonth().isEmpty()); } public String getDay(){ if(this.hasDay()){ return xmlDocument.getPublishdate().getDay(); } else{ return ""; } } public boolean hasDay(){ return (xmlDocument.getPublishdate() != null && xmlDocument.getPublishdate().getDay() != null && !xmlDocument.getPublishdate().getDay().isEmpty()); } /* public String getVenue() { if(this.hasVenue()){ return xmlDocument.getVenue().getValue(); } else{ return ""; } } public boolean hasVenue(){ return (xmlDocument.getVenue() != null && xmlDocument.getVenue().getValue() != null && !xmlDocument.getVenue().getValue().isEmpty()); }*/ private String getNameComplete(Author author){ if(author == null) return ""; String result = ""; if(getSimpleTypeValue(author.getName_First()) != null) result = result + getSimpleTypeValue(author.getName_First()).trim() + " "; if(getSimpleTypeValue(author.getName_Middle()) != null) result = result + getSimpleTypeValue(author.getName_Middle()).trim() + " "; if(getSimpleTypeValue(author.getName_Last_Prefix()) != null) result = result + getSimpleTypeValue(author.getName_Last_Prefix()).trim() + " "; if(getSimpleTypeValue(author.getName_Last()) != null) result = result + getSimpleTypeValue(author.getName_Last()).trim() + " "; if(getSimpleTypeValue(author.getName_Last_Suffix()) != null) result = result + getSimpleTypeValue(author.getName_Last_Suffix()).trim() + " "; return result.trim(); } private String getSimpleTypeValue(Bean bean){ if(bean == null || !(bean instanceof SimpleTypeElementBean)) return null; SimpleTypeElementBean simpleTypeElementBean = (SimpleTypeElementBean)bean; if(simpleTypeElementBean.getValue() == null || simpleTypeElementBean.getValue().equalsIgnoreCase("null") || simpleTypeElementBean.getValue().length() <= 0) return null; return simpleTypeElementBean.getValue(); } }