Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * #%L
   * *********************************************************************************************************************
   *
   * NorthernWind - lightweight CMS
   * http://northernwind.tidalwave.it - hg clone https://bitbucket.org/tidalwave/northernwind-src
   * %%
   * Copyright (C) 2011 - 2013 Tidalwave s.a.s. (http://tidalwave.it)
   * %%
  * *********************************************************************************************************************
  *
  * 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.
  *
  * *********************************************************************************************************************
  *
  * $Id: ParameterLanguageOverrideLinkPostProcessor.java,v 71af91162320 2013/06/14 22:13:17 fabrizio $
  *
  * *********************************************************************************************************************
  * #L%
  */
 package it.tidalwave.northernwind.core.model.spi;
 
 import  javax.annotation.Nonnull;
 import  it.tidalwave.util.NotFoundException;

Author(s):
Fabrizio Giudici
Version:
$Id: ParameterLanguageOverrideLinkPostProcessor.java,v 71af91162320 2013/06/14 22:13:17 fabrizio $ /
 
   {
     @Inject @Nonnull
/
 
     @Override @Nonnull
     public String postProcess (final @Nonnull String link)
       {
         try
           {
             final String parameterValue = .getParameterValue();
             return postProcess(linkparameterValue);
           }
         catch (NotFoundException e)
           {
             return link;
           }
       }

    
/
 
     @Nonnull
     public String postProcess (final @Nonnull String linkfinal @Nonnull String parameterValue)
       {
         final String parameterName = .getParameterName();
         final String regexp = "([\\?&])(" + parameterName + "=[a-z,0-9]*)";
 
         final Matcher matcher = Pattern.compile(regexp).matcher(link);
 
         if (matcher.find()) // replace a parameter already present
           {
             final StringBuffer buffer = new StringBuffer();
             matcher.appendReplacement(buffermatcher.group(1) + parameterName + "=" + parameterValue);
             matcher.appendTail(buffer);
 
             return buffer.toString();
           }
 
         final StringBuilder builder = new StringBuilder(link);
 
         if (link.contains("?"))
           {
             builder.append("&");
           }
         else
           {
             if (!builder.toString().endsWith("/") && !builder.toString().contains(".")) // FIXME: check . only in trailing
               {
                builder.append("/");
              }
            builder.append("?");
          }
        builder.append(parameterName).append("=").append(parameterValue);
        return builder.toString();
      }
  }
New to GrepCode? Check out our FAQ X