lenya/src/java/org/apache/lenya/cms/publication PageEnvelope.java,1.9,1.10

Christian Egli <[email protected]>
Newsgroups gmane.comp.cms.wyona.cvs
Message-ID <[email protected]>
Update of /repository/lenya/src/java/org/apache/lenya/cms/publication
In directory erbium:/tmp/cvs-serv26449/src/java/org/apache/lenya/cms/publication

Modified Files:
	PageEnvelope.java 
Log Message:
Added code to return the document-id. The algorithm to calculate the
document-id is based on an assumption which doesn't necessarily hold
true under all circumstances. That's what the uriparametrizer was
meant to solve. This code should probably be used here. It just doen's
feel right to invoke another cocoon: request with every invocation of
PageEnvelope (and util.xsl).


Index: PageEnvelope.java
===================================================================
RCS file: /repository/lenya/src/java/org/apache/lenya/cms/publication/PageEnvelope.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** PageEnvelope.java	7 May 2003 17:18:59 -0000	1.9
--- PageEnvelope.java	8 May 2003 07:35:30 -0000	1.10
***************
*** 9,12 ****
--- 9,16 ----
  import java.io.File;
  import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.List;
+ import java.util.Iterator;
+ 
  import org.apache.cocoon.ProcessingException;
  import org.apache.cocoon.environment.Request;
***************
*** 28,37 ****
      public static final String CONTEXT = "context-prefix";
      public static final String AREA = "area";
      public static final int AREA_POS = 3;
!     
      private Publication publication;
      private RCEnvironment rcEnvironment;
      private String context;
      private String area;
  
      /** Creates a new instance of PageEnvelope */
--- 32,45 ----
      public static final String CONTEXT = "context-prefix";
      public static final String AREA = "area";
+     public static final String DOCUMENT_ID = "document-id";
+ 
      public static final int AREA_POS = 3;
!     public static final int DOCUMENT_ID_POS = 4;
! 
      private Publication publication;
      private RCEnvironment rcEnvironment;
      private String context;
      private String area;
+     private String documentId;
  
      /** Creates a new instance of PageEnvelope */
***************
*** 64,68 ****
  	log.debug("requestURI: " + requestURI);
  	directories = requestURI.split("/");
!         area = directories[AREA_POS];;
  
          publication = new Publication(publicationId, path);
--- 72,97 ----
  	log.debug("requestURI: " + requestURI);
  	directories = requestURI.split("/");
!         area = directories[AREA_POS];
! 
! 	// the computation of the document id is based on the
! 	// assumption that and URI matches of the following pattern:
! 	// http:/<context-prefix>/<publication-id>/<area>/<document-id>.*
! 	// where document-id can be foo/bar/baz
! 	documentId = "";
! 	List documentIds = Arrays.asList(directories).subList(DOCUMENT_ID_POS, directories.length);
! 	// remove the suffix from the last element
! 	log.debug("documentIds: " + documentIds);
! 	String lastPartOfDocumentId = (String)documentIds.get(documentIds.size()-1);
! 	log.debug("lastPartOfDocumentId: " + lastPartOfDocumentId);
! 	int startOfSuffix = lastPartOfDocumentId.indexOf('.');
! 	log.debug("startOfSuffix: " + startOfSuffix);
! 	if (startOfSuffix >= 0) {
! 	    documentIds.set(documentIds.size()-1, lastPartOfDocumentId.substring(0, startOfSuffix));
! 	    log.debug("w/oSuffix: " + lastPartOfDocumentId.substring(0, startOfSuffix));
! 	}
! 	log.debug("documentIds: " + documentIds);
! 	for (Iterator i = documentIds.iterator(); i.hasNext();) {
! 	    documentId += "/" + i.next();
! 	}
  
          publication = new Publication(publicationId, path);
***************
*** 100,102 ****
--- 129,137 ----
      }
      
+     /**
+      * Returns the document-id.
+      */
+     public String getDocumentId() {
+         return documentId;
+     }
  }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.