当前位置: 首页>>代码示例>>Java>>正文


Java LoaderException类代码示例

本文整理汇总了Java中com.mitchellbosecke.pebble.error.LoaderException的典型用法代码示例。如果您正苦于以下问题:Java LoaderException类的具体用法?Java LoaderException怎么用?Java LoaderException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


LoaderException类属于com.mitchellbosecke.pebble.error包,在下文中一共展示了LoaderException类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(DelegatingLoaderCacheKey cacheKey) throws LoaderException {

    Reader reader = null;

    final int size = this.loaders.size();
    for (int i = 0; i < size; i++) {
        Loader<?> loader = this.loaders.get(i);
        Object delegatingKey = cacheKey.getDelegatingCacheKeys().get(i);
        try {
            reader = this.getReaderInner(loader, delegatingKey);
            if (reader != null) {
                break;
            }
        } catch (LoaderException e) {
            // do nothing
        }
    }
    if (reader == null) {
        throw new LoaderException(null, "Could not find template \"" + cacheKey.getTemplateName() + "\"");
    }

    return reader;
}
 
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:25,代码来源:DelegatingLoader.java

示例2: getPebbleTemplate

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
private PebbleTemplate getPebbleTemplate(final PebbleEngine self, final String templateName, final Object cacheKey) throws LoaderException, ParserException {
    LexerImpl lexer = new LexerImpl(syntax, extensionRegistry.getUnaryOperators().values(),
            extensionRegistry.getBinaryOperators().values());
    Reader templateReader = self.retrieveReaderFromLoader(self.loader, cacheKey);
    TokenStream tokenStream = lexer.tokenize(templateReader, templateName);

    Parser parser = new ParserImpl(extensionRegistry.getUnaryOperators(),
            extensionRegistry.getBinaryOperators(), extensionRegistry.getTokenParsers());
    RootNode root = parser.parse(tokenStream);

    PebbleTemplateImpl instance = new PebbleTemplateImpl(self, root, templateName);

    for (NodeVisitorFactory visitorFactory : extensionRegistry.getNodeVisitors()) {
        visitorFactory.createVisitor(instance).visit(root);
    }

    return instance;
}
 
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:19,代码来源:PebbleEngine.java

示例3: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String templateName) throws LoaderException {
  
  Path template = contentDir.getFileSystem().getPath(templateName).normalize();

  try {
    if (template.startsWith(contentDir)) {
      return new StringReader(Renderer.getContentFileResource(template, contentDir, root).getContent().orElseThrow(IllegalArgumentException::new));
    } else if (template.startsWith(layoutDir)) {
      return newBufferedReader(template, StandardCharsets.UTF_8);
    } else {
      // it's outside the content dir: must be resolved over the baseDir
      return newBufferedReader(baseDir.resolve(template), StandardCharsets.UTF_8);
    }
  } catch (IOException ioe) {
    throw new LoaderException(ioe, "was not able to load referenced template");
  }
}
 
开发者ID:digitalfondue,项目名称:stampo,代码行数:19,代码来源:PebblePathLoader.java

示例4: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String templateName) throws LoaderException {
    String[] parts = templateName.split("/", 2);

    if (parts.length != 2) {
        throw new IllegalArgumentException("Not a valid name: " + templateName);
    }
    CMSTheme theme = CMSTheme.forType(parts[0]);
    if (theme == null) {
        throw new IllegalArgumentException("Theme " + parts[0] + " not found!");
    }

    byte[] bytes = theme.contentForPath(parts[1]);
    if (bytes == null) {
        throw new IllegalArgumentException("Theme " + parts[0] + " does not contain resource '" + parts[1] + '"');
    }
    return new InputStreamReader(new ByteArrayInputStream(bytes), StandardCharsets.UTF_8);
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:19,代码来源:CMSRenderer.java

示例5: getTemplate

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
private PebbleTemplate getTemplate(String templateName, String localePart) throws PebbleException {
    PebbleTemplate template = null;
    try {
        if (Strings.isNullOrEmpty(localePart)) {
            template = engine.getTemplate(templateName);
        } else {
            String localizedName = StringUtils.removeEnd(templateName, "." +
                getFileExtension()) + "_" + localePart;
            template = engine.getTemplate(localizedName);
        }
    } catch (LoaderException e) {
        log.debug(e.getMessage());
    }

    return template;
}
 
开发者ID:decebals,项目名称:pippo,代码行数:17,代码来源:PebbleTemplateEngine.java

示例6: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String cacheKey) throws LoaderException {
	Maybe<StringReader> reader = Maybe.ofNullable(templates.get(cacheKey))
			.map(StringReader::new);
	
	if (!reader.isPresent()) {
		throw new LoaderException(new RuntimeException("not in map"), "could not load "+cacheKey);
	}
	
	return reader.get();
}
 
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:12,代码来源:StringMapLoader.java

示例7: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String cacheKey) throws LoaderException {
	try {
		return new FileReader(templateRoot.resolve(cacheKey).toFile());
	}
	catch (FileNotFoundException e) {
		throw new LoaderException(e, "could not load "+cacheKey);
	}
}
 
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:10,代码来源:TemplateLoader.java

示例8: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String templateName) throws LoaderException {

    InputStreamReader isr = null;
    Reader reader = null;

    InputStream is = null;

    // Add the prefix and make sure that it ends with a separator character
    StringBuilder path = new StringBuilder(128);
    if (getPrefix() != null) {

        path.append(getPrefix());

        // we do NOT use OS dependent separators here; getResourceAsStream
        // explicitly requires forward slashes.
        if (!getPrefix().endsWith(Character.toString(expectedSeparator))) {
            path.append(expectedSeparator);
        }
    }
    path.append(templateName);
    if (getSuffix() != null)
        path.append(getSuffix());
    String location = path.toString();
    logger.debug("Looking for template in {}.", location);

    is = context.getResourceAsStream(location);

    if (is == null) {
        throw new LoaderException(null, "Could not find template \"" + location + "\"");
    }

    try {
        isr = new InputStreamReader(is, charset);
        reader = new BufferedReader(isr);
    } catch (UnsupportedEncodingException e) {
    }

    return reader;
}
 
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:41,代码来源:ServletLoader.java

示例9: getReaderInner

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
private <T> Reader getReaderInner(Loader<T> delegatingLoader, Object cacheKey)
        throws LoaderException {

    // This unchecked cast is ok, because we ensure that the type of the
    // cache key corresponds to the loader when we create the key.
    @SuppressWarnings("unchecked")
    T castedKey = (T) cacheKey;

    return delegatingLoader.getReader(castedKey);
}
 
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:11,代码来源:DelegatingLoader.java

示例10: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(final String resourceName) throws LoaderException {
    final String fullyQualifiedResourceName = getFullyQualifiedResourceName(resourceName);
    final Resource resource = resourceLoader.getResource(fullyQualifiedResourceName);
    if (resource.exists()) {
        try {
            return new InputStreamReader(resource.getInputStream(), charset);
        } catch (IOException e) {
            throw new LoaderException(e, "Failed to load template: " + fullyQualifiedResourceName);
        }
    }
    throw new LoaderException(null, "No template exists named: " + fullyQualifiedResourceName);
}
 
开发者ID:LionelWoody,项目名称:spring-boot-starter-pebble,代码行数:14,代码来源:PebbleTemplateLoader.java

示例11: testGetReaderFailsOnUnknownResource

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Test
public void testGetReaderFailsOnUnknownResource() throws Exception {
    //Arrange
    thrown.expect(LoaderException.class);

    final String resourceName = UUID.randomUUID().toString();

    //Act
    pebbleTemplateLoader.getReader(resourceName);

    //Assert
    fail(String.format("Expected a LoaderException, while the given resource '%s' exists", resourceName));
}
 
开发者ID:LionelWoody,项目名称:spring-boot-starter-pebble,代码行数:14,代码来源:PebbleTemplateLoaderTest.java

示例12: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String templateName) throws LoaderException {

    StringBuilder path = new StringBuilder("");
    if (getPrefix() != null) {

        path.append(getPrefix());

        if (!getPrefix().endsWith(String.valueOf('/'))) {
            path.append('/');
        }
    }

    String resource = path.toString() + templateName + (getSuffix() == null ? "" : getSuffix());
    String location = resource;
    if (resource.charAt(0) == '/') {
        location = resource.substring(1);
    }
    URL url = ClasspathUtils.locateOnClasspath(location);

    if (url == null) {
        throw new LoaderException(null, "Could not find template \"" + location + "\"");
    }

    Reader reader = null;
    try {
        InputStream is = url.openStream();
        InputStreamReader isr = new InputStreamReader(is, getCharset());
        reader = new BufferedReader(isr);
    } catch (IOException e) {
        throw new PippoRuntimeException(e);
    }

    return reader;
}
 
开发者ID:decebals,项目名称:pippo,代码行数:36,代码来源:PippoTemplateLoader.java

示例13: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String s) throws LoaderException {
  try {
    final String buffer = Utils.readFileToString(vertx, s, charset);
    return new StringReader(buffer);
  } catch (RuntimeException e) {
    throw new LoaderException(e, e.getMessage());
  }
}
 
开发者ID:vert-x3,项目名称:vertx-web,代码行数:10,代码来源:PebbleVertxLoader.java

示例14: render

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public void render(final View view, final Renderer.Context ctx) throws Exception {
  String vname = view.name();
  try {
    Map<String, Object> locals = ctx.locals();

    if (vname.charAt(0) == '/') {
      vname = vname.substring(1);
    }
    PebbleTemplate template = pebble.getTemplate(vname);
    Writer writer = new StringWriter();
    Map<String, Object> model = new HashMap<>();

    // push locals
    model.putAll(locals);
    model.putIfAbsent("_vname", vname);

    // Locale:
    Locale locale = (Locale) locals.getOrDefault("locale", ctx.locale());
    model.putIfAbsent("locale", locale);

    // put model
    model.putAll(view.model());

    // render and send
    template.evaluate(writer, model, locale);

    ctx.type(MediaType.html)
        .send(writer.toString());
  } catch (LoaderException x) {
    FileNotFoundException fnf = new FileNotFoundException(x.getMessage().replace("Could not find template", "").trim());
    fnf.initCause(x);
    throw fnf;
  }
}
 
开发者ID:jooby-project,项目名称:jooby,代码行数:36,代码来源:PebbleRenderer.java

示例15: getReader

import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String templateName) throws LoaderException {

    InputStreamReader isr = null;
    Reader reader = null;

    InputStream is = null;

    // append the prefix and make sure prefix ends with a separator character
    StringBuilder path = new StringBuilder(128);
    if (getPrefix() != null) {

        path.append(getPrefix());

        // we do NOT use OS dependent separators here; getResourceAsStream
        // explicitly requires forward slashes.
        if (!getPrefix().endsWith(Character.toString(expectedSeparator))) {
            path.append(expectedSeparator);
        }
    }
    path.append(templateName);
    if (getSuffix() != null)
        path.append(getSuffix());
    String location = path.toString();
    logger.debug("Looking for template in {}.", location);

    // perform the lookup
    is = rcl.getResourceAsStream(location);

    if (is == null) {
        throw new LoaderException(null, "Could not find template \"" + location + "\"");
    }

    try {
        isr = new InputStreamReader(is, charset);
        reader = new BufferedReader(isr);
    } catch (UnsupportedEncodingException e) {
    }

    return reader;
}
 
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:42,代码来源:ClasspathLoader.java


注:本文中的com.mitchellbosecke.pebble.error.LoaderException类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。