org.apache.lenya.cms.publication
Class DefaultDocumentBuilder

java.lang.Object
  extended by org.apache.lenya.cms.publication.DefaultDocumentBuilder
All Implemented Interfaces:
DocumentBuilder

public class DefaultDocumentBuilder
extends java.lang.Object
implements DocumentBuilder


Constructor Summary
protected DefaultDocumentBuilder()
          Non-public constructor.
 
Method Summary
protected  java.lang.String buildCanonicalDocumentUrl(Publication publication, java.lang.String documentid, java.lang.String language)
          Builds the canonical document URL.
 java.lang.String buildCanonicalUrl(Publication publication, java.lang.String area, java.lang.String documentId)
          Builds an URL corresponding to a cms document from the publication, the area and the document id
 java.lang.String buildCanonicalUrl(Publication publication, java.lang.String area, java.lang.String documentid, java.lang.String language)
          Builds an URL corresponding to a cms document from the publication, the area, the document id and the language
 Document buildDocument(Publication publication, java.lang.String url)
          Builds a document.
 Document buildLanguageVersion(Document document, java.lang.String language)
          Builds a clone of a document for another language.
protected  DefaultDocument createDocument(Publication publication, java.lang.String area, java.lang.String documentId, java.lang.String language)
          Creates a new document object.
protected  java.lang.String getExtension(java.lang.String url)
          Returns the extension of a URL.
static DefaultDocumentBuilder getInstance()
          Returns the singleton instance.
protected  java.lang.String getLanguage(java.lang.String urlWithoutSuffix)
          Returns the language of a URL.
 boolean isDocument(Publication publication, java.lang.String url)
          Checks if an URL corresponds to a CMS document.
protected  java.lang.String removeExtensions(java.lang.String url)
          Removes all "."
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultDocumentBuilder

protected DefaultDocumentBuilder()
Non-public constructor.

Method Detail

getInstance

public static DefaultDocumentBuilder getInstance()
Returns the singleton instance.

Returns:
A document builder.

buildDocument

public Document buildDocument(Publication publication,
                              java.lang.String url)
                       throws DocumentBuildException
Description copied from interface: DocumentBuilder
Builds a document.

Specified by:
buildDocument in interface DocumentBuilder
Parameters:
publication - The publication the document belongs to.
url - The URL of the form /{publication-id}/{area}/{document-id}{language-suffix}.{extension}.
Returns:
A document.
Throws:
DocumentBuildException - when something went wrong.
See Also:
DocumentBuilder.buildDocument(org.apache.lenya.cms.publication.Publication, java.lang.String)

createDocument

protected DefaultDocument createDocument(Publication publication,
                                         java.lang.String area,
                                         java.lang.String documentId,
                                         java.lang.String language)
                                  throws DocumentBuildException
Creates a new document object. Override this method to create specific document objects, e.g., for different document IDs.

Parameters:
publication - The publication.
area - The area.
documentId - The document ID.
language - The language.
Returns:
A document.
Throws:
DocumentException - when something went wrong.
DocumentBuildException

removeExtensions

protected java.lang.String removeExtensions(java.lang.String url)
Removes all "."-separated extensions from a URL (e.g., /foo.print.html is transformed to /foo).

Parameters:
url - The URL to trim.
Returns:
A URL string.

getLanguage

protected java.lang.String getLanguage(java.lang.String urlWithoutSuffix)
Returns the language of a URL.

Parameters:
urlWithoutSuffix - The URL without the suffix.
Returns:
A string.

getExtension

protected java.lang.String getExtension(java.lang.String url)
Returns the extension of a URL.

Parameters:
url - The URL.
Returns:
The extension.

isDocument

public boolean isDocument(Publication publication,
                          java.lang.String url)
                   throws DocumentBuildException
Description copied from interface: DocumentBuilder
Checks if an URL corresponds to a CMS document.

Specified by:
isDocument in interface DocumentBuilder
Parameters:
publication - The publication the document belongs to.
url - The URL of the form /{publication-id}/...
Returns:
A boolean value.
Throws:
DocumentBuildException - when something went wrong.
See Also:
DocumentBuilder.isDocument(org.apache.lenya.cms.publication.Publication, java.lang.String)

buildCanonicalDocumentUrl

protected java.lang.String buildCanonicalDocumentUrl(Publication publication,
                                                     java.lang.String documentid,
                                                     java.lang.String language)
Builds the canonical document URL.

Parameters:
publication - The publication.
documentid - The document ID.
language - The language of the document.
Returns:
A string.

buildCanonicalUrl

public java.lang.String buildCanonicalUrl(Publication publication,
                                          java.lang.String area,
                                          java.lang.String documentid,
                                          java.lang.String language)
Description copied from interface: DocumentBuilder
Builds an URL corresponding to a cms document from the publication, the area, the document id and the language

Specified by:
buildCanonicalUrl in interface DocumentBuilder
Parameters:
publication - The publication the document belongs to.
area - The area the document belongs to.
documentid - The document id of the document.
language - The language of the document.
Returns:
a String The builded url
See Also:
DocumentBuilder.buildCanonicalUrl(org.apache.lenya.cms.publication.Publication, java.lang.String, java.lang.String, java.lang.String)

buildCanonicalUrl

public java.lang.String buildCanonicalUrl(Publication publication,
                                          java.lang.String area,
                                          java.lang.String documentId)
Description copied from interface: DocumentBuilder
Builds an URL corresponding to a cms document from the publication, the area and the document id

Specified by:
buildCanonicalUrl in interface DocumentBuilder
Parameters:
publication - The publication the document belongs to.
area - The area the document belongs to.
documentId - The document id of the document.
Returns:
a String The builded url
See Also:
DocumentBuilder.buildCanonicalUrl(org.apache.lenya.cms.publication.Publication, java.lang.String, java.lang.String)

buildLanguageVersion

public Document buildLanguageVersion(Document document,
                                     java.lang.String language)
Description copied from interface: DocumentBuilder
Builds a clone of a document for another language.

Specified by:
buildLanguageVersion in interface DocumentBuilder
Parameters:
document - The document to clone.
language - The language of the target document.
Returns:
A document.
See Also:
DocumentBuilder.buildLanguageVersion(org.apache.lenya.cms.publication.Document, java.lang.String)


Copyright © 1999-2005 Apache Software Foundation. All Rights Reserved.