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