From: Artur Signell Date: Mon, 2 Sep 2013 19:28:19 +0000 (+0300) Subject: Improve error message for missing imports (#12494) X-Git-Tag: 7.2.0.beta1~108^2~69 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=261a3ba76a523d7e8d6b717f6f9d67eaef8c901f;p=vaadin-framework.git Improve error message for missing imports (#12494) Change-Id: Ic320ac6f54e928939773495a5168ac674d6a1a33 --- diff --git a/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java b/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java index dbb3e571dc..704425e300 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java +++ b/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java @@ -59,7 +59,7 @@ public class ScssStylesheet extends Node { private static HashMap lastNodeAdded = new HashMap(); - private String fileName; + private File file; private String charset; @@ -162,7 +162,7 @@ public class ScssStylesheet extends Node { InputSource source = resolver.resolve(identifier); if (source != null) { File f = new File(source.getURI()); - setFileName(f.getParent()); + setFile(f); return source; } } @@ -355,12 +355,28 @@ public class ScssStylesheet extends Node { return mixinDefs.get(name); } - public void setFileName(String fileName) { - this.fileName = fileName; + public void setFile(File file) { + this.file = file; } + /** + * Returns the directory containing this style sheet + * + * @since 7.2 + * @return The directory containing this style sheet + */ + public String getDirectory() { + return file.getParent(); + } + + /** + * Returns the full file name for this style sheet + * + * @since 7.2 + * @return The full file name for this style sheet + */ public String getFileName() { - return fileName; + return file.getPath(); } public static HashMap getLastNodeAdded() { diff --git a/theme-compiler/src/com/vaadin/sass/internal/visitor/ImportNodeHandler.java b/theme-compiler/src/com/vaadin/sass/internal/visitor/ImportNodeHandler.java index cb9896967a..87c7cadcf8 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/visitor/ImportNodeHandler.java +++ b/theme-compiler/src/com/vaadin/sass/internal/visitor/ImportNodeHandler.java @@ -58,7 +58,7 @@ public class ImportNodeHandler { if (!importNode.isPureCssImport()) { try { StringBuilder filePathBuilder = new StringBuilder( - styleSheet.getFileName()); + styleSheet.getDirectory()); filePathBuilder.append(File.separatorChar).append( importNode.getUri()); if (!filePathBuilder.toString().endsWith(".scss")) { @@ -73,9 +73,10 @@ public class ImportNodeHandler { imported = ScssStylesheet.get(importNode.getUri()); } if (imported == null) { - throw new FileNotFoundException(importNode.getUri() - + " (parent: " - + ScssStylesheet.get().getFileName() + ")"); + throw new FileNotFoundException("Import '" + + importNode.getUri() + "' in '" + + styleSheet.getFileName() + + "' could not be found"); } traverse(imported);