/**
* @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.PUBLICATION_LANGUAGES_CSV)) {
value =
StringUtils.join(
envelope.getPublication().getLanguages(),
',');
} 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_NAME)) {
value = envelope.getDocument().getName();
} else if (name.equals(PageEnvelope.DOCUMENT_NODE_ID)) { // FIXME: Why is this here?
value = envelope.getDocument().getNodeId();
} else if (name.equals(PageEnvelope.DOCUMENT_LABEL)) { // FIXME: Why is this here?
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)) {
value =
StringUtils.join(
envelope.getDocument().getLanguages(),
',');
} else if (name.equals(PageEnvelope.DOCUMENT_DC_TITLE)) {
value =
envelope.getDocument().getDublinCore().getFirstValue(DublinCore.ELEMENT_TITLE);
} else if (name.equals(PageEnvelope.DOCUMENT_DC_CREATOR)) {
value =
envelope.getDocument().getDublinCore().getFirstValue(
DublinCore.ELEMENT_CREATOR);
} else if (name.equals(PageEnvelope.DOCUMENT_DC_PUBLISHER)) {
value =
envelope.getDocument().getDublinCore().getFirstValue(
DublinCore.ELEMENT_PUBLISHER);
} else if (name.equals(PageEnvelope.DOCUMENT_DC_SUBJECT)) {
value =
envelope.getDocument().getDublinCore().getFirstValue(
DublinCore.ELEMENT_SUBJECT);
} else if (name.equals(PageEnvelope.DOCUMENT_DC_DESCRIPTION)) {
value =
envelope.getDocument().getDublinCore().getFirstValue(
DublinCore.ELEMENT_DESCRIPTION);
} else if (name.equals(PageEnvelope.DOCUMENT_DC_RIGHTS)) {
value =
envelope.getDocument().getDublinCore().getFirstValue(DublinCore.ELEMENT_RIGHTS);
} else if (name.equals(PageEnvelope.DOCUMENT_DC_DATE_CREATED)) {
value =
envelope.getDocument().getDublinCore().getFirstValue(DublinCore.TERM_CREATED);
} 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.SSL_PREFIX)) {
value = envelope.getPublication().getSSLPrefix();
} else if (name.equals(PageEnvelope.DOCUMENT_TYPE)) {
value = getDocumentType(objectModel, envelope);
} else {
throw new ConfigurationException("The attribute [" + name + "] is not supported!");
}