Skip to content

Commit

Permalink
Rolling TemplateFileSourceInfo and ParentSourceInfo into one.
Browse files Browse the repository at this point in the history
  • Loading branch information
mmastrac committed Sep 20, 2011
1 parent 939c0f1 commit db34a60
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 54 deletions.
2 changes: 1 addition & 1 deletion stencil/src/net/stencilproject/template/BaseParser.java
Expand Up @@ -26,7 +26,7 @@ abstract class BaseParser {

public BaseParser(TemplateFileSourceInfo source) {
this.source = source;
this.templateFile = source.getTemplateFile();
this.templateFile = source.getSource();
this.rootUrl = templateFile.getUrl();
}

Expand Down
2 changes: 1 addition & 1 deletion stencil/src/net/stencilproject/template/Instruction.java
Expand Up @@ -64,7 +64,7 @@ public int getLine() {
};

public TemplateFile getSource() {
return source.getTemplateFile();
return source.getSource();
};

public SourceInfo getParent() {
Expand Down
33 changes: 0 additions & 33 deletions stencil/src/net/stencilproject/template/ParentSourceInfo.java

This file was deleted.

3 changes: 1 addition & 2 deletions stencil/src/net/stencilproject/template/Program.java
Expand Up @@ -46,12 +46,11 @@ public int getLine() {

@Override
public TemplateFile getSource() {
return source.getTemplateFile();
return source.getSource();
}

@Override
public SourceInfo getParent() {
return source.getParent();
}

}
16 changes: 8 additions & 8 deletions stencil/src/net/stencilproject/template/TemplateBuilder.java
Expand Up @@ -64,7 +64,7 @@ class ContentBlockContext extends BlockContext {
}

private TemplateBuilder(TemplateRootScope rootScope, TemplateFile templateFile, TemplateMode mode, TemplateOptions options) {
super(new TemplateFileSourceInfo(templateFile, null));
super(new TemplateFileSourceInfo(templateFile));

this.rootScope = rootScope;
this.mode = mode;
Expand All @@ -82,7 +82,7 @@ public static TemplateBuilder parse(TemplateRootScope rootScope, TemplateFile te
private void parse() throws TemplateParserException, IOException {
start = System.nanoTime();

TemplateContentHandler treeBuilder = new TemplateContentHandler(new TemplateFileSourceInfo(templateFile, null), mode, this);
TemplateContentHandler treeBuilder = new TemplateContentHandler(new TemplateFileSourceInfo(templateFile), mode, this);
treeBuilder.parse();

end = System.nanoTime();
Expand Down Expand Up @@ -129,13 +129,13 @@ private void parseStatement(TemplateFileSourceInfo source, Tree tree, final int

switch (type) {
case TemplateParser.INCLUDE: {
URL parentUrl = source.getTemplateFile().getUrl();
URL parentUrl = source.getSource().getUrl();
String include = tree.getChild(0).getText();
try {
URL url = new URL(parentUrl, include);
TemplateFile templateFile = TemplateFile.fromUrl(url);
TemplateContentHandler treeBuilder = new TemplateContentHandler(new TemplateFileSourceInfo(templateFile, new ParentSourceInfo(
source, tree.getLine(), tree.getCharPositionInLine())), mode, this);
TemplateContentHandler treeBuilder = new TemplateContentHandler(new TemplateFileSourceInfo(templateFile, source, tree.getLine(),
tree.getCharPositionInLine()), mode, this);
treeBuilder.parse();
} catch (MalformedURLException e) {
throwParserException(TemplateError.BAD_IMPORT, "Invalid argument to import of " + include, e, tree);
Expand All @@ -150,13 +150,13 @@ private void parseStatement(TemplateFileSourceInfo source, Tree tree, final int
throwParserException(TemplateError.EXTENDS_LOCATION, "extends must be the first instruction of a template");
}

URL parentUrl = source.getTemplateFile().getUrl();
URL parentUrl = source.getSource().getUrl();
String extendsTemplate = tree.getChild(0).getText();
try {
URL url = new URL(parentUrl, extendsTemplate);
TemplateFile templateFile = TemplateFile.fromUrl(url);
TemplateContentHandler treeBuilder = new TemplateContentHandler(new TemplateFileSourceInfo(templateFile, new ParentSourceInfo(
source, tree.getLine(), tree.getCharPositionInLine())), mode, this);
TemplateContentHandler treeBuilder = new TemplateContentHandler(new TemplateFileSourceInfo(templateFile, source, tree.getLine(),
tree.getCharPositionInLine()), mode, this);
treeBuilder.parse();
} catch (MalformedURLException e) {
throwParserException(TemplateError.BAD_EXTENDS, "Invalid argument to extends of " + extendsTemplate, e, tree);
Expand Down
@@ -1,22 +1,42 @@
package net.stencilproject.template;

/**
* Keeps track of a template file and a source info.
*/
class TemplateFileSourceInfo {
private final TemplateFile templateFile;
class TemplateFileSourceInfo implements SourceInfo {
private final TemplateFile file;
private final SourceInfo parent;
private final int line;
private final int column;

public TemplateFileSourceInfo(TemplateFile templateFile, SourceInfo parent) {
this.templateFile = templateFile;
public TemplateFileSourceInfo(TemplateFile file) {
this.file = file;
this.parent = null;
this.line = SourceInfo.NO_LINE;
this.column = SourceInfo.NO_COLUMN;
}

public TemplateFileSourceInfo(TemplateFile file, SourceInfo parent, int line, int column) {
this.file = file;
this.parent = parent;
this.line = line;
this.column = column;
}

@Override
public int getColumn() {
return column;
}

@Override
public int getLine() {
return line;
}

@Override
public SourceInfo getParent() {
return parent;
}

public TemplateFile getTemplateFile() {
return templateFile;
@Override
public TemplateFile getSource() {
return file;
}
}

0 comments on commit db34a60

Please sign in to comment.