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 - 2014 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: NodeLinkWithContentMacroFilter.java,v f214f4c8488f 2014/01/03 18:03:50 fabrizio $
  *
  * *********************************************************************************************************************
  * #L%
  */
 package it.tidalwave.northernwind.core.impl.filter;
 
 import  javax.annotation.CheckForNull;
 import  javax.annotation.Nonnull;
 import  it.tidalwave.util.NotFoundException;

Author(s):
Fabrizio Giudici
Version:
$Id: NodeLinkWithContentMacroFilter.java,v f214f4c8488f 2014/01/03 18:03:50 fabrizio $ /
 
   {
     @Inject @Nonnull
     private Provider<SiteProvidersiteProvider;
 
     // FIXME: what about @AutoWired(required=false)?
     @Inject @Nonnull
     private ApplicationContext context;
 
     @CheckForNull
 
     // FIXME: merge with NodeLinkMacroFilter, using an optional block for contentRelativePath
       {
         super("\\$nodeLink\\(relativePath='([^']*)', contentRelativePath='([^']*)'(, language='([^']*)')?\\)\\$");
       }
 
     @Override @Nonnull
     protected String filter (final @Nonnull Matcher matcher)
       throws NotFoundException, IOException
       {
         final String relativePath = matcher.group(1);
         final String contentRelativePath = matcher.group(2);
         final String language = matcher.group(4);
         final Site site = .get().getSite();
         final SiteNode siteNode = site.find(SiteNode.class).withRelativePath(relativePath).result();
         final Content content = site.find(Content.class).withRelativePath(contentRelativePath).result();
         final ResourcePath path = siteNode.getRelativeUri().appendedWith(content.getExposedUri());
         final String link = site.createLink(path);
 
         return ((language == null) || ( == null)) ? link : .postProcess(linklanguage);
       }
 
     @PostConstruct
     private void initialize()
       {
         try
           {
           }
         catch (NoSuchBeanDefinitionException e)
           {
            // ok, it's optional
          }
      }
  }
New to GrepCode? Check out our FAQ X