You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by fl...@apache.org on 2010/11/12 11:16:14 UTC

svn commit: r1034335 - in /lenya/trunk/org.apache.lenya.core.publication: ./ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/lenya/ src/main/java/org/apache/lenya/cms/ src/main/java/org/apache/lenya/cms/publication/ src/main/java/...

Author: florent
Date: Fri Nov 12 10:16:12 2010
New Revision: 1034335

URL: http://svn.apache.org/viewvc?rev=1034335&view=rev
Log:
- add moved class to core-publication

Added:
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Area.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Area.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/AreaImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/AreaImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentBuilder.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentIdToPathMapper.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DefaultDocumentIdToPathMapper.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Document.java
      - copied, changed from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentBuildException.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentBuildException.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentBuilder.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentBuilder.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentDoesNotExistException.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentDoesNotExistException.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentException.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentException.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentFactory.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentFactory.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryBuilder.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryBuilder.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryBuilderImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryBuilderImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentFactoryImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentIdToPathMapper.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentIdToPathMapper.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentIdentifier.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentIdentifier.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentLocator.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentLocator.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentManager.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/DocumentManager.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/DocumentManagerImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/History.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/History.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/HistoryWrapper.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/HistoryWrapper.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/IdentityDocumentIdToPathMapper.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/IdentityDocumentIdToPathMapper.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/IdentityWrapper.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/IdentityWrapper.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/LockException.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/LockException.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Node.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Node.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java
      - copied, changed from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PageEnvelopeException.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelopeException.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PageEnvelopeFactory.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelopeFactory.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Proxy.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Proxy.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Publication.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Publication.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationConfiguration.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PublicationException.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PublicationException.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PublicationFactory.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationFactory.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PublicationManager.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PublicationManager.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PublicationManagerImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationManagerImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PublicationUtil.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PublicationUtil.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PublicationsGenerator.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/PublicationsGenerator.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Repository.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Repository.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/RepositoryException.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/RepositoryException.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/RepositoryImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/RepositoryImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/ResourceNotFoundException.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/ResourceNotFoundException.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/ResourceType.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/ResourceType.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/ResourceTypeResolver.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/ResourceTypeResolver.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/ResourceTypeResolverImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/ResourceTypeResolverImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Revision.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Revision.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/RevisionWrapper.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/RevisionWrapper.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Session.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Session.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/SingleLanguageIdentityMapper.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/SingleLanguageIdentityMapper.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/TransactionLock.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/TransactionLock.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/URLInformation.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/URLInformation.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/UriHandler.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/UriHandler.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/UriHandlerImpl.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/UriHandlerImpl.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/templating/
      - copied from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/templating/
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentHelper.java   (with props)
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentSet.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/util/DocumentSet.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentVisitor.java
      - copied unchanged from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/util/DocumentVisitor.java
    lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/LanguageVersions.java   (with props)
Modified:
    lenya/trunk/org.apache.lenya.core.publication/   (props changed)

Propchange: lenya/trunk/org.apache.lenya.core.publication/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Nov 12 10:16:12 2010
@@ -0,0 +1,5 @@
+target
+.project
+.classpath
+.settings
+profiles.xml

Copied: lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Document.java (from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java)
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Document.java?p2=lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Document.java&p1=lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java&r1=1033911&r2=1034335&rev=1034335&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/Document.java (original)
+++ lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/Document.java Fri Nov 12 10:16:12 2010
@@ -18,7 +18,6 @@
 
 package org.apache.lenya.cms.publication;
 
-import java.io.File;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.Date;

Copied: lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java (from r1033911, lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java)
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java?p2=lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java&p1=lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java&r1=1033911&r2=1034335&rev=1034335&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java (original)
+++ lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/PageEnvelope.java Fri Nov 12 10:16:12 2010
@@ -21,6 +21,7 @@
 package org.apache.lenya.cms.publication;
 
 import org.apache.cocoon.environment.Request;
+import org.apache.lenya.cms.publication.Publication;
 
 
 /**

Added: lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentHelper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentHelper.java?rev=1034335&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentHelper.java (added)
+++ lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentHelper.java Fri Nov 12 10:16:12 2010
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+/* $Id$  */
+
+package org.apache.lenya.cms.publication.util;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.environment.ObjectModelHelper;
+import org.apache.cocoon.environment.Request;
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
+import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.DocumentException;
+import org.apache.lenya.cms.publication.DocumentLocator;
+import org.apache.lenya.cms.publication.Publication;
+import org.apache.lenya.cms.publication.PublicationException;
+import org.apache.lenya.cms.publication.Repository;
+import org.apache.lenya.cms.publication.Session;
+import org.apache.lenya.cms.publication.URLInformation;
+import org.apache.lenya.util.ServletHelper;
+import org.springframework.web.context.WebApplicationContext;
+
+/**
+ * Helper class to handle documents from XSP.
+ */
+public class DocumentHelper {
+
+    private Map objectModel;
+    private Publication publication;
+
+    /**
+     * Ctor.
+     * @param manager The service manager.
+     * @param _objectModel The Cocoon object model.
+     */
+    public DocumentHelper(Map _objectModel) {
+        WebApplicationContext context = WebAppContextUtils.getCurrentWebApplicationContext();
+        Repository repo = (Repository) context.getBean(Repository.class.getName());
+
+        Request request = ObjectModelHelper.getRequest(_objectModel);
+        Session session = repo.getSession(request);
+
+        this.objectModel = _objectModel;
+        URLInformation info = new URLInformation(ServletHelper.getWebappURI(request));
+        this.publication = session.getPublication(info.getPublicationId());
+    }
+
+    /**
+     * Creates a document URL. <br/>
+     * If the document ID is null, the current document ID is used. <br/>
+     * If the document area is null, the current area is used. <br/>
+     * If the language is null, the current language is used.
+     * @param uuid The target document UUID.
+     * @param documentArea The target area.
+     * @param language The target language.
+     * @return A string.
+     * @throws ProcessingException if something went wrong.
+     */
+    public String getDocumentUrl(String uuid, String documentArea, String language)
+            throws ProcessingException {
+
+        String url = null;
+
+            Request request = ObjectModelHelper.getRequest(this.objectModel);
+            String webappUrl = ServletHelper.getWebappURI(request);
+            Document envDocument = this.publication.getSession().getUriHandler().getDocument(
+                    webappUrl);
+            if (uuid == null) {
+                uuid = envDocument.getUUID();
+            }
+
+            if (documentArea == null) {
+                URLInformation info = new URLInformation(webappUrl);
+                String completeArea = info.getCompleteArea();
+                documentArea = completeArea;
+            }
+
+            if (language == null) {
+                language = envDocument.getLanguage();
+            }
+
+            Document document = this.publication.getArea(documentArea).getDocument(uuid, language);
+            url = document.getCanonicalWebappURL();
+
+            String contextPath = request.getContextPath();
+            if (contextPath == null) {
+                contextPath = "";
+            }
+
+            url = contextPath + url;
+
+        return url;
+
+    }
+
+    /**
+     * Returns the complete URL of the parent document. If the document is a top-level document, the
+     * /index document is chosen. If the parent does not exist in the appropriate language, the
+     * default language is chosen.
+     * @return A string.
+     * @throws ProcessingException when something went wrong.
+     */
+    public String getCompleteParentUrl() throws ProcessingException {
+
+        String parentUrl;
+        String contextPath;
+        try {
+            Request request = ObjectModelHelper.getRequest(this.objectModel);
+            String webappUrl = ServletHelper.getWebappURI(request);
+            Document document = this.publication.getSession().getUriHandler()
+                    .getDocument(webappUrl);
+
+            contextPath = request.getContextPath();
+
+            DocumentLocator parentLocator = document.getLocator().getParent("/index");
+            Document parent = this.publication.getArea(document.getArea()).getSite().getNode(
+                    parentLocator.getPath()).getLink(document.getLanguage()).getDocument();
+            parentUrl = parent.getCanonicalWebappURL();
+        } catch (final PublicationException e) {
+            throw new ProcessingException(e);
+        }
+        if (contextPath == null) {
+            contextPath = "";
+        }
+
+        return contextPath + parentUrl;
+    }
+
+    /**
+     * Returns an existing language version of a document. If the document exists in the default
+     * language, the default language version is returned. Otherwise, a random language version is
+     * returned. If no language version exists, a DocumentException is thrown.
+     * 
+     * @param document The document.
+     * @return A document.
+     * @throws DocumentException when an error occurs.
+     */
+    public static Document getExistingLanguageVersion(Document document) throws DocumentException {
+        return getExistingLanguageVersion(document, document.getPublication().getDefaultLanguage());
+    }
+
+    /**
+     * Returns an existing language version of a document. If the document exists in the preferred
+     * language, this version is returned. Otherwise, if the document exists in the default
+     * language, the default language version is returned. Otherwise, a random language version is
+     * returned. If no language version exists, a DocumentException is thrown.
+     * 
+     * @param document The document.
+     * @param preferredLanguage The preferred language.
+     * @return A document.
+     * @throws DocumentException when an error occurs.
+     */
+    public static Document getExistingLanguageVersion(final Document document,
+            String preferredLanguage) throws DocumentException {
+
+        Publication publication = document.getPublication();
+
+        String[] languages = document.getLanguages();
+
+        if (languages.length == 0) {
+            throw new DocumentException("The document [" + document
+                    + "] does not exist in any language!");
+        }
+
+        List languageList = Arrays.asList(languages);
+
+        String existingLanguage = null;
+
+        if (languageList.contains(preferredLanguage)) {
+            existingLanguage = preferredLanguage;
+        } else if (languageList.contains(publication.getDefaultLanguage())) {
+            existingLanguage = publication.getDefaultLanguage();
+        } else {
+            existingLanguage = languages[0];
+        }
+
+        return document.getTranslation(existingLanguage);
+    }
+
+}
\ No newline at end of file

Propchange: lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentHelper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/DocumentHelper.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/LanguageVersions.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/LanguageVersions.java?rev=1034335&view=auto
==============================================================================
--- lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/LanguageVersions.java (added)
+++ lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/LanguageVersions.java Fri Nov 12 10:16:12 2010
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+/* $Id$  */
+
+package org.apache.lenya.cms.publication.util;
+
+import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.publication.DocumentException;
+
+/**
+ * Document set containing all language versions of a document.
+ */
+public class LanguageVersions extends DocumentSet {
+
+    /**
+     * Ctor.
+     * @param document The document.
+     * @throws DocumentException when something went wrong.
+     */
+    public LanguageVersions(Document document) throws DocumentException {
+        String[] languages = document.getLanguages();
+        add(document);
+
+        for (int i = 0; i < languages.length; i++) {
+            if (!document.getLanguage().equals(languages[i])) {
+                Document languageVersion;
+                languageVersion = document.getTranslation(languages[i]);
+                add(languageVersion);
+            }
+        }
+    }
+
+}
\ No newline at end of file

Propchange: lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/LanguageVersions.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lenya/trunk/org.apache.lenya.core.publication/src/main/java/org/apache/lenya/cms/publication/util/LanguageVersions.java
------------------------------------------------------------------------------
    svn:keywords = Id



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org