This is an automated email from the ASF dual-hosted git repository. joshtynjala pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 1b4b875345262e1ca65a02c89e1709cb9e7c1f23 Author: Josh Tynjala <[email protected]> AuthorDate: Wed Oct 5 10:08:24 2022 -0700 linter: extract utility functions --- .../main/java/org/apache/royale/linter/LINTER.java | 191 +---------------- .../java/org/apache/royale/linter/LinterUtils.java | 225 +++++++++++++++++++++ 2 files changed, 227 insertions(+), 189 deletions(-) diff --git a/linter/src/main/java/org/apache/royale/linter/LINTER.java b/linter/src/main/java/org/apache/royale/linter/LINTER.java index 0a55f116e..2abc08db8 100644 --- a/linter/src/main/java/org/apache/royale/linter/LINTER.java +++ b/linter/src/main/java/org/apache/royale/linter/LINTER.java @@ -47,51 +47,6 @@ import org.apache.royale.linter.config.ConfigurationBuffer; import org.apache.royale.linter.config.ConfigurationValue; import org.apache.royale.linter.config.Configurator; import org.apache.royale.linter.config.ILinterSettingsConstants; -import org.apache.royale.linter.config.LineCommentPosition; -import org.apache.royale.linter.rules.NoAnyTypeRule; -import org.apache.royale.linter.rules.NoBooleanEqualityRule; -import org.apache.royale.linter.rules.ClassNameRule; -import org.apache.royale.linter.rules.ConstantNameRule; -import org.apache.royale.linter.rules.NoConstructorDispatchEventRule; -import org.apache.royale.linter.rules.NoConstructorReturnTypeRule; -import org.apache.royale.linter.rules.NoDuplicateObjectKeysRule; -import org.apache.royale.linter.rules.NoDynamicClassRule; -import org.apache.royale.linter.rules.EmptyCommentRule; -import org.apache.royale.linter.rules.EmptyFunctionBodyRule; -import org.apache.royale.linter.rules.EmptyNestedBlockRule; -import org.apache.royale.linter.rules.EmptyStatementRule; -import org.apache.royale.linter.rules.FieldNameRule; -import org.apache.royale.linter.rules.FunctionNameRule; -import org.apache.royale.linter.rules.NoIfBooleanLiteralRule; -import org.apache.royale.linter.rules.InterfaceNameRule; -import org.apache.royale.linter.rules.LineCommentPositionRule; -import org.apache.royale.linter.rules.LocalVarAndParameterNameRule; -import org.apache.royale.linter.rules.LocalVarShadowsFieldRule; -import org.apache.royale.linter.rules.MXMLEmptyAttributeRule; -import org.apache.royale.linter.rules.MXMLIDRule; -import org.apache.royale.linter.rules.MaxBlockDepthRule; -import org.apache.royale.linter.rules.MaxParametersRule; -import org.apache.royale.linter.rules.MissingASDocRule; -import org.apache.royale.linter.rules.MissingConstructorSuperRule; -import org.apache.royale.linter.rules.MissingNamespaceRule; -import org.apache.royale.linter.rules.MissingSemicolonRule; -import org.apache.royale.linter.rules.MissingTypeRule; -import org.apache.royale.linter.rules.NoLeadingZeroesRule; -import org.apache.royale.linter.rules.OverrideContainsOnlySuperCallRule; -import org.apache.royale.linter.rules.PackageNameRule; -import org.apache.royale.linter.rules.NoSparseArrayRule; -import org.apache.royale.linter.rules.StaticConstantsRule; -import org.apache.royale.linter.rules.StrictEqualityRule; -import org.apache.royale.linter.rules.NoStringEventNameRule; -import org.apache.royale.linter.rules.SwitchWithoutDefaultRule; -import org.apache.royale.linter.rules.NoThisInClosureRule; -import org.apache.royale.linter.rules.NoTraceRule; -import org.apache.royale.linter.rules.UnsafeNegationRule; -import org.apache.royale.linter.rules.ValidTypeofRule; -import org.apache.royale.linter.rules.VariablesOnTopRule; -import org.apache.royale.linter.rules.NoVoidOperatorRule; -import org.apache.royale.linter.rules.NoWildcardImportRule; -import org.apache.royale.linter.rules.NoWithRule; import org.apache.royale.utils.FilenameNormalization; /** @@ -246,150 +201,8 @@ public class LINTER { return false; } - settings = new LinterSettings(); - settings.ignoreProblems = configuration.getIgnoreParsingProblems(); - - List<LinterRule> rules = new ArrayList<LinterRule>(); - if (configuration.getClassName()) { - rules.add(new ClassNameRule()); - } - if (configuration.getConstantName()) { - rules.add(new ConstantNameRule()); - } - if (configuration.getEmptyFunctionBody()) { - rules.add(new EmptyFunctionBodyRule()); - } - if (configuration.getEmptyNestedBlock()) { - rules.add(new EmptyNestedBlockRule()); - } - if (configuration.getFunctionName()) { - rules.add(new FunctionNameRule()); - } - if (configuration.getFieldName()) { - rules.add(new FieldNameRule()); - } - if (configuration.getOverrideSuper()) { - rules.add(new OverrideContainsOnlySuperCallRule()); - } - if (configuration.getEmptyComment()) { - rules.add(new EmptyCommentRule()); - } - if (configuration.getEmptyStatement()) { - rules.add(new EmptyStatementRule()); - } - if (configuration.getInterfaceName()) { - rules.add(new InterfaceNameRule()); - } - if (configuration.getLineCommentPosition() != null) { - LineCommentPositionRule rule = new LineCommentPositionRule(); - rule.position = LineCommentPosition.valueOf(configuration.getLineCommentPosition().toUpperCase()); - rules.add(rule); - } - if (configuration.getLocalVarParamName()) { - rules.add(new LocalVarAndParameterNameRule()); - } - if (configuration.getLocalVarShadowsField()) { - rules.add(new LocalVarShadowsFieldRule()); - } - if (configuration.getMaxParams() > 0) { - MaxParametersRule rule = new MaxParametersRule(); - rule.maximum = configuration.getMaxParams(); - rules.add(rule); - } - if (configuration.getMaxBlockDepth() > 0) { - MaxBlockDepthRule rule = new MaxBlockDepthRule(); - rule.maximum = configuration.getMaxBlockDepth(); - rules.add(rule); - } - if (configuration.getMissingAsdoc()) { - rules.add(new MissingASDocRule()); - } - if (configuration.getMissingConstructorSuper()) { - rules.add(new MissingConstructorSuperRule()); - } - if (configuration.getMissingNamespace()) { - rules.add(new MissingNamespaceRule()); - } - if (configuration.getMissingSemicolon()) { - rules.add(new MissingSemicolonRule()); - } - if (configuration.getMissingType()) { - rules.add(new MissingTypeRule()); - } - if (configuration.getMxmlId()) { - rules.add(new MXMLIDRule()); - } - if (configuration.getMxmlEmptyAttr()) { - rules.add(new MXMLEmptyAttributeRule()); - } - if (configuration.getNoAnyType()) { - rules.add(new NoAnyTypeRule()); - } - if (configuration.getNoBooleanEquality()) { - rules.add(new NoBooleanEqualityRule()); - } - if (configuration.getNoConstructorDispatch()) { - rules.add(new NoConstructorDispatchEventRule()); - } - if (configuration.getNoConstructorReturnType()) { - rules.add(new NoConstructorReturnTypeRule()); - } - if (configuration.getNoDuplicateKeys()) { - rules.add(new NoDuplicateObjectKeysRule()); - } - if (configuration.getNoDynamicClass()) { - rules.add(new NoDynamicClassRule()); - } - if (configuration.getNoIfBoolean()) { - rules.add(new NoIfBooleanLiteralRule()); - } - if (configuration.getNoLeadingZero()) { - rules.add(new NoLeadingZeroesRule()); - } - if (configuration.getNoSparseArray()) { - rules.add(new NoSparseArrayRule()); - } - if (configuration.getNoStringEvent()) { - rules.add(new NoStringEventNameRule()); - } - if (configuration.getNoThisClosure()) { - rules.add(new NoThisInClosureRule()); - } - if (configuration.getNoTrace()) { - rules.add(new NoTraceRule()); - } - if (configuration.getNoVoidOperator()) { - rules.add(new NoVoidOperatorRule()); - } - if (configuration.getNoWildcardImport()) { - rules.add(new NoWildcardImportRule()); - } - if (configuration.getNoWith()) { - rules.add(new NoWithRule()); - } - if (configuration.getPackageName()) { - rules.add(new PackageNameRule()); - } - if (configuration.getStaticConstants()) { - rules.add(new StaticConstantsRule()); - } - if (configuration.getStrictEquality()) { - rules.add(new StrictEqualityRule()); - } - if (configuration.getSwitchDefault()) { - rules.add(new SwitchWithoutDefaultRule()); - } - if (configuration.getUnsafeNegation()) { - rules.add(new UnsafeNegationRule()); - } - if (configuration.getValidTypeof()) { - rules.add(new ValidTypeofRule()); - } - if (configuration.getVarsOnTop()) { - rules.add(new VariablesOnTopRule()); - } - settings.rules = rules; - if (rules.size() == 0) { + settings = LinterUtils.configurationToLinterSettings(configuration); + if (settings.rules.size() == 0) { ICompilerProblem problem = new ConfigurationProblem(null, -1, -1, -1, -1, "No linter rules were specified"); problems.add(problem); return false; diff --git a/linter/src/main/java/org/apache/royale/linter/LinterUtils.java b/linter/src/main/java/org/apache/royale/linter/LinterUtils.java new file mode 100644 index 000000000..d7a4542c3 --- /dev/null +++ b/linter/src/main/java/org/apache/royale/linter/LinterUtils.java @@ -0,0 +1,225 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.apache.royale.linter; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.royale.linter.config.Configuration; +import org.apache.royale.linter.config.LineCommentPosition; +import org.apache.royale.linter.rules.ClassNameRule; +import org.apache.royale.linter.rules.ConstantNameRule; +import org.apache.royale.linter.rules.EmptyCommentRule; +import org.apache.royale.linter.rules.EmptyFunctionBodyRule; +import org.apache.royale.linter.rules.EmptyNestedBlockRule; +import org.apache.royale.linter.rules.EmptyStatementRule; +import org.apache.royale.linter.rules.FieldNameRule; +import org.apache.royale.linter.rules.FunctionNameRule; +import org.apache.royale.linter.rules.InterfaceNameRule; +import org.apache.royale.linter.rules.LineCommentPositionRule; +import org.apache.royale.linter.rules.LocalVarAndParameterNameRule; +import org.apache.royale.linter.rules.LocalVarShadowsFieldRule; +import org.apache.royale.linter.rules.MXMLEmptyAttributeRule; +import org.apache.royale.linter.rules.MXMLIDRule; +import org.apache.royale.linter.rules.MaxBlockDepthRule; +import org.apache.royale.linter.rules.MaxParametersRule; +import org.apache.royale.linter.rules.MissingASDocRule; +import org.apache.royale.linter.rules.MissingConstructorSuperRule; +import org.apache.royale.linter.rules.MissingNamespaceRule; +import org.apache.royale.linter.rules.MissingSemicolonRule; +import org.apache.royale.linter.rules.MissingTypeRule; +import org.apache.royale.linter.rules.NoAnyTypeRule; +import org.apache.royale.linter.rules.NoBooleanEqualityRule; +import org.apache.royale.linter.rules.NoConstructorDispatchEventRule; +import org.apache.royale.linter.rules.NoConstructorReturnTypeRule; +import org.apache.royale.linter.rules.NoDuplicateObjectKeysRule; +import org.apache.royale.linter.rules.NoDynamicClassRule; +import org.apache.royale.linter.rules.NoIfBooleanLiteralRule; +import org.apache.royale.linter.rules.NoLeadingZeroesRule; +import org.apache.royale.linter.rules.NoSparseArrayRule; +import org.apache.royale.linter.rules.NoStringEventNameRule; +import org.apache.royale.linter.rules.NoThisInClosureRule; +import org.apache.royale.linter.rules.NoTraceRule; +import org.apache.royale.linter.rules.NoVoidOperatorRule; +import org.apache.royale.linter.rules.NoWildcardImportRule; +import org.apache.royale.linter.rules.NoWithRule; +import org.apache.royale.linter.rules.OverrideContainsOnlySuperCallRule; +import org.apache.royale.linter.rules.PackageNameRule; +import org.apache.royale.linter.rules.StaticConstantsRule; +import org.apache.royale.linter.rules.StrictEqualityRule; +import org.apache.royale.linter.rules.SwitchWithoutDefaultRule; +import org.apache.royale.linter.rules.UnsafeNegationRule; +import org.apache.royale.linter.rules.ValidTypeofRule; +import org.apache.royale.linter.rules.VariablesOnTopRule; + +public class LinterUtils { + public static LinterSettings configurationToLinterSettings(Configuration configuration) { + LinterSettings settings = new LinterSettings(); + settings.ignoreProblems = configuration.getIgnoreParsingProblems(); + + List<LinterRule> rules = LinterUtils.configurationToRules(configuration); + settings.rules = rules; + + return settings; + } + + public static List<LinterRule> configurationToRules(Configuration configuration) { + List<LinterRule> rules = new ArrayList<LinterRule>(); + if (configuration.getClassName()) { + rules.add(new ClassNameRule()); + } + if (configuration.getConstantName()) { + rules.add(new ConstantNameRule()); + } + if (configuration.getEmptyFunctionBody()) { + rules.add(new EmptyFunctionBodyRule()); + } + if (configuration.getEmptyNestedBlock()) { + rules.add(new EmptyNestedBlockRule()); + } + if (configuration.getFunctionName()) { + rules.add(new FunctionNameRule()); + } + if (configuration.getFieldName()) { + rules.add(new FieldNameRule()); + } + if (configuration.getOverrideSuper()) { + rules.add(new OverrideContainsOnlySuperCallRule()); + } + if (configuration.getEmptyComment()) { + rules.add(new EmptyCommentRule()); + } + if (configuration.getEmptyStatement()) { + rules.add(new EmptyStatementRule()); + } + if (configuration.getInterfaceName()) { + rules.add(new InterfaceNameRule()); + } + if (configuration.getLineCommentPosition() != null) { + LineCommentPositionRule rule = new LineCommentPositionRule(); + rule.position = LineCommentPosition.valueOf(configuration.getLineCommentPosition().toUpperCase()); + rules.add(rule); + } + if (configuration.getLocalVarParamName()) { + rules.add(new LocalVarAndParameterNameRule()); + } + if (configuration.getLocalVarShadowsField()) { + rules.add(new LocalVarShadowsFieldRule()); + } + if (configuration.getMaxParams() > 0) { + MaxParametersRule rule = new MaxParametersRule(); + rule.maximum = configuration.getMaxParams(); + rules.add(rule); + } + if (configuration.getMaxBlockDepth() > 0) { + MaxBlockDepthRule rule = new MaxBlockDepthRule(); + rule.maximum = configuration.getMaxBlockDepth(); + rules.add(rule); + } + if (configuration.getMissingAsdoc()) { + rules.add(new MissingASDocRule()); + } + if (configuration.getMissingConstructorSuper()) { + rules.add(new MissingConstructorSuperRule()); + } + if (configuration.getMissingNamespace()) { + rules.add(new MissingNamespaceRule()); + } + if (configuration.getMissingSemicolon()) { + rules.add(new MissingSemicolonRule()); + } + if (configuration.getMissingType()) { + rules.add(new MissingTypeRule()); + } + if (configuration.getMxmlId()) { + rules.add(new MXMLIDRule()); + } + if (configuration.getMxmlEmptyAttr()) { + rules.add(new MXMLEmptyAttributeRule()); + } + if (configuration.getNoAnyType()) { + rules.add(new NoAnyTypeRule()); + } + if (configuration.getNoBooleanEquality()) { + rules.add(new NoBooleanEqualityRule()); + } + if (configuration.getNoConstructorDispatch()) { + rules.add(new NoConstructorDispatchEventRule()); + } + if (configuration.getNoConstructorReturnType()) { + rules.add(new NoConstructorReturnTypeRule()); + } + if (configuration.getNoDuplicateKeys()) { + rules.add(new NoDuplicateObjectKeysRule()); + } + if (configuration.getNoDynamicClass()) { + rules.add(new NoDynamicClassRule()); + } + if (configuration.getNoIfBoolean()) { + rules.add(new NoIfBooleanLiteralRule()); + } + if (configuration.getNoLeadingZero()) { + rules.add(new NoLeadingZeroesRule()); + } + if (configuration.getNoSparseArray()) { + rules.add(new NoSparseArrayRule()); + } + if (configuration.getNoStringEvent()) { + rules.add(new NoStringEventNameRule()); + } + if (configuration.getNoThisClosure()) { + rules.add(new NoThisInClosureRule()); + } + if (configuration.getNoTrace()) { + rules.add(new NoTraceRule()); + } + if (configuration.getNoVoidOperator()) { + rules.add(new NoVoidOperatorRule()); + } + if (configuration.getNoWildcardImport()) { + rules.add(new NoWildcardImportRule()); + } + if (configuration.getNoWith()) { + rules.add(new NoWithRule()); + } + if (configuration.getPackageName()) { + rules.add(new PackageNameRule()); + } + if (configuration.getStaticConstants()) { + rules.add(new StaticConstantsRule()); + } + if (configuration.getStrictEquality()) { + rules.add(new StrictEqualityRule()); + } + if (configuration.getSwitchDefault()) { + rules.add(new SwitchWithoutDefaultRule()); + } + if (configuration.getUnsafeNegation()) { + rules.add(new UnsafeNegationRule()); + } + if (configuration.getValidTypeof()) { + rules.add(new ValidTypeofRule()); + } + if (configuration.getVarsOnTop()) { + rules.add(new VariablesOnTopRule()); + } + return rules; + } +}
