/**
* @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String, org.apache.avalon.framework.configuration.Configuration, java.util.Map)
*/
public Object getAttribute(String name, Configuration modeConf, Map objectModel)
throws ConfigurationException {
PageEnvelope envelope = getEnvelope(objectModel);
Object value = null;
try {
if (name.equals(PageEnvelope.AREA)) {
value = envelope.getDocument().getArea();
} else if (name.equals(PageEnvelope.CONTEXT)) {
value = envelope.getContext();
} else if (name.equals(PageEnvelope.PUBLICATION_ID)) {
value = envelope.getPublication().getId();
} else if (name.equals(PageEnvelope.PUBLICATION)) {
value = envelope.getPublication();
} else if (name.equals(PageEnvelope.DOCUMENT)) {
value = envelope.getDocument();
} else if (name.equals(PageEnvelope.DOCUMENT_ID)) {
value = envelope.getDocument().getId();
} else if (name.equals(PageEnvelope.DOCUMENT_NODE_ID)) {
value = envelope.getDocument().getNodeId();
} else if (name.equals(PageEnvelope.DOCUMENT_LABEL)) {
value = envelope.getDocument().getLabel();
} else if (name.equals(PageEnvelope.DOCUMENT_URL)) {
value = envelope.getDocument().getDocumentURL();
} else if (name.equals(PageEnvelope.DOCUMENT_URL_WITHOUT_LANGUAGE)) {
value = envelope.getDocument().getCompleteURLWithoutLanguage();
} else if (name.equals(PageEnvelope.DOCUMENT_PATH)) {
value = envelope.getDocumentPath();
} else if (name.equals(PageEnvelope.DOCUMENT_FILE)) {
value = envelope.getDocument().getFile();
} else if (name.equals(PageEnvelope.DOCUMENT_EXTENSION)) {
value = envelope.getDocument().getExtension();
} else if (name.equals(PageEnvelope.DEFAULT_LANGUAGE)) {
value = envelope.getPublication().getDefaultLanguage();
} else if (name.equals(PageEnvelope.DOCUMENT_LANGUAGE)) {
value = envelope.getDocument().getLanguage();
} else if (name.equals(PageEnvelope.DOCUMENT_LANGUAGES)) {
value = envelope.getDocument().getLanguages();
} else if (name.equals(PageEnvelope.DOCUMENT_LANGUAGES_CSV)) {
String[] languages = envelope.getDocument().getLanguages();
String csv = "";
for (int i = 0; i < languages.length; i++) {
if (i > 0) {
csv += ",";
}
csv += languages[i];
}
value = csv;
} else if (name.equals(PageEnvelope.DOCUMENT_DC_TITLE)) {
value = envelope.getDocument().getDublinCore().getTitle();
} else if (name.equals(PageEnvelope.DOCUMENT_DC_CREATOR)) {
value = envelope.getDocument().getDublinCore().getCreator();
} else if (name.equals(PageEnvelope.DOCUMENT_DC_PUBLISHER)) {
value = envelope.getDocument().getDublinCore().getPublisher();
} else if (name.equals(PageEnvelope.DOCUMENT_DC_SUBJECT)) {
value = envelope.getDocument().getDublinCore().getSubject();
} else if (name.equals(PageEnvelope.DOCUMENT_DC_DESCRIPTION)) {
value = envelope.getDocument().getDublinCore().getDescription();
} else if (name.equals(PageEnvelope.DOCUMENT_DC_RIGHTS)) {
value = envelope.getDocument().getDublinCore().getRights();
} else if (name.equals(PageEnvelope.DOCUMENT_DC_DATE_CREATED)) {
value = envelope.getDocument().getDublinCore().getDateCreated();
} else if (name.equals(PageEnvelope.DOCUMENT_LASTMODIFIED)) {
Date date = envelope.getDocument().getLastModified();
value = new SimpleDateFormat(DATE_FORMAT).format(date);
} else if (name.equals(PageEnvelope.BREADCRUMB_PREFIX)) {
value = envelope.getPublication().getBreadcrumbPrefix();
} else if (name.equals(PageEnvelope.DOCUMENT_TYPE)) {
value = getDocumentType(objectModel, envelope);
}
else {
throw new ConfigurationException("The attribute [" + name + "] is not supported!");