Package com.ocpsoft.pretty.faces.config.mapping

Examples of com.ocpsoft.pretty.faces.config.mapping.PathParameter


   @Test
   public void testSpacing3() throws Exception
   {
      String expression = "#{/test/  name}";
      PathParameter param = new PathParameter();
      param.setExpression(expression);
      param = p.process(param);

      assertEquals("#{name}", param.getExpression().getELExpression());
      assertEquals("test", param.getRegex());
   }
View Full Code Here


   @Test
   public void testSpacing4() throws Exception
   {
      String expression = "#{  /test/name:point.p}";
      PathParameter param = new PathParameter();
      param.setExpression(expression);
      param = p.process(param);

      assertEquals("#{name:point.p}", param.getExpression().getELExpression());
      assertEquals("test", param.getRegex());
   }
View Full Code Here

   @Test
   public void testBoundaries() throws Exception
   {
      String expression = "#{  /te/st/name}";
      PathParameter param = new PathParameter();
      param.setExpression(expression);
      param = p.process(param);

      assertEquals("#{name}", param.getExpression().getELExpression());
      assertEquals("te/st", param.getRegex());
   }
View Full Code Here

   @Test
   public void testBoundaries2() throws Exception
   {
      String expression = "#{  /te[^/]+/st/name}";
      PathParameter param = new PathParameter();
      param.setExpression(expression);
      param = p.process(param);

      assertEquals("#{name}", param.getExpression().getELExpression());
      assertEquals("te[^/]+/st", param.getRegex());
   }
View Full Code Here

   {
      URLPatternParser parser = new URLPatternParser("/foo/#{ /(?!=admin)[^/]+/ named}/");
      List<PathParameter> params = parser.parse(new URL("/foo/love/"));
      assertEquals(1, params.size());

      PathParameter p = params.get(0);
      assertEquals(0, p.getPosition());
      assertEquals("love", p.getValue());
      assertEquals("named", p.getName());
      assertEquals("#{named}", p.getExpression().getELExpression());
      assertEquals("(?!=admin)[^/]+", p.getRegex());
   }
View Full Code Here

   {
      URLPatternParser parser = new URLPatternParser("/foo/#{ /.*/ named}/");
      List<PathParameter> params = parser.parse(new URL("/foo/love/again/"));
      assertEquals(1, params.size());

      PathParameter p = params.get(0);
      assertEquals(0, p.getPosition());
      assertEquals("love/again", p.getValue());
      assertEquals("named", p.getName());
      assertEquals("#{named}", p.getExpression().getELExpression());
      assertEquals(".*", p.getRegex());
   }
View Full Code Here

   {
      URLPatternParser parser = new URLPatternParser("/#{ /.*/ named}/");
      List<PathParameter> params = parser.parse(new URL("/foo/love/again/"));
      assertEquals(1, params.size());

      PathParameter p = params.get(0);
      assertEquals(0, p.getPosition());
      assertEquals("foo/love/again", p.getValue());
      assertEquals("named", p.getName());
      assertEquals("#{named}", p.getExpression().getELExpression());
      assertEquals(".*", p.getRegex());
   }
View Full Code Here

   {
      URLPatternParser parser = new URLPatternParser("/foo/#{ /(\\\\d+/\\\\w+)/ inje.cted}/");
      List<PathParameter> params = parser.parse(new URL("/foo/2010/again/"));
      assertEquals(1, params.size());

      PathParameter p = params.get(0);
      assertEquals(0, p.getPosition());
      assertEquals("2010/again", p.getValue());
      assertEquals("com.ocpsoft.vP_0", p.getName());
      assertEquals("#{inje.cted}", p.getExpression().getELExpression());
      assertEquals("(\\\\d+/\\\\w+)", p.getRegex());
   }
View Full Code Here

   {
      URLPatternParser parser = new URLPatternParser("/foo/#{ /(\\\\d+/\\\\w+)/ inje.cted}/and-#{valued}");
      List<PathParameter> params = parser.parse(new URL("/foo/2010/again/and-avalue"));
      assertEquals(2, params.size());

      PathParameter p = params.get(1);
      assertEquals(1, p.getPosition());
      assertEquals("avalue", p.getValue());
      assertEquals("valued", p.getName());
      assertEquals("#{valued}", p.getExpression().getELExpression());
      assertEquals("[^/]+", p.getRegex());
   }
View Full Code Here

   private void validatePathParams(final FacesContext context, final URL url, final UrlMapping mapping)
   {
      List<PathParameter> params = mapping.getPatternParser().parse(url);

      PathParameter currentParameter = new PathParameter();
      PathValidator currentPathValidator = new PathValidator();
      String currentValidatorId = "";
      try
      {
         for (PathParameter param : params)
         {
            currentParameter = param;

            List<PathValidator> validators = mapping.getValidatorsForPathParam(param);

            if (validators != null && validators.size() > 0)
            {
               String value = param.getValue();
               Object coerced = elUtils.coerceToType(context, param.getExpression().getELExpression(), value);
               for (PathValidator pv : validators)
               {
                  currentPathValidator = pv;
                  for (String id : pv.getValidatorIdList())
                  {
                     currentValidatorId = id;
                     Validator validator = context.getApplication().createValidator(id);
                     validator.validate(context, new NullComponent(), coerced);
                  }
                  if (pv.getValidatorExpression() != null)
                  {
                     elUtils.invokeMethod(context, pv.getValidatorExpression().getELExpression(),
                              new Class<?>[] { FacesContext.class, UIComponent.class, Object.class },
                              new Object[] { context, new NullComponent(), coerced });
                  }
               }
            }
         }
      }
      catch (ELException e)
      {
         FacesMessage message = new FacesMessage("Could not coerce value [" + currentParameter.getValue()
                  + "] on mappingId [" + mapping.getId() + "] to type in location [" + currentParameter.getExpression()
                  + "]");
         handleValidationFailure(context, message, currentPathValidator.getOnError());
      }
      catch (ValidatorException e)
      {
         handleValidationFailure(context, e.getFacesMessage(), currentPathValidator.getOnError());
      }
      catch (FacesException e)
      {
         FacesMessage message = new FacesMessage("Error occurred invoking validator with id [" + currentValidatorId
                  + "] on mappingId [" + mapping.getId() + "] parameter [" + currentParameter.getExpression()
                  + "] at position [" + currentParameter.getPosition() + "]");
         handleValidationFailure(context, message, currentPathValidator.getOnError());
      }
   }
View Full Code Here

TOP

Related Classes of com.ocpsoft.pretty.faces.config.mapping.PathParameter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.