Coverage Report - org.apache.tapestry.services.impl.AbsoluteURLBuilderImpl
 
Classes in this File Line Coverage Branch Coverage Complexity
AbsoluteURLBuilderImpl
0%
0/27
0%
0/18
4.667
 
 1  
 // Copyright 2004, 2005 The Apache Software Foundation
 2  
 //
 3  
 // Licensed under the Apache License, Version 2.0 (the "License");
 4  
 // you may not use this file except in compliance with the License.
 5  
 // You may obtain a copy of the License at
 6  
 //
 7  
 //     http://www.apache.org/licenses/LICENSE-2.0
 8  
 //
 9  
 // Unless required by applicable law or agreed to in writing, software
 10  
 // distributed under the License is distributed on an "AS IS" BASIS,
 11  
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12  
 // See the License for the specific language governing permissions and
 13  
 // limitations under the License.
 14  
 
 15  
 package org.apache.tapestry.services.impl;
 16  
 
 17  
 import org.apache.tapestry.services.AbsoluteURLBuilder;
 18  
 import org.apache.tapestry.web.WebRequest;
 19  
 
 20  
 /**
 21  
  * @author Howard M. Lewis Ship
 22  
  * @since 4.0
 23  
  */
 24  0
 public class AbsoluteURLBuilderImpl implements AbsoluteURLBuilder
 25  
 {
 26  
     private WebRequest _request;
 27  
 
 28  
     public String constructURL(String URI, String scheme, String server, int port)
 29  
     {
 30  
         // Though, really, what does a leading colon with no scheme before it
 31  
         // mean?
 32  
 
 33  0
         if (URI.indexOf(':') >= 0)
 34  0
             return URI;
 35  
 
 36  0
         StringBuffer buffer = new StringBuffer();
 37  
 
 38  
         // Should check the length here, first.
 39  
 
 40  0
         if (URI.length()> 2 && URI.substring(0, 2).equals("//"))
 41  
         {
 42  0
             buffer.append(scheme);
 43  0
             buffer.append(':');
 44  0
             buffer.append(URI);
 45  0
             return buffer.toString();
 46  
         }
 47  
 
 48  0
         buffer.append(scheme);
 49  0
         buffer.append("://");
 50  0
         buffer.append(server);
 51  
 
 52  0
         if (port > 0)
 53  
         {
 54  0
             buffer.append(':');
 55  0
             buffer.append(port);
 56  
         }
 57  
 
 58  0
         if (URI.charAt(0) != '/')
 59  0
             buffer.append('/');
 60  
 
 61  0
         buffer.append(URI);
 62  
 
 63  0
         return buffer.toString();
 64  
     }
 65  
 
 66  
     public String constructURL(String URI)
 67  
     {
 68  0
         String scheme = _request.getScheme();
 69  0
         String server = _request.getServerName();
 70  0
         int port = _request.getServerPort();
 71  
 
 72  
         // Keep things simple ... port 80 is accepted as the
 73  
         // standard port for http so it can be ommitted.
 74  
         //
 75  
         // Some of the Tomcat code indicates that port 443 is the default
 76  
         // for https.. And it is. 
 77  
 
 78  0
         if ((scheme.equals("http") && port == 80) || (scheme.equals("https") && port == 443))
 79  0
             port = 0;
 80  
 
 81  0
         return constructURL(URI, scheme, server, port);
 82  
     }
 83  
 
 84  
     public void setRequest(WebRequest request)
 85  
     {
 86  0
         _request = request;
 87  0
     }
 88  
 }