001: package org.sakaibrary.osid.repository.xserver;
002:
003: import org.sakaibrary.osid.repository.xserver.CreatorPartStructure;
004: import org.sakaibrary.osid.repository.xserver.DatePartStructure;
005: import org.sakaibrary.osid.repository.xserver.PagesPartStructure;
006: import org.sakaibrary.osid.repository.xserver.SourceTitlePartStructure;
007: import org.sakaibrary.osid.repository.xserver.URLPartStructure;
008:
009: /**
010: * This class wraps an org.osid.repository.Asset to make it more suitable
011: * for presentation
012: *
013: * @author gbhatnag
014: */
015: public class AssetPresentationBean implements java.io.Serializable {
016:
017: private static final long serialVersionUID = 1L;
018: private static final org.apache.commons.logging.Log LOG = org.apache.commons.logging.LogFactory
019: .getLog("org.sakaibrary.osid.repository.xserver.AssetPresentationBean");
020:
021: private org.osid.repository.Asset asset;
022: private String assetId;
023: private String displayName; // title
024: private String description; // abstract
025: private Integer content;
026: private java.util.ArrayList parts;
027:
028: /**
029: * Constructor takes an org.osid.repository.Asset and extracts all
030: * data for easier presentation.
031: */
032: public AssetPresentationBean(org.osid.repository.Asset asset) {
033: parts = new java.util.ArrayList();
034:
035: try {
036: assetId = asset.getId().getIdString();
037: displayName = asset.getDisplayName();
038: description = asset.getDescription();
039: content = (Integer) asset.getContent();
040:
041: org.osid.repository.RecordIterator rit = asset.getRecords();
042: while (rit.hasNextRecord()) {
043: org.osid.repository.Record record = rit.nextRecord();
044:
045: org.osid.repository.PartIterator pit = record
046: .getParts();
047: while (pit.hasNextPart()) {
048: parts.add(pit.nextPart());
049: }
050: }
051: } catch (Throwable t) {
052: LOG.warn(
053: "AssetPresentationBean() failed to loop through Asset, "
054: + "Record, Parts: " + t.getMessage(), t);
055: }
056:
057: this .asset = asset;
058: }
059:
060: public String getAssetId() {
061: return assetId;
062: }
063:
064: public String getDisplayName() {
065: return displayName;
066: }
067:
068: public String getDescription() {
069: return description;
070: }
071:
072: public Integer getContent() {
073: return content;
074: }
075:
076: public String getAuthor()
077: throws org.osid.repository.RepositoryException,
078: org.osid.shared.SharedException {
079: org.osid.shared.ObjectIterator objIterator = asset
080: .getPartValuesByPartStructure(CreatorPartStructure
081: .getInstance().getId());
082:
083: return (objIterator.hasNextObject()) ? ((String) objIterator
084: .nextObject() + ".") : null;
085: }
086:
087: public String getSourceTitle()
088: throws org.osid.repository.RepositoryException,
089: org.osid.shared.SharedException {
090: org.osid.shared.ObjectIterator objIterator = asset
091: .getPartValuesByPartStructure(SourceTitlePartStructure
092: .getInstance().getId());
093:
094: return (objIterator.hasNextObject()) ? (String) objIterator
095: .nextObject() : null;
096: }
097:
098: public String getDate()
099: throws org.osid.repository.RepositoryException,
100: org.osid.shared.SharedException {
101: org.osid.shared.ObjectIterator objIterator = asset
102: .getPartValuesByPartStructure(DatePartStructure
103: .getInstance().getId());
104:
105: return (objIterator.hasNextObject()) ? (String) objIterator
106: .nextObject() : null;
107: }
108:
109: public String getCoverage()
110: throws org.osid.repository.RepositoryException,
111: org.osid.shared.SharedException {
112: org.osid.shared.ObjectIterator objIterator = asset
113: .getPartValuesByPartStructure(PagesPartStructure
114: .getInstance().getId());
115:
116: return (objIterator.hasNextObject()) ? (String) objIterator
117: .nextObject() : null;
118: }
119:
120: public String getUrl()
121: throws org.osid.repository.RepositoryException,
122: org.osid.shared.SharedException {
123: org.osid.shared.ObjectIterator objIterator = asset
124: .getPartValuesByPartStructure(URLPartStructure
125: .getInstance().getId());
126:
127: return (objIterator.hasNextObject()) ? (String) objIterator
128: .nextObject() : null;
129: }
130:
131: public java.util.ArrayList getParts() {
132: return parts;
133: }
134: }
|