From 0af76eaa89892479cd05f880d58893452d1485bf Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 12:47:14 +0200 Subject: [PATCH 01/10] + test cases will read expected test data as UTF-8 --- src/test/java/com/vaadin/sass/AbstractTestBase.java | 8 ++++---- .../scss/AbstractDirectoryScanningSassTests.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/vaadin/sass/AbstractTestBase.java b/src/test/java/com/vaadin/sass/AbstractTestBase.java index 71abc4d8..e4fda7d4 100644 --- a/src/test/java/com/vaadin/sass/AbstractTestBase.java +++ b/src/test/java/com/vaadin/sass/AbstractTestBase.java @@ -17,17 +17,17 @@ package com.vaadin.sass; import java.io.File; -import java.io.FileReader; +import java.io.FileInputStream; import java.io.IOException; import java.net.URISyntaxException; -import junit.framework.Assert; - import org.apache.commons.io.IOUtils; import org.w3c.css.sac.CSSException; import com.vaadin.sass.internal.ScssStylesheet; +import junit.framework.Assert; + public abstract class AbstractTestBase { public static final String CR = "\r"; @@ -65,7 +65,7 @@ public String getFileContent(String filename) throws IOException, * when file reading fails */ public String getFileContent(File file) throws IOException { - return IOUtils.toString(new FileReader(file)); + return IOUtils.toString(new FileInputStream(file), "UTF-8"); } public ScssStylesheet testParser(String file) throws CSSException, diff --git a/src/test/java/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java b/src/test/java/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java index b86d7b4a..0d21907b 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java @@ -120,7 +120,7 @@ public void traverseError(String message) { if (getCssFile(scssFile) != null) { String referenceCss = IOUtils.toString(new FileInputStream( - getCssFile(scssFile))); + getCssFile(scssFile)), "UTF-8"); String normalizedReference = normalize(referenceCss); String normalizedParsed = normalize(parsedCss); From 8ab0f9ba7aa487347628172bd3897be8d7ab387d Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 13:37:19 +0200 Subject: [PATCH 02/10] + refactored + eclipse settings --- .checkstyle | 14 +++ .classpath | 44 +++++++++ .project | 30 ++++++ .settings/org.eclipse.core.resources.prefs | 6 ++ .settings/org.eclipse.jdt.core.prefs | 98 +++++++++++++++++++ .settings/org.eclipse.m2e.core.prefs | 4 + .settings/org.eclipse.pde.core.prefs | 2 + .../vaadin/sass/internal/ScssStylesheet.java | 5 +- .../handler/SCSSDocumentHandlerImpl.java | 8 -- ...sparencyModificationFunctionGenerator.java | 14 --- .../vaadin/sass/internal/tree/BlockNode.java | 3 - .../vaadin/sass/internal/tree/ExtendNode.java | 3 - .../com/vaadin/sass/internal/tree/Node.java | 6 +- .../tree/controldirective/IfElseDefNode.java | 3 - .../vaadin/sass/internal/util/ColorUtil.java | 20 ---- .../vaadin/sass/internal/util/StringUtil.java | 10 +- .../internal/visitor/ImportNodeHandler.java | 7 -- .../internal/visitor/MixinNodeHandler.java | 1 - .../com/vaadin/sass/AbstractTestBase.java | 43 +++----- .../vaadin/sass/testcases/scss/Comments.java | 2 +- .../sass/testcases/scss/CompassImports.java | 2 +- .../testcases/scss/ControlDirectives.java | 2 +- .../vaadin/sass/testcases/scss/Imports.java | 2 +- .../sass/testcases/scss/NestedProperties.java | 2 +- .../vaadin/sass/testcases/scss/Nesting.java | 2 +- .../sass/testcases/scss/ParentImports.java | 2 +- .../sass/testcases/scss/VariableGuarded.java | 2 +- .../vaadin/sass/testcases/scss/Variables.java | 4 +- 28 files changed, 229 insertions(+), 112 deletions(-) create mode 100644 .checkstyle create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 .settings/org.eclipse.pde.core.prefs diff --git a/.checkstyle b/.checkstyle new file mode 100644 index 00000000..1ded3f7c --- /dev/null +++ b/.checkstyle @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/.classpath b/.classpath new file mode 100644 index 00000000..8ba48b91 --- /dev/null +++ b/.classpath @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 00000000..ff04143c --- /dev/null +++ b/.project @@ -0,0 +1,30 @@ + + + vaadin-sass-compiler + + + + + + org.eclipse.jdt.core.javabuilder + + + + + net.sf.eclipsecs.core.CheckstyleBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.pde.PluginNature + net.sf.eclipsecs.core.CheckstyleNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..04cfa2c1 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..195318c1 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,98 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..14b697b7 --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.settings/org.eclipse.pde.core.prefs b/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 00000000..394603ce --- /dev/null +++ b/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,2 @@ +BUNDLE_ROOT_PATH=target/classes +eclipse.preferences.version=1 diff --git a/src/main/java/com/vaadin/sass/internal/ScssStylesheet.java b/src/main/java/com/vaadin/sass/internal/ScssStylesheet.java index f224df7d..7cfac6fd 100644 --- a/src/main/java/com/vaadin/sass/internal/ScssStylesheet.java +++ b/src/main/java/com/vaadin/sass/internal/ScssStylesheet.java @@ -44,7 +44,7 @@ import com.vaadin.sass.internal.tree.Node; import com.vaadin.sass.internal.visitor.ExtendNodeHandler; -public class ScssStylesheet extends Node { +public final class ScssStylesheet extends Node { private static final long serialVersionUID = 3849790204404961608L; @@ -144,8 +144,7 @@ public static ScssStylesheet get(String identifier, } // FIXME Is this actually intended? /John 1.3.2013 - File file = new File(identifier); - file = file.getCanonicalFile(); + new File(identifier).getCanonicalFile(); ScssStylesheet stylesheet = documentHandler.getStyleSheet(); if (parentStylesheet == null) { diff --git a/src/main/java/com/vaadin/sass/internal/handler/SCSSDocumentHandlerImpl.java b/src/main/java/com/vaadin/sass/internal/handler/SCSSDocumentHandlerImpl.java index 3837a9a7..28ab00ff 100644 --- a/src/main/java/com/vaadin/sass/internal/handler/SCSSDocumentHandlerImpl.java +++ b/src/main/java/com/vaadin/sass/internal/handler/SCSSDocumentHandlerImpl.java @@ -393,14 +393,6 @@ public void endInclude() { nodeStack.pop(); } - private void log(Object object) { - if (object != null) { - log(object.toString()); - } else { - log(null); - } - } - private void log(String msg) { Logger.getLogger(SCSSDocumentHandlerImpl.class.getName()).log( Level.INFO, msg); diff --git a/src/main/java/com/vaadin/sass/internal/parser/function/TransparencyModificationFunctionGenerator.java b/src/main/java/com/vaadin/sass/internal/parser/function/TransparencyModificationFunctionGenerator.java index c5c9aa6d..5675993b 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/function/TransparencyModificationFunctionGenerator.java +++ b/src/main/java/com/vaadin/sass/internal/parser/function/TransparencyModificationFunctionGenerator.java @@ -100,18 +100,4 @@ private void checkParameters(LexicalUnitImpl function, private float getFloat(ActualArgumentList params, int i) { return params.get(i).getContainedValue().getFloatValue(); } - - private int getInteger(ActualArgumentList colorComponents, int i) { - return colorComponents.get(i).getContainedValue().getIntegerValue(); - } - - private LexicalUnitImpl createNumber(LexicalUnitImpl parent, float value) { - return LexicalUnitImpl.createNumber(parent.getLineNumber(), - parent.getColumnNumber(), value); - } - - private LexicalUnitImpl createNumber(LexicalUnitImpl parent, int value) { - return LexicalUnitImpl.createNumber(parent.getLineNumber(), - parent.getColumnNumber(), value); - } } diff --git a/src/main/java/com/vaadin/sass/internal/tree/BlockNode.java b/src/main/java/com/vaadin/sass/internal/tree/BlockNode.java index 63783428..d823a5f7 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/BlockNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/BlockNode.java @@ -20,9 +20,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - import com.vaadin.sass.internal.ScssContext; import com.vaadin.sass.internal.handler.SCSSErrorHandler; import com.vaadin.sass.internal.selector.Selector; diff --git a/src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java b/src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java index 68ded04a..450e3bb8 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java @@ -20,9 +20,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - import com.vaadin.sass.internal.ScssContext; import com.vaadin.sass.internal.handler.SCSSErrorHandler; import com.vaadin.sass.internal.selector.Selector; diff --git a/src/main/java/com/vaadin/sass/internal/tree/Node.java b/src/main/java/com/vaadin/sass/internal/tree/Node.java index 284af138..418d5a1a 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/Node.java +++ b/src/main/java/com/vaadin/sass/internal/tree/Node.java @@ -30,13 +30,13 @@ public abstract class Node implements Serializable { - public static BuildStringStrategy PRINT_STRATEGY = new PrintStrategy(); + public static final BuildStringStrategy PRINT_STRATEGY = new PrintStrategy(); - public static BuildStringStrategy TO_STRING_STRATEGY = new ToStringStrategy(); + public static final BuildStringStrategy TO_STRING_STRATEGY = new ToStringStrategy(); private static final long serialVersionUID = 5914711715839294816L; - private ArrayList children = null; + private ArrayList children; private Node parentNode; diff --git a/src/main/java/com/vaadin/sass/internal/tree/controldirective/IfElseDefNode.java b/src/main/java/com/vaadin/sass/internal/tree/controldirective/IfElseDefNode.java index 6ec7455b..5738f71e 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/controldirective/IfElseDefNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/controldirective/IfElseDefNode.java @@ -17,9 +17,6 @@ import java.util.Collection; import java.util.Collections; -import java.util.logging.Level; -import java.util.logging.Logger; - import com.vaadin.sass.internal.ScssContext; import com.vaadin.sass.internal.handler.SCSSErrorHandler; import com.vaadin.sass.internal.tree.Node; diff --git a/src/main/java/com/vaadin/sass/internal/util/ColorUtil.java b/src/main/java/com/vaadin/sass/internal/util/ColorUtil.java index 7790ca82..41bfa68a 100644 --- a/src/main/java/com/vaadin/sass/internal/util/ColorUtil.java +++ b/src/main/java/com/vaadin/sass/internal/util/ColorUtil.java @@ -395,18 +395,6 @@ private static String rgbToHexColor(int[] rgb, int length) { return builder.toString(); } - private static LexicalUnitImpl hslToColor(LexicalUnitImpl hsl) { - String colorString = rgbToColorString(hslToRgb(hsl)); - return LexicalUnitImpl.createIdent(colorString); - } - - private static LexicalUnitImpl colorToHslUnit(LexicalUnitImpl color) { - float[] hsl = colorToHsl(color); - - return createHslFunction(hsl[0], hsl[1], hsl[2], color.getLineNumber(), - color.getColumnNumber()); - } - private static int[] hslToRgb(LexicalUnitImpl hsl) { ActualArgumentList hslParam = hsl.getParameterList(); if (hslParam.size() != 3 && hslParam.size() != 4) { @@ -588,14 +576,6 @@ public static LexicalUnitImpl lighten(LexicalUnitImpl color, float amount) { return adjust(color, amount, ColorOperation.Lighten); } - private static float getAmountValue(ActualArgumentList params) { - float amount = 10f; - if (params.size() > 1) { - amount = params.get(1).getContainedValue().getFloatValue(); - } - return amount; - } - private enum ColorOperation { Darken, Lighten } diff --git a/src/main/java/com/vaadin/sass/internal/util/StringUtil.java b/src/main/java/com/vaadin/sass/internal/util/StringUtil.java index dc000425..fecba52f 100644 --- a/src/main/java/com/vaadin/sass/internal/util/StringUtil.java +++ b/src/main/java/com/vaadin/sass/internal/util/StringUtil.java @@ -42,7 +42,7 @@ public static String cleanPath(String path) { FOLDER_SEPARATOR); String[] pathArray = delimitedListToStringArray(pathToUse, FOLDER_SEPARATOR); - List pathElements = new LinkedList(); + List pathElements = new LinkedList(); int tops = 0; for (int i = pathArray.length - 1; i >= 0; i--) { if (CURRENT_PATH.equals(pathArray[i])) { @@ -99,7 +99,7 @@ public static String[] delimitedListToStringArray(String str, return new String[] { str }; } - List result = new ArrayList(); + List result = new ArrayList(); int pos = 0; int delPos = 0; while ((delPos = str.indexOf(delimiter, pos)) != -1) { @@ -114,14 +114,14 @@ public static String[] delimitedListToStringArray(String str, return (String[]) result.toArray(new String[result.size()]); } - public static String collectionToDelimitedString(Collection coll, + public static String collectionToDelimitedString(Collection coll, String delim, String prefix, String suffix) { if (coll == null) { return ""; } StringBuffer sb = new StringBuffer(); - Iterator it = coll.iterator(); + Iterator it = coll.iterator(); int i = 0; while (it.hasNext()) { if (i > 0) { @@ -133,7 +133,7 @@ public static String collectionToDelimitedString(Collection coll, return sb.toString(); } - public static String collectionToDelimitedString(Collection coll, + public static String collectionToDelimitedString(Collection coll, String delim) { return collectionToDelimitedString(coll, delim, "", ""); } diff --git a/src/main/java/com/vaadin/sass/internal/visitor/ImportNodeHandler.java b/src/main/java/com/vaadin/sass/internal/visitor/ImportNodeHandler.java index 1edc2df2..604522f8 100644 --- a/src/main/java/com/vaadin/sass/internal/visitor/ImportNodeHandler.java +++ b/src/main/java/com/vaadin/sass/internal/visitor/ImportNodeHandler.java @@ -16,22 +16,15 @@ package com.vaadin.sass.internal.visitor; -import java.io.FileNotFoundException; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.w3c.css.sac.CSSException; import com.vaadin.sass.internal.ScssContext; import com.vaadin.sass.internal.ScssStylesheet; import com.vaadin.sass.internal.handler.SCSSDocumentHandlerImpl; import com.vaadin.sass.internal.handler.SCSSErrorHandler; -import com.vaadin.sass.internal.parser.ParseException; import com.vaadin.sass.internal.tree.ImportNode; import com.vaadin.sass.internal.tree.Node; import com.vaadin.sass.internal.tree.NodeWithUrlContent; diff --git a/src/main/java/com/vaadin/sass/internal/visitor/MixinNodeHandler.java b/src/main/java/com/vaadin/sass/internal/visitor/MixinNodeHandler.java index 21e32439..83bed869 100644 --- a/src/main/java/com/vaadin/sass/internal/visitor/MixinNodeHandler.java +++ b/src/main/java/com/vaadin/sass/internal/visitor/MixinNodeHandler.java @@ -22,7 +22,6 @@ import com.vaadin.sass.internal.Scope; import com.vaadin.sass.internal.ScssContext; import com.vaadin.sass.internal.handler.SCSSErrorHandler; -import com.vaadin.sass.internal.parser.ParseException; import com.vaadin.sass.internal.parser.Variable; import com.vaadin.sass.internal.tree.MixinDefNode; import com.vaadin.sass.internal.tree.MixinNode; diff --git a/src/test/java/com/vaadin/sass/AbstractTestBase.java b/src/test/java/com/vaadin/sass/AbstractTestBase.java index e4fda7d4..790c4ef1 100644 --- a/src/test/java/com/vaadin/sass/AbstractTestBase.java +++ b/src/test/java/com/vaadin/sass/AbstractTestBase.java @@ -17,8 +17,8 @@ package com.vaadin.sass; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.net.URISyntaxException; import org.apache.commons.io.IOUtils; @@ -26,53 +26,32 @@ import com.vaadin.sass.internal.ScssStylesheet; -import junit.framework.Assert; +import org.junit.Assert; public abstract class AbstractTestBase { public static final String CR = "\r"; - protected ScssStylesheet stylesheet; protected String originalScss; protected String parsedScss; protected String comparisonCss; public ScssStylesheet getStyleSheet(String filename) throws URISyntaxException, CSSException, IOException { - File file = getFile(filename); - stylesheet = ScssStylesheet.get(file.getAbsolutePath()); - return stylesheet; + final File file = new File(getClass().getResource(filename).toURI()); + return ScssStylesheet.get(file.getAbsolutePath()); } - public File getFile(String filename) throws URISyntaxException, - CSSException, IOException { - return new File(getClass().getResource(filename).toURI()); - } - - public String getFileContent(String filename) throws IOException, + public final String getFileContent(String filename) throws IOException, CSSException, URISyntaxException { - File file = getFile(filename); - return getFileContent(file); - } - - /** - * Read in the full content of a file into a string. - * - * @param file - * the file to be read - * @return a String with the content of the - * @throws IOException - * when file reading fails - */ - public String getFileContent(File file) throws IOException { - return IOUtils.toString(new FileInputStream(file), "UTF-8"); + return IOUtils.toString(getClass().getResourceAsStream(filename), "UTF-8"); } - public ScssStylesheet testParser(String file) throws CSSException, + public ScssStylesheet testParser(String fileName) throws CSSException, IOException, URISyntaxException { - originalScss = getFileContent(file); + originalScss = getFileContent(fileName); originalScss = originalScss.replaceAll(CR, ""); - ScssStylesheet sheet = getStyleSheet(file); + ScssStylesheet sheet = getStyleSheet(fileName); parsedScss = sheet.printState(); parsedScss = parsedScss.replace(CR, ""); Assert.assertEquals("Original CSS and parsed CSS do not match", @@ -80,9 +59,9 @@ public ScssStylesheet testParser(String file) throws CSSException, return sheet; } - public ScssStylesheet testCompiler(String scss, String css) + public ScssStylesheet testCompiler(String scss, String cssFileName) throws Exception { - comparisonCss = getFileContent(css); + comparisonCss = getFileContent(cssFileName); comparisonCss = comparisonCss.replaceAll(CR, ""); ScssStylesheet sheet = getStyleSheet(scss); sheet.compile(); diff --git a/src/test/java/com/vaadin/sass/testcases/scss/Comments.java b/src/test/java/com/vaadin/sass/testcases/scss/Comments.java index c4e5d2ab..8603039b 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/Comments.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/Comments.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.net.URISyntaxException; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; diff --git a/src/test/java/com/vaadin/sass/testcases/scss/CompassImports.java b/src/test/java/com/vaadin/sass/testcases/scss/CompassImports.java index 7b9b4eb0..03b24fce 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/CompassImports.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/CompassImports.java @@ -19,7 +19,7 @@ import java.io.File; import java.io.IOException; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; diff --git a/src/test/java/com/vaadin/sass/testcases/scss/ControlDirectives.java b/src/test/java/com/vaadin/sass/testcases/scss/ControlDirectives.java index 13095b7b..98506f92 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/ControlDirectives.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/ControlDirectives.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.util.List; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; diff --git a/src/test/java/com/vaadin/sass/testcases/scss/Imports.java b/src/test/java/com/vaadin/sass/testcases/scss/Imports.java index e28630c4..fcba911f 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/Imports.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/Imports.java @@ -18,7 +18,7 @@ import java.io.IOException; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; diff --git a/src/test/java/com/vaadin/sass/testcases/scss/NestedProperties.java b/src/test/java/com/vaadin/sass/testcases/scss/NestedProperties.java index 400d842f..ad485fb3 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/NestedProperties.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/NestedProperties.java @@ -18,7 +18,7 @@ import java.io.IOException; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; diff --git a/src/test/java/com/vaadin/sass/testcases/scss/Nesting.java b/src/test/java/com/vaadin/sass/testcases/scss/Nesting.java index e43b5927..4ee4d446 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/Nesting.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/Nesting.java @@ -18,7 +18,7 @@ import java.io.IOException; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; diff --git a/src/test/java/com/vaadin/sass/testcases/scss/ParentImports.java b/src/test/java/com/vaadin/sass/testcases/scss/ParentImports.java index 26513ce8..1990433b 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/ParentImports.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/ParentImports.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.util.List; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; diff --git a/src/test/java/com/vaadin/sass/testcases/scss/VariableGuarded.java b/src/test/java/com/vaadin/sass/testcases/scss/VariableGuarded.java index a0727736..be9c6521 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/VariableGuarded.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/VariableGuarded.java @@ -2,7 +2,7 @@ import java.io.IOException; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; diff --git a/src/test/java/com/vaadin/sass/testcases/scss/Variables.java b/src/test/java/com/vaadin/sass/testcases/scss/Variables.java index 905d21fa..8f6cb483 100644 --- a/src/test/java/com/vaadin/sass/testcases/scss/Variables.java +++ b/src/test/java/com/vaadin/sass/testcases/scss/Variables.java @@ -19,7 +19,7 @@ import java.io.IOException; import com.vaadin.sass.internal.parser.LexicalUnitImpl; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Test; import org.w3c.css.sac.CSSException; @@ -57,7 +57,7 @@ public void testParser() throws CSSException, IOException { VariableNode varNode2 = (VariableNode) root.getChildren().get(1); Assert.assertEquals("margin", varNode2.getName()); Assert.assertEquals(8f, varNode2.getExpr().getContainedValue() - .getFloatValue()); + .getFloatValue(), 0.0); Assert.assertEquals("px", varNode2.getExpr().getContainedValue() .getDimensionUnitText()); From 99cbc01da1014cc24d6c0f8657cf472f2ee251f1 Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 13:53:50 +0200 Subject: [PATCH 03/10] + tried some immutability --- src/main/java/com/vaadin/sass/SassCompiler.java | 2 +- src/main/java/com/vaadin/sass/internal/tree/DefNode.java | 2 +- src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java | 4 ++-- .../java/com/vaadin/sass/internal/tree/FunctionCall.java | 6 +++++- src/main/java/com/vaadin/sass/internal/tree/ImportNode.java | 4 ++-- .../com/vaadin/sass/internal/tree/KeyframeSelectorNode.java | 2 +- .../java/com/vaadin/sass/internal/tree/KeyframesNode.java | 2 +- src/main/java/com/vaadin/sass/internal/tree/MediaNode.java | 2 +- src/main/java/com/vaadin/sass/internal/tree/MixinNode.java | 2 +- src/main/java/com/vaadin/sass/internal/tree/RuleNode.java | 6 +++--- .../sass/internal/tree/controldirective/EachDefNode.java | 2 +- .../vaadin/sass/internal/tree/controldirective/IfNode.java | 2 +- .../sass/internal/tree/controldirective/TemporaryNode.java | 2 +- .../sass/internal/tree/controldirective/WhileNode.java | 2 +- 14 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/vaadin/sass/SassCompiler.java b/src/main/java/com/vaadin/sass/SassCompiler.java index b3cba30a..128dca5b 100644 --- a/src/main/java/com/vaadin/sass/SassCompiler.java +++ b/src/main/java/com/vaadin/sass/SassCompiler.java @@ -89,7 +89,7 @@ public static void main(String[] args) throws Exception { errorHandler.setWarningsAreErrors(!ignoreWarnings); try { // Parse stylesheet - ScssStylesheet scss = ScssStylesheet.get(input, null, + final ScssStylesheet scss = ScssStylesheet.get(input, null, new SCSSDocumentHandlerImpl(), errorHandler); if (scss == null) { System.err.println("The scss file " + input diff --git a/src/main/java/com/vaadin/sass/internal/tree/DefNode.java b/src/main/java/com/vaadin/sass/internal/tree/DefNode.java index dce4b201..6644170f 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/DefNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/DefNode.java @@ -33,7 +33,7 @@ */ public abstract class DefNode extends Node implements Definition, IVariableNode, NodeWithUrlContent { - private String name; + private final String name; private FormalArgumentList arglist; private Scope definitionScope; diff --git a/src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java b/src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java index 450e3bb8..a0b27ec1 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/ExtendNode.java @@ -28,8 +28,8 @@ public class ExtendNode extends Node implements IVariableNode { private static final long serialVersionUID = 3301805078983796878L; - private List list; - private boolean optional; + private final List list; + private final boolean optional; public ExtendNode(List list, boolean optional) { super(); diff --git a/src/main/java/com/vaadin/sass/internal/tree/FunctionCall.java b/src/main/java/com/vaadin/sass/internal/tree/FunctionCall.java index 7661400d..206f7d76 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/FunctionCall.java +++ b/src/main/java/com/vaadin/sass/internal/tree/FunctionCall.java @@ -34,7 +34,11 @@ * function. This class is used to evaluate the function call and is discarded * after use. A FunctionCall does not have a parent in the stylesheet node tree. */ -public class FunctionCall { +public final class FunctionCall { + + private FunctionCall() { + /* util class */ + } public static SassListItem evaluate(ScssContext context, FunctionDefNode def, LexicalUnitImpl invocation) { diff --git a/src/main/java/com/vaadin/sass/internal/tree/ImportNode.java b/src/main/java/com/vaadin/sass/internal/tree/ImportNode.java index b7289b34..34604e3e 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/ImportNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/ImportNode.java @@ -29,8 +29,8 @@ public class ImportNode extends Node implements NodeWithUrlContent { private static final long serialVersionUID = 5671255892282668438L; private String uri; - private SACMediaList ml; - private boolean isURL; + private final SACMediaList ml; + private final boolean isURL; // the stylesheet which contained this import node - usually empty as its // contents have been moved to its parent, but used to access resolvers, diff --git a/src/main/java/com/vaadin/sass/internal/tree/KeyframeSelectorNode.java b/src/main/java/com/vaadin/sass/internal/tree/KeyframeSelectorNode.java index 168daacc..3c998e09 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/KeyframeSelectorNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/KeyframeSelectorNode.java @@ -22,7 +22,7 @@ import com.vaadin.sass.internal.ScssContext; public class KeyframeSelectorNode extends Node { - private String selector; + private final String selector; public KeyframeSelectorNode(String selector) { this.selector = selector; diff --git a/src/main/java/com/vaadin/sass/internal/tree/KeyframesNode.java b/src/main/java/com/vaadin/sass/internal/tree/KeyframesNode.java index 264caf0f..291df695 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/KeyframesNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/KeyframesNode.java @@ -23,7 +23,7 @@ import com.vaadin.sass.internal.parser.StringInterpolationSequence; public class KeyframesNode extends Node implements IVariableNode { - private String keyframeName; + private final String keyframeName; private StringInterpolationSequence animationName; public KeyframesNode(String keyframeName, diff --git a/src/main/java/com/vaadin/sass/internal/tree/MediaNode.java b/src/main/java/com/vaadin/sass/internal/tree/MediaNode.java index 5f84e8f9..df419204 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/MediaNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/MediaNode.java @@ -26,7 +26,7 @@ public class MediaNode extends Node { private static final long serialVersionUID = 2502097081457509523L; - SACMediaList media; + private SACMediaList media; public MediaNode(SACMediaList media) { super(); diff --git a/src/main/java/com/vaadin/sass/internal/tree/MixinNode.java b/src/main/java/com/vaadin/sass/internal/tree/MixinNode.java index 919bf8a5..dbe88bee 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/MixinNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/MixinNode.java @@ -45,7 +45,7 @@ public class MixinNode extends Node implements IVariableNode, // these are the actual parameter values, not whether the definition node // uses varargs private ActualArgumentList arglist; - private String name; + private final String name; public MixinNode(String name) { this(name, new ArrayList(), false); diff --git a/src/main/java/com/vaadin/sass/internal/tree/RuleNode.java b/src/main/java/com/vaadin/sass/internal/tree/RuleNode.java index 00d466df..396f83e7 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/RuleNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/RuleNode.java @@ -26,9 +26,9 @@ public class RuleNode extends Node implements IVariableNode, NodeWithUrlContent { private static final long serialVersionUID = 6653493127869037022L; - StringInterpolationSequence variable; - SassListItem value = null; - String comment; + private StringInterpolationSequence variable; + private SassListItem value = null; + private String comment; private boolean important; public RuleNode(StringInterpolationSequence variable, SassListItem value, diff --git a/src/main/java/com/vaadin/sass/internal/tree/controldirective/EachDefNode.java b/src/main/java/com/vaadin/sass/internal/tree/controldirective/EachDefNode.java index 42e75d4d..9f1c34f0 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/controldirective/EachDefNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/controldirective/EachDefNode.java @@ -30,7 +30,7 @@ public class EachDefNode extends Node implements IVariableNode, NodeWithUrlContent { private static final long serialVersionUID = 7943948981204906221L; - private String var; + private final String var; private SassListItem list; public EachDefNode(String var, SassListItem list) { diff --git a/src/main/java/com/vaadin/sass/internal/tree/controldirective/IfNode.java b/src/main/java/com/vaadin/sass/internal/tree/controldirective/IfNode.java index bbefd01e..425e8c17 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/controldirective/IfNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/controldirective/IfNode.java @@ -24,7 +24,7 @@ import com.vaadin.sass.internal.tree.Node; public class IfNode extends Node implements IfElseNode, IVariableNode { - private SassListItem expression; + private SassListItem expression; public IfNode(SassListItem expression) { if (expression == null) { diff --git a/src/main/java/com/vaadin/sass/internal/tree/controldirective/TemporaryNode.java b/src/main/java/com/vaadin/sass/internal/tree/controldirective/TemporaryNode.java index 9a9c4bee..dd249c86 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/controldirective/TemporaryNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/controldirective/TemporaryNode.java @@ -27,7 +27,7 @@ */ public class TemporaryNode extends Node { - private Node parentNode; + private final Node parentNode; public TemporaryNode(Node parent) { parentNode = parent; diff --git a/src/main/java/com/vaadin/sass/internal/tree/controldirective/WhileNode.java b/src/main/java/com/vaadin/sass/internal/tree/controldirective/WhileNode.java index 9171cd1f..3528a713 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/controldirective/WhileNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/controldirective/WhileNode.java @@ -25,7 +25,7 @@ public class WhileNode extends Node { - private SassListItem condition; + private final SassListItem condition; public WhileNode(SassListItem condition) { this.condition = condition; From 71e9fd4fed572f35e9136484d9f34e28e0319ddd Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 13:56:20 +0200 Subject: [PATCH 04/10] + fixed missing @Override annotations --- .settings/org.eclipse.jdt.core.prefs | 2 +- .../internal/parser/Generic_CharStream.java | 36 ++++++++++++------- .../sass/internal/parser/LexicalUnitImpl.java | 12 ++++--- .../sass/internal/parser/SassExpression.java | 3 +- .../vaadin/sass/internal/parser/SassList.java | 6 ++-- .../vaadin/sass/internal/parser/Variable.java | 3 +- .../vaadin/sass/internal/tree/DefNode.java | 6 ++-- .../sass/internal/tree/VariableNode.java | 3 +- 8 files changed, 47 insertions(+), 24 deletions(-) diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 195318c1..624a8f36 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -37,7 +37,7 @@ org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore diff --git a/src/main/java/com/vaadin/sass/internal/parser/Generic_CharStream.java b/src/main/java/com/vaadin/sass/internal/parser/Generic_CharStream.java index a6df9c93..f61f9948 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/Generic_CharStream.java +++ b/src/main/java/com/vaadin/sass/internal/parser/Generic_CharStream.java @@ -128,7 +128,8 @@ else if ((tokenBegin - available) < 2048) } } - public final char BeginToken() throws java.io.IOException { + @Override + public final char BeginToken() throws java.io.IOException { tokenBegin = -1; char c = readChar(); tokenBegin = bufpos; @@ -169,7 +170,8 @@ private final void UpdateLineColumn(char c) { bufcolumn[bufpos] = column; } - public final char readChar() throws java.io.IOException { + @Override + public final char readChar() throws java.io.IOException { if (inBuf > 0) { --inBuf; return (char) ((char) 0xff & buffer[(bufpos == bufsize - 1) ? (bufpos = 0) @@ -190,7 +192,8 @@ public final char readChar() throws java.io.IOException { * @see #getEndColumn */ - public final int getColumn() { + @Override + public final int getColumn() { return bufcolumn[bufpos]; } @@ -199,27 +202,33 @@ public final int getColumn() { * @see #getEndLine */ - public final int getLine() { + @Override + public final int getLine() { return bufline[bufpos]; } - public final int getEndColumn() { + @Override + public final int getEndColumn() { return bufcolumn[bufpos]; } - public final int getEndLine() { + @Override + public final int getEndLine() { return bufline[bufpos]; } - public final int getBeginColumn() { + @Override + public final int getBeginColumn() { return bufcolumn[tokenBegin]; } - public final int getBeginLine() { + @Override + public final int getBeginLine() { return bufline[tokenBegin]; } - public final void backup(int amount) { + @Override + public final void backup(int amount) { inBuf += amount; if ((bufpos -= amount) < 0) @@ -264,7 +273,8 @@ public void ReInit(java.io.Reader dstream, int startline, int startcolumn) { ReInit(dstream, startline, startcolumn, 4096); } - public final String GetImage() { + @Override + public final String GetImage() { if (bufpos >= tokenBegin) return new String(buffer, tokenBegin, bufpos - tokenBegin + 1); else @@ -272,7 +282,8 @@ public final String GetImage() { + new String(buffer, 0, bufpos + 1); } - public final char[] GetSuffix(int len) { + @Override + public final char[] GetSuffix(int len) { char[] ret = new char[len]; if ((bufpos + 1) >= len) @@ -285,7 +296,8 @@ public final char[] GetSuffix(int len) { return ret; } - public void Done() { + @Override + public void Done() { buffer = null; bufline = null; bufcolumn = null; diff --git a/src/main/java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java b/src/main/java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java index 9849b990..ab28a45d 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java +++ b/src/main/java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java @@ -141,11 +141,13 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, this.params = params; } - public int getLineNumber() { + @Override + public int getLineNumber() { return line; } - public int getColumnNumber() { + @Override + public int getColumnNumber() { return column; } @@ -295,7 +297,8 @@ public String getDimensionUnitText() { } } - public String getStringValue() { + @Override + public String getStringValue() { return s == null ? null : s.toString(); } @@ -333,7 +336,8 @@ public LexicalUnitImpl getSubValues() { * * @return State as a string */ - public String printState() { + @Override + public String printState() { if (printState == null) { printState = buildString(Node.PRINT_STRATEGY); } diff --git a/src/main/java/com/vaadin/sass/internal/parser/SassExpression.java b/src/main/java/com/vaadin/sass/internal/parser/SassExpression.java index cc5a88c4..a53f1862 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/SassExpression.java +++ b/src/main/java/com/vaadin/sass/internal/parser/SassExpression.java @@ -119,7 +119,8 @@ public int getColumnNumber() { return column; } - public boolean containsArithmeticalOperator() { + @Override + public boolean containsArithmeticalOperator() { for (SassListItem item : items) { if (item.containsArithmeticalOperator()) { return true; diff --git a/src/main/java/com/vaadin/sass/internal/parser/SassList.java b/src/main/java/com/vaadin/sass/internal/parser/SassList.java index a0f72721..49663b78 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/SassList.java +++ b/src/main/java/com/vaadin/sass/internal/parser/SassList.java @@ -114,7 +114,8 @@ public LexicalUnitImpl getContainedValue() { } // A helper method for sass interpolation - public String unquotedString() { + @Override + public String unquotedString() { if (size() != 1) { // preserve quotes if the list contains several elements return printState(); @@ -230,7 +231,8 @@ public String buildString(BuildStringStrategy strategy) { return result; } - public String printState() { + @Override + public String printState() { return buildString(Node.PRINT_STRATEGY); } diff --git a/src/main/java/com/vaadin/sass/internal/parser/Variable.java b/src/main/java/com/vaadin/sass/internal/parser/Variable.java index 6eab2c95..e365bc55 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/Variable.java +++ b/src/main/java/com/vaadin/sass/internal/parser/Variable.java @@ -50,7 +50,8 @@ public void setExpr(SassListItem expr) { this.expr = expr; } - public String getName() { + @Override + public String getName() { return name; } diff --git a/src/main/java/com/vaadin/sass/internal/tree/DefNode.java b/src/main/java/com/vaadin/sass/internal/tree/DefNode.java index 6644170f..39841da6 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/DefNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/DefNode.java @@ -51,7 +51,8 @@ protected DefNode(DefNode nodeToCopy) { definitionScope = nodeToCopy.definitionScope; } - public String getName() { + @Override + public String getName() { return name; } @@ -81,7 +82,8 @@ protected void setDefinitionScope(Scope scope) { definitionScope = scope; } - public DefNode updateUrl(String prefix) { + @Override + public DefNode updateUrl(String prefix) { DefNode newInstance = (DefNode) copy(); newInstance.arglist = arglist.updateUrl(prefix); return newInstance; diff --git a/src/main/java/com/vaadin/sass/internal/tree/VariableNode.java b/src/main/java/com/vaadin/sass/internal/tree/VariableNode.java index 3be8f57a..ad84e31a 100644 --- a/src/main/java/com/vaadin/sass/internal/tree/VariableNode.java +++ b/src/main/java/com/vaadin/sass/internal/tree/VariableNode.java @@ -44,7 +44,8 @@ public void setExpr(SassListItem expr) { variable.setExpr(expr); } - public String getName() { + @Override + public String getName() { return variable.getName(); } From 45b3ceec489ec0dc0b23efb2642f7a172581eccf Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 14:01:13 +0200 Subject: [PATCH 05/10] + checking potential access to null pointer --- .settings/org.eclipse.jdt.core.prefs | 10 +++++----- src/main/java/com/vaadin/sass/ArgumentParser.java | 1 + src/main/java/com/vaadin/sass/SassCompiler.java | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 624a8f36..e7e5a620 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -36,7 +36,7 @@ org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore @@ -47,14 +47,14 @@ org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullReference=error org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning @@ -86,7 +86,7 @@ org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedImport=warning org.eclipse.jdt.core.compiler.problem.unusedLabel=warning org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=error org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled diff --git a/src/main/java/com/vaadin/sass/ArgumentParser.java b/src/main/java/com/vaadin/sass/ArgumentParser.java index 9c01d43c..01c28fa6 100644 --- a/src/main/java/com/vaadin/sass/ArgumentParser.java +++ b/src/main/java/com/vaadin/sass/ArgumentParser.java @@ -291,6 +291,7 @@ private void processOption(String opt) { if (o == null) { // Fail on invalid option. This halts the program. invalidOption(optName); + return; } if (o == helpOption) { diff --git a/src/main/java/com/vaadin/sass/SassCompiler.java b/src/main/java/com/vaadin/sass/SassCompiler.java index 128dca5b..1d1d8b52 100644 --- a/src/main/java/com/vaadin/sass/SassCompiler.java +++ b/src/main/java/com/vaadin/sass/SassCompiler.java @@ -95,6 +95,7 @@ public static void main(String[] args) throws Exception { System.err.println("The scss file " + input + " could not be found."); System.exit(ERROR_FILE_NOT_FOUND); + return; } // Compile scss -> css From 816ac87b880dd760ea1702b1592346328eadb1a6 Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 14:07:04 +0200 Subject: [PATCH 06/10] + removed redundant super interface --- .settings/org.eclipse.jdt.core.prefs | 2 +- src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java | 2 +- .../java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index e7e5a620..fd437bd6 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -60,7 +60,7 @@ org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled diff --git a/src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java b/src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java index d69e84e6..dea8363f 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java +++ b/src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java @@ -30,7 +30,7 @@ * used in ActualArgumentList to represent the unnamed (positional) and named * parameters of an @include or a function call. */ -public class ArgumentList extends SassList implements Serializable { +public class ArgumentList extends SassList { private List namedVariables = new ArrayList(); public ArgumentList(SassList list) { diff --git a/src/main/java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java b/src/main/java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java index ab28a45d..9555bd0c 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java +++ b/src/main/java/com/vaadin/sass/internal/parser/LexicalUnitImpl.java @@ -79,7 +79,7 @@ * * @modified Sebastian Nyholm @ Vaadin Ltd */ -public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, +public class LexicalUnitImpl implements SCSSLexicalUnit, SassListItem, Serializable { private static final long serialVersionUID = -6649833716809789399L; From b8c21b384c2726d4bef758886e0334ce21d45bc0 Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 14:07:23 +0200 Subject: [PATCH 07/10] + organized imports --- src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java b/src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java index dea8363f..1e6b992e 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java +++ b/src/main/java/com/vaadin/sass/internal/parser/ArgumentList.java @@ -15,7 +15,6 @@ */ package com.vaadin.sass.internal.parser; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.List; From 4de0fb5b14e55a13e6907b66819504edd4a618a6 Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 14:08:50 +0200 Subject: [PATCH 08/10] + fixed unnecessary casts --- .settings/org.eclipse.jdt.core.prefs | 2 +- .../sass/internal/parser/function/AlphaFunctionGenerator.java | 2 +- src/main/java/com/vaadin/sass/internal/util/StringUtil.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index fd437bd6..7049343e 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -76,7 +76,7 @@ org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled diff --git a/src/main/java/com/vaadin/sass/internal/parser/function/AlphaFunctionGenerator.java b/src/main/java/com/vaadin/sass/internal/parser/function/AlphaFunctionGenerator.java index d102364a..05c9d940 100644 --- a/src/main/java/com/vaadin/sass/internal/parser/function/AlphaFunctionGenerator.java +++ b/src/main/java/com/vaadin/sass/internal/parser/function/AlphaFunctionGenerator.java @@ -50,7 +50,7 @@ protected SassListItem computeForArgumentList(LexicalUnitImpl function, private void checkParameters(LexicalUnitImpl function, FormalArgumentList args) { LexicalUnitImpl color = (LexicalUnitImpl) getParam(args, "color"); - if (!(color instanceof LexicalUnitImpl) + if (color == null || (!ColorUtil.isColor(color) && !ColorUtil.isRgba(color) && !ColorUtil .isHsla(color))) { throw new ParseException("The function " diff --git a/src/main/java/com/vaadin/sass/internal/util/StringUtil.java b/src/main/java/com/vaadin/sass/internal/util/StringUtil.java index fecba52f..7139f11e 100644 --- a/src/main/java/com/vaadin/sass/internal/util/StringUtil.java +++ b/src/main/java/com/vaadin/sass/internal/util/StringUtil.java @@ -111,7 +111,7 @@ public static String[] delimitedListToStringArray(String str, result.add(str.substring(pos)); } - return (String[]) result.toArray(new String[result.size()]); + return result.toArray(new String[result.size()]); } public static String collectionToDelimitedString(Collection coll, From b6fa2ee6bf6aa707fb720c5e1565f6f01eb14a0b Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 14:09:44 +0200 Subject: [PATCH 09/10] + unnesesary semicolon --- .settings/org.eclipse.jdt.core.prefs | 2 +- src/main/java/com/vaadin/sass/internal/ScssContext.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 7049343e..e4fa8628 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -18,7 +18,7 @@ org.eclipse.jdt.core.compiler.problem.deprecation=warning org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.emptyStatement=error org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled diff --git a/src/main/java/com/vaadin/sass/internal/ScssContext.java b/src/main/java/com/vaadin/sass/internal/ScssContext.java index d9e5f484..749991c4 100644 --- a/src/main/java/com/vaadin/sass/internal/ScssContext.java +++ b/src/main/java/com/vaadin/sass/internal/ScssContext.java @@ -39,7 +39,7 @@ public class ScssContext { */ public enum UrlMode { ABSOLUTE, MIXED, RELATIVE - }; + } private UrlMode urlMode; From f736094f8d22e445b16b7ba0643db59f6c89711d Mon Sep 17 00:00:00 2001 From: Snap252 Date: Sun, 23 Oct 2016 17:50:54 +0200 Subject: [PATCH 10/10] + refactored --- .../vaadin/sass/internal/resolver/AbstractResolver.java | 7 +++---- .../sass/internal/resolver/FilesystemResolver.java | 3 ++- src/test/java/com/vaadin/sass/AbstractTestBase.java | 9 +++++---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/vaadin/sass/internal/resolver/AbstractResolver.java b/src/main/java/com/vaadin/sass/internal/resolver/AbstractResolver.java index 864602f5..d65bd08c 100644 --- a/src/main/java/com/vaadin/sass/internal/resolver/AbstractResolver.java +++ b/src/main/java/com/vaadin/sass/internal/resolver/AbstractResolver.java @@ -136,9 +136,8 @@ protected String extractFullPath(String path, String identifier) { * The identifier to resolve * @return An input source if the resolver found one or null otherwise */ - protected InputSource normalizeAndResolve(String identifier) { - String normalized = normalize(identifier); - return resolveNormalized(normalized); + private InputSource normalizeAndResolve(String identifier) { + return resolveNormalized(normalize(identifier)); } /** @@ -160,7 +159,7 @@ protected InputSource normalizeAndResolve(String identifier) { * A relative or absolute file path * @return The normalized path */ - protected String normalize(String path) { + private static String normalize(String path) { // Ensure only "/" is used, also in Windows path = path.replace(File.separatorChar, '/'); diff --git a/src/main/java/com/vaadin/sass/internal/resolver/FilesystemResolver.java b/src/main/java/com/vaadin/sass/internal/resolver/FilesystemResolver.java index a355cfca..d9937f80 100644 --- a/src/main/java/com/vaadin/sass/internal/resolver/FilesystemResolver.java +++ b/src/main/java/com/vaadin/sass/internal/resolver/FilesystemResolver.java @@ -15,6 +15,7 @@ */ package com.vaadin.sass.internal.resolver; +import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; @@ -63,7 +64,7 @@ public InputSource resolveNormalized(String identifier) { try { InputStream is = new FileInputStream(fileName); InputSource source = new InputSource(); - source.setByteStream(is); + source.setByteStream(new BufferedInputStream(is)); source.setURI(fileName); return source; diff --git a/src/test/java/com/vaadin/sass/AbstractTestBase.java b/src/test/java/com/vaadin/sass/AbstractTestBase.java index 790c4ef1..47f47afa 100644 --- a/src/test/java/com/vaadin/sass/AbstractTestBase.java +++ b/src/test/java/com/vaadin/sass/AbstractTestBase.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.URISyntaxException; +import java.text.MessageFormat; import org.apache.commons.io.IOUtils; import org.w3c.css.sac.CSSException; @@ -36,18 +37,18 @@ public abstract class AbstractTestBase { protected String parsedScss; protected String comparisonCss; - public ScssStylesheet getStyleSheet(String filename) + protected final ScssStylesheet getStyleSheet(String filename) throws URISyntaxException, CSSException, IOException { final File file = new File(getClass().getResource(filename).toURI()); return ScssStylesheet.get(file.getAbsolutePath()); } - public final String getFileContent(String filename) throws IOException, + protected final String getFileContent(String filename) throws IOException, CSSException, URISyntaxException { return IOUtils.toString(getClass().getResourceAsStream(filename), "UTF-8"); } - public ScssStylesheet testParser(String fileName) throws CSSException, + protected final ScssStylesheet testParser(String fileName) throws CSSException, IOException, URISyntaxException { originalScss = getFileContent(fileName); originalScss = originalScss.replaceAll(CR, ""); @@ -59,7 +60,7 @@ public ScssStylesheet testParser(String fileName) throws CSSException, return sheet; } - public ScssStylesheet testCompiler(String scss, String cssFileName) + protected final ScssStylesheet testCompiler(String scss, String cssFileName) throws Exception { comparisonCss = getFileContent(cssFileName); comparisonCss = comparisonCss.replaceAll(CR, "");