Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  // Copyright 2005 The Apache Software Foundation
  //
  // Licensed 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.
 
 package org.apache.tapestry.engine.encoders;
 
A specialized encoder for the direct service  that encodes the page name and component id path into the servlet path, and encodes the stateful flag by choosing one of two extensions.

Author(s):
Howard M. Lewis Ship
Since:
4.0
 
 public class DirectServiceEncoder implements ServiceEncoder
 {
 
     private String _statelessExtension;
 
     private String _statefulExtension;
 
     public void encode(ServiceEncoding encoding)
     {
         String service = encoding.getParameterValue(.);
         if (!service.equals(.)) return;
 
         String pageName = encoding.getParameterValue(.);
 
         // Only handle pages in the application namespace (not from a library).
 
         if (pageName.indexOf(.) >= 0) return;
 
         String stateful = encoding.getParameterValue(.);
         String componentIdPath = encoding
                 .getParameterValue(.);
 
         StringBuffer buffer = new StringBuffer("/");
         buffer.append(pageName);
 
         buffer.append(",");
         buffer.append(componentIdPath);
 
         buffer.append(".");
         buffer.append(stateful != null ? 
                 : );
 
         encoding.setServletPath(buffer.toString());
 
         encoding.setParameterValue(.null);
         encoding.setParameterValue(.null);
         encoding.setParameterValue(.null);
         encoding.setParameterValue(.null);
     }
 
     public void decode(ServiceEncoding encoding)
     {
         String servletPath = encoding.getServletPath();
 
         int dotx = servletPath.lastIndexOf('.');
         if (dotx < 0) return;
 
         String extension = servletPath.substring(dotx + 1);
 
         if (!(extension.equals() || extension
                 .equals())) return;
 
         int commax = servletPath.lastIndexOf(',');
 
         String pageName = servletPath.substring(1, commax);
         String componentIdPath = servletPath.substring(commax + 1, dotx);
 
         encoding.setParameterValue(.,
                 .);
         encoding.setParameterValue(.pageName);
         encoding.setParameterValue(.extension
                 .equals() ? "T" : null);
         encoding.setParameterValue(.componentIdPath);
     }
 
     public void setStatefulExtension(String statefulExtension)
     {
          = statefulExtension;
    }
    public void setStatelessExtension(String statelessExtension)
    {
         = statelessExtension;
    }
New to GrepCode? Check out our FAQ X