本文整理汇总了Java中com.mitchellbosecke.pebble.error.LoaderException类的典型用法代码示例。如果您正苦于以下问题:Java LoaderException类的具体用法?Java LoaderException怎么用?Java LoaderException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LoaderException类属于com.mitchellbosecke.pebble.error包,在下文中一共展示了LoaderException类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: getReader
import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String templateName) throws LoaderException {
return new StringReader(templateName);
}
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:5,代码来源:StringLoader.java
示例17: sample
import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Test
public void sample() throws PebbleException, IOException {
Loader<String> loader=new Loader<String>() {
@Override
public Reader getReader(String cacheKey) throws LoaderException {
return new StringReader("{{ foo }}");
}
@Override
public void setCharset(String charset) {
throw new IllegalArgumentException("what?");
}
@Override
public void setPrefix(String prefix) {
throw new IllegalArgumentException("what?");
}
@Override
public void setSuffix(String suffix) {
throw new IllegalArgumentException("what?");
}
@Override
public String resolveRelativePath(String relativePath, String anchorPath) {
return "fuuu";
}
@Override
public String createCacheKey(String templateName) {
return templateName;
}
};
PebbleEngine engine = new PebbleEngine.Builder()
.loader(loader)
.build();
PebbleTemplate template = engine.getTemplate("sample.html");
StringWriter writer = new StringWriter();
Map<String, Object> context=ImmutableMap.of("foo","what?");
template.evaluate(writer, context, Locale.GERMANY);
String result = writer.toString();
assertEquals("what?",result);
}
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:49,代码来源:PebbleThemeTest.java
示例18: getReader
import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String templateName) throws LoaderException {
throw new LoaderException(null, "Could not find template ");
}
开发者ID:flapdoodle-oss,项目名称:de.flapdoodle.solid,代码行数:5,代码来源:LoaderTest.java
示例19: getReader
import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
@Override
public Reader getReader(String templateName) throws LoaderException {
templateName = templateName.replaceAll("::.*::", "");
boolean ignoreMissing = false;
if(templateName.startsWith("?")) {
ignoreMissing = true;
templateName = StringUtils.stripStart(templateName, "?");
}
if(!templateName.contains(".")) {
templateName = templateName + "." + context.getTheme().getPreferredTemplateExtension();
}
if(templateName.contains(",")) {
String[] templates = templateName.split(",");
for(String template : templates) {
try {
Reader reader = getReaderFromSingleFile(template, false);
if(reader != null) {
return reader;
}
}
catch (LoaderException e) {
}
}
if(ignoreMissing) {
return new StringReader("");
}
else {
throw new LoaderException(null, "Could not find template in list \"" + templateName + "\"");
}
}
else {
return getReaderFromSingleFile(templateName, ignoreMissing);
}
}
开发者ID:JavaEden,项目名称:Orchid,代码行数:42,代码来源:PebbleTemplateLoader.java
示例20: getReaderFromSingleFile
import com.mitchellbosecke.pebble.error.LoaderException; //导入依赖的package包/类
private Reader getReaderFromSingleFile(String templateName, boolean ignoreMissing) throws LoaderException {
templateName = OrchidUtils.normalizePath(templateName);
InputStreamReader isr = null;
Reader reader = null;
InputStream is = null;
// add the prefix and ensure the prefix ends with a separator character
StringBuilder path = new StringBuilder("");
if (getPrefix() != null) {
path.append(getPrefix());
if (!getPrefix().endsWith("/")) {
path.append("/");
}
}
templateName = templateName + (getSuffix() == null ? "" : getSuffix());
/*
* if template name contains path segments, move those segments into the
* path variable. The below technique needs to know the difference
* between the path and file name.
*/
String[] pathSegments = templateName.split("/");
if (pathSegments.length > 1) {
// file name is the last segment
templateName = pathSegments[pathSegments.length - 1];
}
for (int i = 0; i < (pathSegments.length - 1); i++) {
path.append(pathSegments[i]).append(File.separatorChar);
}
String fullFileName = OrchidUtils.normalizePath(path.toString() + templateName);
if(!fullFileName.startsWith("templates/")) {
fullFileName = "templates/" + fullFileName;
}
// try to load File
if (is == null) {
OrchidResource resource = context.getResourceEntry(fullFileName);
if (resource != null) {
is = resource.getContentStream();
}
}
if (is == null) {
if(ignoreMissing) {
return new StringReader("");
}
else {
throw new LoaderException(null, "Could not find template \"" + fullFileName + "\"");
}
}
try {
isr = new InputStreamReader(is, charset);
reader = new BufferedReader(isr);
}
catch (UnsupportedEncodingException e) {
}
return reader;
}
开发者ID:JavaEden,项目名称:Orchid,代码行数:68,代码来源:PebbleTemplateLoader.java
注:本文中的com.mitchellbosecke.pebble.error.LoaderException类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论