work on option panes

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@6917 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
Dale Anson
2009-04-21 05:46:16 +00:00
parent a66aff112e
commit 9f9e9856a0
5 changed files with 1712 additions and 282 deletions

View File

@@ -0,0 +1,240 @@
# select some default rules to help new users get started. The selected rules
# are those suggested by PMD best practices -- unused code, basic rules, some
# design rules, a few controversial rules, and imports rules.
options.pmd.rules.AbstractClassWithoutAbstractMethod=false
options.pmd.rules.AbstractClassWithoutAnyMethod=false
options.pmd.rules.AbstractNaming=false
options.pmd.rules.AccessorClassGeneration=false
options.pmd.rules.AddEmptyString=false
options.pmd.rules.AppendCharacterWithChar=true
options.pmd.rules.ArrayIsStoredDirectly=true
options.pmd.rules.AssignmentInOperand=false
options.pmd.rules.AssignmentToNonFinalStatic=false
options.pmd.rules.AtLeastOneConstructor=false
options.pmd.rules.AvoidAccessibilityAlteration=false
options.pmd.rules.AvoidArrayLoops=false
options.pmd.rules.AvoidAssertAsIdentifier=false
options.pmd.rules.AvoidCallingFinalize=false
options.pmd.rules.AvoidCatchingNPE=true
options.pmd.rules.AvoidCatchingThrowable=true
options.pmd.rules.AvoidConstantsInterface=false
options.pmd.rules.AvoidDecimalLiteralsInBigDecimalConstructor=true
options.pmd.rules.AvoidDeeplyNestedIfStmts=false
options.pmd.rules.AvoidDollarSigns=false
options.pmd.rules.AvoidDuplicateLiterals=true
options.pmd.rules.AvoidEnumAsIdentifier=false
options.pmd.rules.AvoidFieldNameMatchingMethodName=false
options.pmd.rules.AvoidFieldNameMatchingTypeName=false
options.pmd.rules.AvoidFinalLocalVariable=false
options.pmd.rules.AvoidInstanceofChecksInCatchClause=false
options.pmd.rules.AvoidInstantiatingObjectsInLoops=false
options.pmd.rules.AvoidMultipleUnaryOperators=true
options.pmd.rules.AvoidPrintStackTrace=false
options.pmd.rules.AvoidProtectedFieldInFinalClass=false
options.pmd.rules.AvoidReassigningParameters=false
options.pmd.rules.AvoidRethrowingException=true
options.pmd.rules.AvoidStringBufferField=true
options.pmd.rules.AvoidSynchronizedAtMethodLevel=false
options.pmd.rules.AvoidThreadGroup=true
options.pmd.rules.AvoidThrowingNewInstanceOfSameException=true
options.pmd.rules.AvoidThrowingNullPointerException=true
options.pmd.rules.AvoidThrowingRawExceptionTypes=true
options.pmd.rules.AvoidUsingHardCodedIP=true
options.pmd.rules.AvoidUsingNativeCode=false
options.pmd.rules.AvoidUsingOctalValues=true
options.pmd.rules.AvoidUsingShortType=false
options.pmd.rules.AvoidUsingVolatile=false
options.pmd.rules.BadComparison=false
options.pmd.rules.BeanMembersShouldSerialize=false
options.pmd.rules.BigIntegerInstantiation=true
options.pmd.rules.BooleanGetMethodName=false
options.pmd.rules.BooleanInstantiation=true
options.pmd.rules.BooleanInversion=false
options.pmd.rules.BrokenNullCheck=true
options.pmd.rules.ByteInstantiation=false
options.pmd.rules.CallSuperFirst=false
options.pmd.rules.CallSuperInConstructor=false
options.pmd.rules.CallSuperLast=false
options.pmd.rules.CheckResultSet=true
options.pmd.rules.ClassCastExceptionWithToArray=true
options.pmd.rules.ClassNamingConventions=false
options.pmd.rules.ClassWithOnlyPrivateConstructorsShouldBeFinal=false
options.pmd.rules.CloneMethodMustImplementCloneable=false
options.pmd.rules.CloneThrowsCloneNotSupportedException=false
options.pmd.rules.CloseResource=false
options.pmd.rules.CollapsibleIfStatements=true
options.pmd.rules.CompareObjectsWithEquals=false
options.pmd.rules.ConfusingTernary=false
options.pmd.rules.ConsecutiveLiteralAppends=true
options.pmd.rules.ConstructorCallsOverridableMethod=false
options.pmd.rules.CouplingBetweenObjects=false
options.pmd.rules.CyclomaticComplexity=false
options.pmd.rules.DataflowAnomalyAnalysis=false
options.pmd.rules.DefaultLabelNotLastInSwitchStmt=false
options.pmd.rules.DefaultPackage=false
options.pmd.rules.DoNotCallGarbageCollectionExplicitly=false
options.pmd.rules.DoNotCallSystemExit=false
options.pmd.rules.DoNotExtendJavaLangError=true
options.pmd.rules.DoNotThrowExceptionInFinally=true
options.pmd.rules.DoNotUseThreads=false
options.pmd.rules.DontImportJavaLang=true
options.pmd.rules.DontImportSun=false
options.pmd.rules.DoubleCheckedLocking=true
options.pmd.rules.DuplicateImports=true
options.pmd.rules.EmptyCatchBlock=true
options.pmd.rules.EmptyFinalizer=false
options.pmd.rules.EmptyFinallyBlock=true
options.pmd.rules.EmptyIfStmt=true
options.pmd.rules.EmptyInitializer=true
options.pmd.rules.EmptyMethodInAbstractClassShouldBeAbstract=false
options.pmd.rules.EmptyStatementNotInLoop=true
options.pmd.rules.EmptyStaticInitializer=true
options.pmd.rules.EmptySwitchStatements=true
options.pmd.rules.EmptySynchronizedBlock=true
options.pmd.rules.EmptyTryBlock=true
options.pmd.rules.EmptyWhileStmt=true
options.pmd.rules.EqualsNull=false
options.pmd.rules.ExceptionAsFlowControl=true
options.pmd.rules.ExcessiveClassLength=false
options.pmd.rules.ExcessiveImports=false
options.pmd.rules.ExcessiveMethodLength=false
options.pmd.rules.ExcessiveParameterList=false
options.pmd.rules.ExcessivePublicCount=false
options.pmd.rules.FinalFieldCouldBeStatic=false
options.pmd.rules.FinalizeDoesNotCallSuperFinalize=false
options.pmd.rules.FinalizeOnlyCallsSuperFinalize=false
options.pmd.rules.FinalizeOverloaded=false
options.pmd.rules.FinalizeShouldBeProtected=false
options.pmd.rules.ForLoopShouldBeWhileLoop=true
options.pmd.rules.ForLoopsMustUseBraces=false
options.pmd.rules.IdempotentOperations=false
options.pmd.rules.IfElseStmtsMustUseBraces=false
options.pmd.rules.IfStmtsMustUseBraces=false
options.pmd.rules.ImmutableField=false
options.pmd.rules.ImportFromSamePackage=true
options.pmd.rules.InefficientEmptyStringCheck=true
options.pmd.rules.InefficientStringBuffering=true
options.pmd.rules.InstantiationToGetClass=false
options.pmd.rules.InsufficientStringBufferDeclaration=true
options.pmd.rules.IntegerInstantiation=false
options.pmd.rules.JUnit4SuitesShouldUseSuiteAnnotation=false
options.pmd.rules.JUnit4TestShouldUseAfterAnnotation=false
options.pmd.rules.JUnit4TestShouldUseBeforeAnnotation=false
options.pmd.rules.JUnit4TestShouldUseTestAnnotation=false
options.pmd.rules.JUnitAssertionsShouldIncludeMessage=false
options.pmd.rules.JUnitSpelling=false
options.pmd.rules.JUnitStaticSuite=false
options.pmd.rules.JUnitTestsShouldIncludeAssert=false
options.pmd.rules.JUnitUseExpected=false
options.pmd.rules.JumbledIncrementer=true
options.pmd.rules.LocalHomeNamingConvention=false
options.pmd.rules.LocalInterfaceSessionNamingConvention=false
options.pmd.rules.LocalVariableCouldBeFinal=false
options.pmd.rules.LoggerIsNotStaticFinal=false
options.pmd.rules.LongInstantiation=false
options.pmd.rules.LongVariable=false
options.pmd.rules.LooseCoupling=false
options.pmd.rules.MDBAndSessionBeanNamingConvention=false
options.pmd.rules.MethodArgumentCouldBeFinal=false
options.pmd.rules.MethodNamingConventions=false
options.pmd.rules.MethodReturnsInternalArray=true
options.pmd.rules.MethodWithSameNameAsEnclosingClass=false
options.pmd.rules.MisleadingVariableName=false
options.pmd.rules.MisplacedNullCheck=true
options.pmd.rules.MissingBreakInSwitch=false
options.pmd.rules.MissingSerialVersionUID=false
options.pmd.rules.MissingStaticMethodInNonInstantiatableClass=false
options.pmd.rules.MoreThanOneLogger=false
options.pmd.rules.NPathComplexity=false
options.pmd.rules.NcssConstructorCount=false
options.pmd.rules.NcssMethodCount=false
options.pmd.rules.NcssTypeCount=false
options.pmd.rules.NoPackage=false
options.pmd.rules.NonCaseLabelInSwitchStatement=false
options.pmd.rules.NonStaticInitializer=false
options.pmd.rules.NonThreadSafeSingleton=false
options.pmd.rules.NullAssignment=false
options.pmd.rules.OnlyOneReturn=false
options.pmd.rules.OptimizableToArrayCall=false
options.pmd.rules.OverrideBothEqualsAndHashcode=true
options.pmd.rules.PackageCase=false
options.pmd.rules.PositionLiteralsFirstInComparisons=false
options.pmd.rules.PreserveStackTrace=false
options.pmd.rules.ProperCloneImplementation=false
options.pmd.rules.ProperLogger=false
options.pmd.rules.ProtectLogD=false
options.pmd.rules.ProtectLogV=false
options.pmd.rules.RemoteInterfaceNamingConvention=false
options.pmd.rules.RemoteSessionInterfaceNamingConvention=false
options.pmd.rules.ReplaceEnumerationWithIterator=false
options.pmd.rules.ReplaceHashtableWithMap=false
options.pmd.rules.ReplaceVectorWithList=false
options.pmd.rules.ReturnEmptyArrayRatherThanNull=false
options.pmd.rules.ReturnFromFinallyBlock=true
options.pmd.rules.ShortInstantiation=false
options.pmd.rules.ShortMethodName=false
options.pmd.rules.ShortVariable=false
options.pmd.rules.SignatureDeclareThrowsException=true
options.pmd.rules.SimpleDateFormatNeedsLocale=false
options.pmd.rules.SimplifyBooleanAssertion=false
options.pmd.rules.SimplifyBooleanExpressions=false
options.pmd.rules.SimplifyBooleanReturns=false
options.pmd.rules.SimplifyConditional=false
options.pmd.rules.SimplifyStartsWith=false
options.pmd.rules.SingularField=true
options.pmd.rules.StaticEJBFieldShouldBeFinal=false
options.pmd.rules.StringBufferInstantiationWithChar=true
options.pmd.rules.StringInstantiation=true
options.pmd.rules.StringToString=true
options.pmd.rules.SuspiciousConstantFieldName=false
options.pmd.rules.SuspiciousEqualsMethodName=false
options.pmd.rules.SuspiciousHashcodeMethodName=false
options.pmd.rules.SuspiciousOctalEscape=false
options.pmd.rules.SwitchDensity=false
options.pmd.rules.SwitchStmtsShouldHaveDefault=false
options.pmd.rules.SystemPrintln=false
options.pmd.rules.TestClassWithoutTestCases=false
options.pmd.rules.TooFewBranchesForASwitchStatement=false
options.pmd.rules.TooManyFields=false
options.pmd.rules.TooManyMethods=true
options.pmd.rules.TooManyStaticImports=true
options.pmd.rules.UncommentedEmptyConstructor=false
options.pmd.rules.UncommentedEmptyMethod=false
options.pmd.rules.UnconditionalIfStatement=true
options.pmd.rules.UnnecessaryBooleanAssertion=false
options.pmd.rules.UnnecessaryCaseChange=true
options.pmd.rules.UnnecessaryConstructor=false
options.pmd.rules.UnnecessaryConversionTemporary=true
options.pmd.rules.UnnecessaryFinalModifier=true
options.pmd.rules.UnnecessaryLocalBeforeReturn=false
options.pmd.rules.UnnecessaryParentheses=false
options.pmd.rules.UnnecessaryReturn=true
options.pmd.rules.UnnecessaryWrapperObjectCreation=false
options.pmd.rules.UnsynchronizedStaticDateFormatter=false
options.pmd.rules.UnusedFormalParameter=true
options.pmd.rules.UnusedImports=true
options.pmd.rules.UnusedLocalVariable=true
options.pmd.rules.UnusedModifier=false
options.pmd.rules.UnusedNullCheckInEquals=true
options.pmd.rules.UnusedPrivateField=true
options.pmd.rules.UnusedPrivateMethod=true
options.pmd.rules.UseArrayListInsteadOfVector=false
options.pmd.rules.UseArraysAsList=false
options.pmd.rules.UseAssertEqualsInsteadOfAssertTrue=false
options.pmd.rules.UseAssertNullInsteadOfAssertTrue=false
options.pmd.rules.UseAssertSameInsteadOfAssertTrue=false
options.pmd.rules.UseCollectionIsEmpty=false
options.pmd.rules.UseCorrectExceptionLogging=false
options.pmd.rules.UseEqualsToCompareStrings=true
options.pmd.rules.UseIndexOfChar=true
options.pmd.rules.UseLocaleWithCaseConversions=false
options.pmd.rules.UseNotifyAllInsteadOfNotify=false
options.pmd.rules.UseProperClassLoader=false
options.pmd.rules.UseSingleton=false
options.pmd.rules.UseStringBufferForStringAppends=false
options.pmd.rules.UseStringBufferLength=true
options.pmd.rules.UselessOperationOnImmutable=true
options.pmd.rules.UselessOverridingMethod=true
options.pmd.rules.UselessStringValueOf=true
options.pmd.rules.VariableNamingConventions=false
options.pmd.rules.WhileLoopsMustUseBraces=false

View File

@@ -70,245 +70,5 @@ pmd.progressbar.foreground=#000000
pmd.progressbar.background=#FFC800
# select some default rules to help new users get started. The selected rules
# are those suggested by PMD best practices -- unused code, basic rules, some
# design rules, a few controversial rules, and imports rules.
options.pmd.rules.AbstractClassWithoutAbstractMethod=false
options.pmd.rules.AbstractClassWithoutAnyMethod=false
options.pmd.rules.AbstractNaming=false
options.pmd.rules.AccessorClassGeneration=false
options.pmd.rules.AddEmptyString=false
options.pmd.rules.AppendCharacterWithChar=true
options.pmd.rules.ArrayIsStoredDirectly=true
options.pmd.rules.AssignmentInOperand=false
options.pmd.rules.AssignmentToNonFinalStatic=false
options.pmd.rules.AtLeastOneConstructor=false
options.pmd.rules.AvoidAccessibilityAlteration=false
options.pmd.rules.AvoidArrayLoops=false
options.pmd.rules.AvoidAssertAsIdentifier=false
options.pmd.rules.AvoidCallingFinalize=false
options.pmd.rules.AvoidCatchingNPE=true
options.pmd.rules.AvoidCatchingThrowable=true
options.pmd.rules.AvoidConstantsInterface=false
options.pmd.rules.AvoidDecimalLiteralsInBigDecimalConstructor=true
options.pmd.rules.AvoidDeeplyNestedIfStmts=false
options.pmd.rules.AvoidDollarSigns=false
options.pmd.rules.AvoidDuplicateLiterals=true
options.pmd.rules.AvoidEnumAsIdentifier=false
options.pmd.rules.AvoidFieldNameMatchingMethodName=false
options.pmd.rules.AvoidFieldNameMatchingTypeName=false
options.pmd.rules.AvoidFinalLocalVariable=false
options.pmd.rules.AvoidInstanceofChecksInCatchClause=false
options.pmd.rules.AvoidInstantiatingObjectsInLoops=false
options.pmd.rules.AvoidMultipleUnaryOperators=true
options.pmd.rules.AvoidPrintStackTrace=false
options.pmd.rules.AvoidProtectedFieldInFinalClass=false
options.pmd.rules.AvoidReassigningParameters=false
options.pmd.rules.AvoidRethrowingException=true
options.pmd.rules.AvoidStringBufferField=true
options.pmd.rules.AvoidSynchronizedAtMethodLevel=false
options.pmd.rules.AvoidThreadGroup=true
options.pmd.rules.AvoidThrowingNewInstanceOfSameException=true
options.pmd.rules.AvoidThrowingNullPointerException=true
options.pmd.rules.AvoidThrowingRawExceptionTypes=true
options.pmd.rules.AvoidUsingHardCodedIP=true
options.pmd.rules.AvoidUsingNativeCode=false
options.pmd.rules.AvoidUsingOctalValues=true
options.pmd.rules.AvoidUsingShortType=false
options.pmd.rules.AvoidUsingVolatile=false
options.pmd.rules.BadComparison=false
options.pmd.rules.BeanMembersShouldSerialize=false
options.pmd.rules.BigIntegerInstantiation=true
options.pmd.rules.BooleanGetMethodName=false
options.pmd.rules.BooleanInstantiation=true
options.pmd.rules.BooleanInversion=false
options.pmd.rules.BrokenNullCheck=true
options.pmd.rules.ByteInstantiation=false
options.pmd.rules.CallSuperFirst=false
options.pmd.rules.CallSuperInConstructor=false
options.pmd.rules.CallSuperLast=false
options.pmd.rules.CheckResultSet=true
options.pmd.rules.ClassCastExceptionWithToArray=true
options.pmd.rules.ClassNamingConventions=false
options.pmd.rules.ClassWithOnlyPrivateConstructorsShouldBeFinal=false
options.pmd.rules.CloneMethodMustImplementCloneable=false
options.pmd.rules.CloneThrowsCloneNotSupportedException=false
options.pmd.rules.CloseResource=false
options.pmd.rules.CollapsibleIfStatements=true
options.pmd.rules.CompareObjectsWithEquals=false
options.pmd.rules.ConfusingTernary=false
options.pmd.rules.ConsecutiveLiteralAppends=true
options.pmd.rules.ConstructorCallsOverridableMethod=false
options.pmd.rules.CouplingBetweenObjects=false
options.pmd.rules.CyclomaticComplexity=false
options.pmd.rules.DataflowAnomalyAnalysis=false
options.pmd.rules.DefaultLabelNotLastInSwitchStmt=false
options.pmd.rules.DefaultPackage=false
options.pmd.rules.DoNotCallGarbageCollectionExplicitly=false
options.pmd.rules.DoNotCallSystemExit=false
options.pmd.rules.DoNotExtendJavaLangError=true
options.pmd.rules.DoNotThrowExceptionInFinally=true
options.pmd.rules.DoNotUseThreads=false
options.pmd.rules.DontImportJavaLang=true
options.pmd.rules.DontImportSun=false
options.pmd.rules.DoubleCheckedLocking=true
options.pmd.rules.DuplicateImports=true
options.pmd.rules.EmptyCatchBlock=true
options.pmd.rules.EmptyFinalizer=false
options.pmd.rules.EmptyFinallyBlock=true
options.pmd.rules.EmptyIfStmt=true
options.pmd.rules.EmptyInitializer=true
options.pmd.rules.EmptyMethodInAbstractClassShouldBeAbstract=false
options.pmd.rules.EmptyStatementNotInLoop=true
options.pmd.rules.EmptyStaticInitializer=true
options.pmd.rules.EmptySwitchStatements=true
options.pmd.rules.EmptySynchronizedBlock=true
options.pmd.rules.EmptyTryBlock=true
options.pmd.rules.EmptyWhileStmt=true
options.pmd.rules.EqualsNull=false
options.pmd.rules.ExceptionAsFlowControl=true
options.pmd.rules.ExcessiveClassLength=false
options.pmd.rules.ExcessiveImports=false
options.pmd.rules.ExcessiveMethodLength=false
options.pmd.rules.ExcessiveParameterList=false
options.pmd.rules.ExcessivePublicCount=false
options.pmd.rules.FinalFieldCouldBeStatic=false
options.pmd.rules.FinalizeDoesNotCallSuperFinalize=false
options.pmd.rules.FinalizeOnlyCallsSuperFinalize=false
options.pmd.rules.FinalizeOverloaded=false
options.pmd.rules.FinalizeShouldBeProtected=false
options.pmd.rules.ForLoopShouldBeWhileLoop=true
options.pmd.rules.ForLoopsMustUseBraces=false
options.pmd.rules.IdempotentOperations=false
options.pmd.rules.IfElseStmtsMustUseBraces=false
options.pmd.rules.IfStmtsMustUseBraces=false
options.pmd.rules.ImmutableField=false
options.pmd.rules.ImportFromSamePackage=true
options.pmd.rules.InefficientEmptyStringCheck=true
options.pmd.rules.InefficientStringBuffering=true
options.pmd.rules.InstantiationToGetClass=false
options.pmd.rules.InsufficientStringBufferDeclaration=true
options.pmd.rules.IntegerInstantiation=false
options.pmd.rules.JUnit4SuitesShouldUseSuiteAnnotation=false
options.pmd.rules.JUnit4TestShouldUseAfterAnnotation=false
options.pmd.rules.JUnit4TestShouldUseBeforeAnnotation=false
options.pmd.rules.JUnit4TestShouldUseTestAnnotation=false
options.pmd.rules.JUnitAssertionsShouldIncludeMessage=false
options.pmd.rules.JUnitSpelling=false
options.pmd.rules.JUnitStaticSuite=false
options.pmd.rules.JUnitTestsShouldIncludeAssert=false
options.pmd.rules.JUnitUseExpected=false
options.pmd.rules.JumbledIncrementer=true
options.pmd.rules.LocalHomeNamingConvention=false
options.pmd.rules.LocalInterfaceSessionNamingConvention=false
options.pmd.rules.LocalVariableCouldBeFinal=false
options.pmd.rules.LoggerIsNotStaticFinal=false
options.pmd.rules.LongInstantiation=false
options.pmd.rules.LongVariable=false
options.pmd.rules.LooseCoupling=false
options.pmd.rules.MDBAndSessionBeanNamingConvention=false
options.pmd.rules.MethodArgumentCouldBeFinal=false
options.pmd.rules.MethodNamingConventions=false
options.pmd.rules.MethodReturnsInternalArray=true
options.pmd.rules.MethodWithSameNameAsEnclosingClass=false
options.pmd.rules.MisleadingVariableName=false
options.pmd.rules.MisplacedNullCheck=true
options.pmd.rules.MissingBreakInSwitch=false
options.pmd.rules.MissingSerialVersionUID=false
options.pmd.rules.MissingStaticMethodInNonInstantiatableClass=false
options.pmd.rules.MoreThanOneLogger=false
options.pmd.rules.NPathComplexity=false
options.pmd.rules.NcssConstructorCount=false
options.pmd.rules.NcssMethodCount=false
options.pmd.rules.NcssTypeCount=false
options.pmd.rules.NoPackage=false
options.pmd.rules.NonCaseLabelInSwitchStatement=false
options.pmd.rules.NonStaticInitializer=false
options.pmd.rules.NonThreadSafeSingleton=false
options.pmd.rules.NullAssignment=false
options.pmd.rules.OnlyOneReturn=false
options.pmd.rules.OptimizableToArrayCall=false
options.pmd.rules.OverrideBothEqualsAndHashcode=true
options.pmd.rules.PackageCase=false
options.pmd.rules.PositionLiteralsFirstInComparisons=false
options.pmd.rules.PreserveStackTrace=false
options.pmd.rules.ProperCloneImplementation=false
options.pmd.rules.ProperLogger=false
options.pmd.rules.ProtectLogD=false
options.pmd.rules.ProtectLogV=false
options.pmd.rules.RemoteInterfaceNamingConvention=false
options.pmd.rules.RemoteSessionInterfaceNamingConvention=false
options.pmd.rules.ReplaceEnumerationWithIterator=false
options.pmd.rules.ReplaceHashtableWithMap=false
options.pmd.rules.ReplaceVectorWithList=false
options.pmd.rules.ReturnEmptyArrayRatherThanNull=false
options.pmd.rules.ReturnFromFinallyBlock=true
options.pmd.rules.ShortInstantiation=false
options.pmd.rules.ShortMethodName=false
options.pmd.rules.ShortVariable=false
options.pmd.rules.SignatureDeclareThrowsException=true
options.pmd.rules.SimpleDateFormatNeedsLocale=false
options.pmd.rules.SimplifyBooleanAssertion=false
options.pmd.rules.SimplifyBooleanExpressions=false
options.pmd.rules.SimplifyBooleanReturns=false
options.pmd.rules.SimplifyConditional=false
options.pmd.rules.SimplifyStartsWith=false
options.pmd.rules.SingularField=true
options.pmd.rules.StaticEJBFieldShouldBeFinal=false
options.pmd.rules.StringBufferInstantiationWithChar=true
options.pmd.rules.StringInstantiation=true
options.pmd.rules.StringToString=true
options.pmd.rules.SuspiciousConstantFieldName=false
options.pmd.rules.SuspiciousEqualsMethodName=false
options.pmd.rules.SuspiciousHashcodeMethodName=false
options.pmd.rules.SuspiciousOctalEscape=false
options.pmd.rules.SwitchDensity=false
options.pmd.rules.SwitchStmtsShouldHaveDefault=false
options.pmd.rules.SystemPrintln=false
options.pmd.rules.TestClassWithoutTestCases=false
options.pmd.rules.TooFewBranchesForASwitchStatement=false
options.pmd.rules.TooManyFields=false
options.pmd.rules.TooManyMethods=true
options.pmd.rules.TooManyStaticImports=true
options.pmd.rules.UncommentedEmptyConstructor=false
options.pmd.rules.UncommentedEmptyMethod=false
options.pmd.rules.UnconditionalIfStatement=true
options.pmd.rules.UnnecessaryBooleanAssertion=false
options.pmd.rules.UnnecessaryCaseChange=true
options.pmd.rules.UnnecessaryConstructor=false
options.pmd.rules.UnnecessaryConversionTemporary=true
options.pmd.rules.UnnecessaryFinalModifier=true
options.pmd.rules.UnnecessaryLocalBeforeReturn=false
options.pmd.rules.UnnecessaryParentheses=false
options.pmd.rules.UnnecessaryReturn=true
options.pmd.rules.UnnecessaryWrapperObjectCreation=false
options.pmd.rules.UnsynchronizedStaticDateFormatter=false
options.pmd.rules.UnusedFormalParameter=true
options.pmd.rules.UnusedImports=true
options.pmd.rules.UnusedLocalVariable=true
options.pmd.rules.UnusedModifier=false
options.pmd.rules.UnusedNullCheckInEquals=true
options.pmd.rules.UnusedPrivateField=true
options.pmd.rules.UnusedPrivateMethod=true
options.pmd.rules.UseArrayListInsteadOfVector=false
options.pmd.rules.UseArraysAsList=false
options.pmd.rules.UseAssertEqualsInsteadOfAssertTrue=false
options.pmd.rules.UseAssertNullInsteadOfAssertTrue=false
options.pmd.rules.UseAssertSameInsteadOfAssertTrue=false
options.pmd.rules.UseCollectionIsEmpty=false
options.pmd.rules.UseCorrectExceptionLogging=false
options.pmd.rules.UseEqualsToCompareStrings=true
options.pmd.rules.UseIndexOfChar=true
options.pmd.rules.UseLocaleWithCaseConversions=false
options.pmd.rules.UseNotifyAllInsteadOfNotify=false
options.pmd.rules.UseProperClassLoader=false
options.pmd.rules.UseSingleton=false
options.pmd.rules.UseStringBufferForStringAppends=false
options.pmd.rules.UseStringBufferLength=true
options.pmd.rules.UselessOperationOnImmutable=true
options.pmd.rules.UselessOverridingMethod=true
options.pmd.rules.UselessStringValueOf=true
options.pmd.rules.VariableNamingConventions=false
options.pmd.rules.WhileLoopsMustUseBraces=false

View File

File diff suppressed because it is too large Load Diff

View File

@@ -13,17 +13,11 @@ import org.gjt.sp.jedit.OptionPane;
import org.gjt.sp.jedit.jEdit;
import org.gjt.sp.util.StringList;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.MouseEvent;
import java.util.List;
@@ -31,11 +25,13 @@ public class PMDRulesOptionPane extends AbstractOptionPane implements OptionPane
SelectedRules rules;
JTextArea exampleTextArea = new JTextArea( 15, 50 );
JTextArea exampleTextArea = new JTextArea( 15, 80 );
JTextField txtCustomRules;
CheckboxTree tree;
JCheckBox useDefaultRules;
JLabel exampleLabel;
static final String USE_DEFAULT_RULES_KEY = "pmd.use-default-rules";
public PMDRulesOptionPane() {
@@ -51,11 +47,11 @@ public class PMDRulesOptionPane extends AbstractOptionPane implements OptionPane
public void _init() {
removeAll();
setLayout( new FlowLayout( FlowLayout.LEADING ) );
setLayout( new KappaLayout() );
JPanel rulesPanel = new JPanel( new BorderLayout() );
rulesPanel.add( new JLabel( "Please see http://pmd.sf.net/ for more information" ), BorderLayout.NORTH );
rulesPanel.setBorder( BorderFactory.createTitledBorder( "Rules" ) );
JLabel rules_label = new JLabel( "Rules" );
useDefaultRules = new JCheckBox( "Select default rules" );
useDefaultRules.setSelected( jEdit.getBooleanProperty( USE_DEFAULT_RULES_KEY, false ) );
// use a checkbox tree for displaying the rules. This lets the rules be
// grouped by ruleset, and makes it very easy to select an entire set of
@@ -64,35 +60,67 @@ public class PMDRulesOptionPane extends AbstractOptionPane implements OptionPane
// individual rules. Using the PROPAGATE_PRESERVING_UNCHECK checking mode
// means the ruleset will be checked if one or more of the rules it contains
// is checked.
JScrollPane rules_pane = null;
if ( rules == null ) {
JOptionPane.showMessageDialog( null, "Error loading rules. Check any custom rulesets for errors.", "Error Loading Rules", JOptionPane.ERROR_MESSAGE );
}
else {
if ( jEdit.getBooleanProperty( USE_DEFAULT_RULES_KEY, false ) ) {
rules.loadGoodRulesTree();
}
tree = new CheckboxTree( rules.getRoot() );
tree.getCheckingModel().setCheckingMode( TreeCheckingModel.CheckingMode.PROPAGATE_PRESERVING_UNCHECK );
tree.setCheckingPaths( rules.getCheckingModel().getCheckingPaths() );
tree.setRootVisible( false );
tree.addMouseMotionListener( new MyMouseMotionAdapter() );
rulesPanel.add( new JScrollPane( tree ), BorderLayout.CENTER );
rules_pane = new JScrollPane( tree );
}
useDefaultRules.addActionListener(
new ActionListener() {
public void actionPerformed( final ActionEvent ae ) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
if ( ( ( JCheckBox ) ae.getSource() ).isSelected() ) {
rules.loadGoodRulesTree();
}
else {
rules.loadTree();
}
tree.setModel( rules.getTreeModel() );
tree.getCheckingModel().setCheckingMode( TreeCheckingModel.CheckingMode.PROPAGATE_PRESERVING_UNCHECK );
tree.setCheckingPaths( rules.getCheckingModel().getCheckingPaths() );
tree.invalidate();
tree.validate();
}
}
);
}
}
);
// Custom Rule Panel Definition.
/// TODO: make custom rules a separate panel
/*
JPanel pnlCustomRules = new JPanel( new FlowLayout( FlowLayout.LEFT ) );
pnlCustomRules.add( new JLabel( "Path to custom rules.xml files(seperated by comma)" ) );
pnlCustomRules.add( new JLabel( "Path to custom rules.xml files(separated by comma)" ) );
pnlCustomRules.add( ( txtCustomRules = new JTextField( jEdit.getProperty( PMDJEditPlugin.CUSTOM_RULES_PATH_KEY, "" ), 30 ) ) );
rulesPanel.add( pnlCustomRules, BorderLayout.SOUTH );
*/
JPanel textPanel = new JPanel( new BorderLayout() );
textPanel.setBorder( BorderFactory.createTitledBorder( "Example" ) );
textPanel.add( new JScrollPane( exampleTextArea ), BorderLayout.CENTER );
exampleLabel = new JLabel( "Example" );
JScrollPane example_pane = new JScrollPane( exampleTextArea );
JPanel mainPanel = new JPanel();
mainPanel.setLayout( new BorderLayout() );
mainPanel.add( rulesPanel, BorderLayout.CENTER );
mainPanel.add( textPanel, BorderLayout.SOUTH );
JLabel more_info_label = new JLabel( "Please see http://pmd.sf.net/ for more information" );
addComponent( mainPanel );
setBorder( BorderFactory.createEmptyBorder( 12, 11, 11, 12 ) );
add( "0, 0, 1, 1, W, w, 3", rules_label );
add( "0, 1, 1, 1, W, w, 3", useDefaultRules );
add( "0, 2, 1, 10, 0, wh, 3", rules_pane );
add( "0, 12, 1, 1, W, w, 3", exampleLabel );
add( "0, 13, 1, 6, 0, wh, 3", example_pane );
add( "0, 19, 1, 1, W, w, 3", more_info_label );
}
public void _save() {
@@ -104,6 +132,7 @@ public class PMDRulesOptionPane extends AbstractOptionPane implements OptionPane
jEdit.setProperty( PMDJEditPlugin.CUSTOM_RULES_PATH_KEY, txtCustomRules
.getText() );
}
jEdit.setBooleanProperty( USE_DEFAULT_RULES_KEY, useDefaultRules.isSelected() );
}
private class MyMouseMotionAdapter extends java.awt.event.MouseMotionAdapter {
@@ -114,6 +143,7 @@ public class PMDRulesOptionPane extends AbstractOptionPane implements OptionPane
if ( node != null ) {
Object userObject = node.getUserObject();
if ( userObject instanceof RuleNode ) {
changeExampleLabel( "Example" );
List<String> examples = ( ( RuleNode ) userObject ).getRule().getExamples();
exampleTextArea.setLineWrap( false );
exampleTextArea.setWrapStyleWord( false );
@@ -121,6 +151,7 @@ public class PMDRulesOptionPane extends AbstractOptionPane implements OptionPane
exampleTextArea.setCaretPosition( 0 );
}
else if ( userObject instanceof RuleSetNode ) {
changeExampleLabel( "Description" );
String description = ( ( RuleSetNode ) userObject ).getRuleSet().getDescription();
description = description.trim();
description = description.replaceAll( "\n", " " );
@@ -133,4 +164,14 @@ public class PMDRulesOptionPane extends AbstractOptionPane implements OptionPane
}
}
}
private void changeExampleLabel( final String text ) {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
exampleLabel.setText( text );
exampleLabel.repaint();
}
}
);
}
}

View File

@@ -32,6 +32,9 @@ public class SelectedRules {
// root of tree to show rule sets and rules
private DefaultMutableTreeNode root = new DefaultMutableTreeNode();
// model for the checkbox tree
private TreeModel treeModel = null;
// model of the checkboxes for the tree that shows the rule sets and rules
private TreeCheckingModel checkingModel = null;
@@ -148,8 +151,47 @@ public class SelectedRules {
return rulesets;
}
private void loadTree() {
TreeModel treeModel = new DefaultTreeModel( root );
protected void loadGoodRulesTree() {
Properties goodRules = new Properties();
try {
goodRules.load(getClass().getClassLoader().getResourceAsStream("default_rules.props"));
}
catch(Exception e) {
e.printStackTrace();
}
treeModel = new DefaultTreeModel( root );
checkingModel = new DefaultTreeCheckingModel( treeModel );
selectedRules = new RuleSets();
// load the selected rules from a list of good rules, this
// builds the checking model for the tree as well as the RuleSets for the
// selected rules to pass to PMD.
for ( int i = 0; i < root.getChildCount(); i++ ) {
DefaultMutableTreeNode ruleSetNode = ( DefaultMutableTreeNode ) root.getChildAt( i );
RuleSet ruleset = new RuleSet();
boolean hadCheckedRule = false;
for ( int j = 0; j < ruleSetNode.getChildCount(); j++ ) {
DefaultMutableTreeNode ruleNode = ( DefaultMutableTreeNode ) ruleSetNode.getChildAt( j );
TreePath path = new TreePath( ruleNode.getPath() );
RuleNode rn = ( RuleNode ) ruleNode.getUserObject();
String goodRuleChecked = goodRules.getProperty(PMDJEditPlugin.OPTION_RULES_PREFIX + rn.getRule().getName());
boolean checked = goodRuleChecked == null ? false : "true".equals(goodRuleChecked);
if ( checked ) {
checkingModel.addCheckingPath( path );
ruleset.addRule( rn.getRule() );
hadCheckedRule = true;
}
}
if ( hadCheckedRule ) {
selectedRules.addRuleSet( ruleset );
}
}
}
protected void loadTree() {
treeModel = new DefaultTreeModel( root );
checkingModel = new DefaultTreeCheckingModel( treeModel );
selectedRules = new RuleSets();
@@ -158,7 +200,7 @@ public class SelectedRules {
// selected rules to pass to PMD.
for ( int i = 0; i < root.getChildCount(); i++ ) {
DefaultMutableTreeNode ruleSetNode = ( DefaultMutableTreeNode ) root.getChildAt( i );
RuleSet ruleset = new RuleSet();//( ( RuleSetNode ) ruleSetNode.getUserObject() ).getRuleSet();
RuleSet ruleset = new RuleSet();
boolean hadCheckedRule = false;
for ( int j = 0; j < ruleSetNode.getChildCount(); j++ ) {
DefaultMutableTreeNode ruleNode = ( DefaultMutableTreeNode ) ruleSetNode.getChildAt( j );
@@ -177,6 +219,10 @@ public class SelectedRules {
}
}
public TreeModel getTreeModel() {
return treeModel;
}
public TreeCheckingModel getCheckingModel() {
return checkingModel;
}
@@ -185,28 +231,15 @@ public class SelectedRules {
public void save( TreeCheckingModel tcm ) {
checkingModel = tcm;
root = ( DefaultMutableTreeNode ) checkingModel.getTreeModel().getRoot();
selectedRules = new RuleSets();
// need to go through all the tree nodes to turn off those that may have
// been on and to turn on those that may have been off. The tree is only
// 2 levels deep, so no need for recursion.
for ( int i = 0; i < root.getChildCount(); i++ ) {
DefaultMutableTreeNode ruleSetNode = ( DefaultMutableTreeNode ) root.getChildAt( i );
RuleSet ruleset = ( ( RuleSetNode ) ruleSetNode.getUserObject() ).getRuleSet();
boolean hadCheckedRule = false;
for ( int j = 0; j < ruleSetNode.getChildCount(); j++ ) {
DefaultMutableTreeNode ruleNode = ( DefaultMutableTreeNode ) ruleSetNode.getChildAt( j );
TreePath path = new TreePath( ruleNode.getPath() );
boolean checked = checkingModel.isPathChecked( path );
RuleNode rn = ( RuleNode ) ruleNode.getUserObject();
jEdit.setBooleanProperty( PMDJEditPlugin.OPTION_RULES_PREFIX + rn.getRule().getName(), checked );
if ( checked ) {
ruleset.addRule( rn.getRule() );
hadCheckedRule = true;
}
}
if ( hadCheckedRule ) {
selectedRules.addRuleSet( ruleset );
}
}
}