Dependency Graph

Online documentation:

Dependency Matrix

Online documentation:

Visualizing Code Metrics through Treemaping

With the Online documentation, understand how Treemaping can help you see patterns in your code base, that would be hard to spot with other ways.

Abstractness versus Instability Diagram

The Abstractness versus Instability Diagram helps to detect which projects are potentially painful to maintain (i.e concrete and stable) and which projects are potentially useless (i.e abstract and instable).

Online documentation:

For beginners: Where to start

Code queries and rules results are truncated to list a maximum of 100 code elements in this report

Does this report gets too large?

The list contains only code elements refactored or added since the baseline for comparison.

The setting Recent Violations Only is enabled

Why should I enable the setting Recent Violations Only ?

Quick Tips

Main
Main \ Rules
Main \ Rules \ Code Quality
Main \ Rules \ Object Oriented Design
Main \ Rules \ Design
Main \ Rules \ Architecture and Layering
Main \ Rules \ Best Practices
Main \ Rules \ Dead Code
Main \ Rules \ Visibility
Main \ Rules \ Purity - Immutability - Side-Effects
Main \ Rules \ Naming Conventions
Main \ Rules \ Source Files Organization
Main \ Group of Queries \ Object Oriented Design
Main \ Group of Queries \ API Breaking Changes
Main \ Group of Queries \ Code Diff Summary
Main \ Group of Queries \ Dead Code
Main \ Metrics \ Application Statistics
Main \ Metrics \ Projects Metrics
Main \ Metrics \ Packages Metrics
Main \ Metrics \ Types Metrics
Main \ Projects Dependencies
Main \ Packages Dependencies
Main \ Types Dependencies
Main \ Build Order
Main \ Analysis Log
Main \ Trend Charts
jarchitect report summary application nameWicket6report build date11/17/2013 22:01:48analysis duration00:55jarchitect version 4.0.0.8041baseline for comparison Not Defined. To define a Baseline for Comparison, please read this online documentation. code coverage data Not Defined. To import Code Coverage Data, please read this online documentation.
Get started.Quick tips.Back to JArchitect. The present HTML report is a summary of data gathered by the analysis.
It is recommended to use the JArchitect interactive UI capabilities
to make the most of JArchitect by mastering all aspects of your code.

Diagrams

Java Projects Dependency Graph
Dependency Graph
View as ?fullscaled
Java Projects Dependency Matrix
Dependency Matrix
View as ?fullscaled
Treemap View
Treemap Metric View
View as ?fullscaled
Abstractness versus Instability
Abstractness vs. Instability
View as ?fullscaled

Application Metrics

Note: Further Application Statistics are available.
# Lines of Code
27 481      
0 (NotMyCode)
# Types
1 190      
1   Projects      
99   Packages      
7 935   Methods      
2 363   Fields      
774   Source Files      
Comment
64.88%      
50 759   Lines of Comment      
Method Complexity
66   Max      
2.24   Average      
Code Coverage by TestsN/A because no coverage data specified
Third-Party Usage
5   Projects used      
68   Packages used      
437   Types used      
1 292   Methods used      
47   Fields used      

Rules summary

32481This section lists all Rules violated, and Rules or Queries with Error
  • Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 1
  • Number of Rules violated: 48

Summary of Rules or Queries with Error (syntax error, exception thrown, time-out)

NameGroup
error   Avoid methods with name too longNaming Conventions

Summary of Rules violated

graphHelp Rules can be checked live at
development-time, from within
JArchitect. Online documentation.
graphHelp JArchitect rules report too many flaws on
existing code base? Use the option
Recent Violations Only!
warningCritical Some Critical Rules are violated. Critical Rules
can be used to break the build process if
violated. Online documentation.
Name # Matches Elements Group
warningCritical   Types too big - critical
3 typesCode Quality
warningCritical   Methods too complex - critical
3 methodsCode Quality
warning   Quick summary of methods to refactor
287 methodsCode Quality
warning   Methods too big
70 methodsCode Quality
warning   Methods too complex
75 methodsCode Quality
warning   Methods potentially poorly commented
59 methodsCode Quality
warning   Methods with too many parameters
26 methodsCode Quality
warning   Methods with too many local variables
12 methodsCode Quality
warning   Methods with too many overloads
124 methodsCode Quality
warning   Types with too many methods
45 typesCode Quality
warning   Types with too many fields
7 typesCode Quality
warning   Types with poor cohesion
22 typesCode Quality
warning   Base class should not use derivatives
10 typesObject Oriented Design
warning   Class shouldn't be too deep in inheritance tree
168 typesObject Oriented Design
warning   Class with no descendant should be final if possible
728 typesObject Oriented Design
warning   Avoid the Singleton pattern
8 typesObject Oriented Design
warning   Don't assign static fields from instance methods
1 fieldsObject Oriented Design
warning   Avoid empty interfaces
4 typesObject Oriented Design
warning   Avoid packages with few types
27 packagesDesign
warning   Nested types should not be visible
45 typesDesign
warning   Instances size shouldn't be too big
26 typesDesign
warning   Don't use obsolete types, methods or fields
5 methodsDesign
warning   Avoid packages mutually dependent
96 packagesArchitecture and Layering
warning   Avoid packages dependency cycles
1 packagesArchitecture and Layering
warning   Projects with poor cohesion (RelationalCohesion)
1 projectsArchitecture and Layering
warningCritical   Prefer primitive types to boxed primitives
174 methodsBest Practices
warningCritical   Always override hashcode when you override equals
1 typesBest Practices
warningCritical   Always override toString
911 typesBest Practices
warningCritical   Prefer interfaces to abstract classes
114 typesBest Practices
warningCritical   Use interfaces only to define types
4 typesBest Practices
warningCritical   Avoid using raw types
22 methodsBest Practices
warningCritical   Do not raise generic exception
2 methodsBest Practices
warning   Potentially dead Types
2 typesDead Code
warning   Potentially dead Methods
471 methodsDead Code
warning   Potentially dead Fields
575 fieldsDead Code
warning   Methods that could have a lower visibility
5781 methodsVisibility
warning   Fields that could have a lower visibility
193 fieldsVisibility
warning   Fields should be declared as private
33 fieldsVisibility
warning   Constructors of abstract classes should be declared as protected or private
107 typesVisibility
warning   Fields should be marked as ReadOnly when possible
68 fieldsPurity - Immutability - Side-Effects
warning   Avoid static fields with a mutable field type
52 fieldsPurity - Immutability - Side-Effects
warning   A field must not be assigned from outside its parent hierarchy types
10 fieldsPurity - Immutability - Side-Effects
warning   Instance fields should begin with a lower character
3 fieldsNaming Conventions
warning   Methods name should begin with an lower character
48 methodsNaming Conventions
warning   Avoid types with name too long
125 typesNaming Conventions
warning   Avoid fields with name too long
16 fieldsNaming Conventions
warning   Avoid having different types with same name
3 typesNaming Conventions
warning   Avoid defining multiple types in a source file
58 typesSource Files Organization

Application Statistics

Stat # Occurences Avg StdDev Max
Properties on interfaces 157 interfaces 000 properties on org.apache.wicket.ajax.AjaxRequestTarget$IJavaScriptResponse
Methods on interfaces 157 interfaces 3.484.5739 methods on org.apache.wicket.settings.IResourceSettings
Arguments on methods on interfaces 547 methods 0.690.887 arguments on org.apache.wicket.core.util.resource.locator.IResourceStreamLocator.locate(Class,String,String,String,Locale,String,boolean)
Public properties on classes 1,011 Classes 000 public properties on org.apache.wicket.ajax.AbstractAjaxResponse$1
Public methods on classes 1,011 classes 6.099.84153 public methods on org.apache.wicket.Component
Arguments on public methods on classes 6,157 methods 0.921.028 arguments on org.apache.wicket.resource.TextTemplateResourceReference.TextTemplateResourceReference(Class,String,String,String,IModel,Locale,String,String)
BC instructions in non-abstract methods 8,341 methods 14.4525.88479 BC instructions in org.apache.wicket.markup.MergedMarkup.merge(IMarkupFragment,IMarkupFragment,int)
Cyclomatic complexity on non abstract Methods 8,341 Methods 1.832.37 CC = 54 for org.apache.wicket.markup.MergedMarkup.merge(IMarkupFragment,IMarkupFragment,int)

Projects Metrics

If you wish to define thresholds on projects' Code Metrics, consider writing some Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.

Types Metrics : Code Quality

For a particular Code Metric defined for types, values in red represent the 15% highest values.
If you wish to define thresholds on types' Code Metrics, consider writing some Rule.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.

Types Metrics : Code Members and Inheritance

Type Name # Instance Methods Nb Static Methods Nb Properties # Fields# Children ClassesDepth Of Inheritance Tree Type Package

Types Metrics : Lack Of Cohesion Of Methods and Association Between Classes

1120
Code Quality  

warningCritical    Critical Rule warning: Types too big - critical
// <Name>Types too big - critical</Name>
warnif count > 0 from t in JustMyCode.Types where 
   
t.NbLinesOfCode > 500 ||
   
t.NbBCInstructions > 3000
   
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode, t.NbBCInstructions,
                
t.Methods, t.Fields }

// Types where NbLinesOfCode > 500 are extremely complex 
// and should be split in a smaller group of types. 
// See the definition of the NbLinesOfCode metric here 
// http://www.jarchitect.com/Metrics.aspx#NbLinesOfCode

// In average, a line of code is compiled to around
// 6 BC instructions. This is why the code metric
// NbBCInstructions is used here, in case the 
// code metric NbLinesOfCode is un-available because
// of missing code source files.
// See the definition of the NbBCInstructions metric here 
// http://www.jarchitect.com/Metrics.aspx#NbBCInstructions

3 types matched

types# lines of code (LOC)# ByteCode instructionsMethodsFieldsFull Name
Component8663 866197 methods59 fieldsorg.apache.wicket.Component
BaseWicketTester5392 673122 methods22 fieldsorg.apache.wicket.util.tester.BaseWicketTester
MarkupContainer5202 11761 methods3 fieldsorg.apache.wicket.MarkupContainer

Statistics

Stat   # lines of code (LOC)   # ByteCode instructions   Methods   Fields
Sum:1 9258 65600
Average:641.672 88500
Minimum:5202 11700
Maximum:8663 86600
Standard deviation:158.82729.6400
Variance:25 222532 37600
warningCritical    Critical Rule warning: Methods too complex - critical
// <Name>Methods too complex - critical</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.BCCyclomaticComplexity > 40 && 
  
m.BCNestingDepth > 5
  
orderby m.BCCyclomaticComplexity descending,
          
m.BCNestingDepth descending
select new { m, m.BCCyclomaticComplexity, m.BCNestingDepth }

// Methods with BCCyclomaticComplexity > 40 and BCNestingDepth  > 4
// are really too complex and should be split 
// in smaller methods, or even types.
// See the definition of the BCCyclomaticComplexity metric here 
// http://www.jarchitect.com/Metrics.aspx#ILCC
// See the definition of the BCNestingDepth metric here 
// http://www.jarchitect.com/Metrics.aspx#BCNestingDepth

3 methods matched

methodsByteCode Cyclomatic Complexity (BCCC)ByteCode Nesting DepthFull Name
merge(IMarkupFragment,IMarkupFragment,int)5432org.apache.wicket.markup.MergedMarkup.merge(IMarkupFragment ,IMarkupFragment,int)
stripCommentsAndWhitespace(String)4630org.apache.wicket.core.util.string.JavaScriptStripper .stripCommentsAndWhitespace(String)
parse(XMLTokener,boolean,JSONArray)4619org.apache.wicket.ajax.json.JSONML.parse(XMLTokener,boolean,JSONArray)

Statistics

Stat   ByteCode Cyclomatic Complexity (BCCC)   ByteCode Nesting Depth
Sum:14681
Average:48.6727
Minimum:4619
Maximum:5432
Standard deviation:3.775.72
Variance:14.2232.67
warningCritical    Rule warning: Quick summary of methods to refactor
// <Name>Quick summary of methods to refactor</Name>
warnif count > 0 from m in JustMyCode.Methods where 
                                    
// Code Metrics' definitions
  m.NbLinesOfCode > 30 ||           // http://www.jarchitect.com/Metrics.aspx#NbLinesOfCode
  m.NbBCInstructions > 200 ||       // http://www.jarchitect.com/Metrics.aspx#NbBCInstructions
  m.CyclomaticComplexity > 20 ||    // http://www.jarchitect.com/Metrics.aspx#CC
  m.BCCyclomaticComplexity > 50 ||  // http://www.jarchitect.com/Metrics.aspx#ILCC
  m.BCNestingDepth > 5 ||           // http://www.jarchitect.com/Metrics.aspx#BCNestingDepth
  m.NbParameters > 5 ||             // http://www.jarchitect.com/Metrics.aspx#NbParameters
  m.NbVariables > 8 ||              // http://www.jarchitect.com/Metrics.aspx#NbVariables
  m.NbOverloads > 6                 // http://www.jarchitect.com/Metrics.aspx#NbOverloads

select new { m, m.NbLinesOfCode, m.NbBCInstructions, m.CyclomaticComplexity, 
             
m.BCCyclomaticComplexity, m.BCNestingDepth, 
             
m.NbParameters, m.NbVariables, m.NbOverloads } 

287 methods matched

methods# lines of code (LOC)# ByteCode instructionsCyclomatic Complexity (CC)ByteCode Cyclomatic Complexity (BCCC)ByteCode Nesting Depth# Parameters# Variables# OverloadsFull Name
renderComponentTag(ComponentTag)2013416179151org.apache.wicket.Component.renderComponentTag(ComponentTag)
getString(String,Component,IModel,Locale,String,String)191031182635org.apache.wicket.Localizer.getString(String,Component,IModel,Locale ,String,String)
getStringIgnoreSettings(String,Component,IModel,Locale,String,String)40218333212662org.apache.wicket.Localizer.getStringIgnoreSettings(String,Component ,IModel,Locale,String,String)
renderNext(MarkupStream)4317713114161org.apache.wicket.MarkupContainer.renderNext(MarkupStream)
createAndAddComponentsForWicketTags()188012127041org.apache.wicket.MarkupContainer.createAndAddComponentsForWicketTags( )
checkRendering(MarkupContainer)4110911102191org.apache.wicket.Page.checkRendering(MarkupContainer)
set()1896996081org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData.set()
SharedResources$AutoResourceReference(Class,String,Locale,String ,String,IResource)311N/A10602org.apache.wicket.SharedResources$AutoResourceReference .SharedResources$AutoResourceReference(Class,String,Locale,String ,String,IResource)
SharedResources$AutoResourceReference(Class,String,Locale,String ,String,IResource,SharedResources$1)19N/A10702org.apache.wicket.SharedResources$AutoResourceReference .SharedResources$AutoResourceReference(Class,String,Locale,String ,String,IResource,SharedResources$1)
add(Class,String,Locale,String,String,IResource)217110613org.apache.wicket.SharedResources.add(Class,String,Locale,String ,String,IResource)
get(Class,String,Locale,String,String,boolean)111110601org.apache.wicket.SharedResources.get(Class,String,Locale,String ,String,boolean)
resolveClass(String)3510913140121org.apache.wicket.application.AbstractClassResolver.resolveClass (String)
match()60422513920071org.apache.wicket.application.WildcardMatcherHelper$Matcher.match()
scanLiteralPrefix()381997001org.apache.wicket.application.WildcardMatcherHelper$Matcher .scanLiteralPrefix()
lockPage(int)3918018186191org.apache.wicket.page.PageAccessSynchronizer.lockPage(int)
renderAjaxAttributes(Component,AjaxRequestAttributes)79349242312342org.apache.wicket.ajax.AbstractDefaultAjaxBehavior .renderAjaxAttributes(Component,AjaxRequestAttributes)
respond(IRequestCycle)21974501101org.apache.wicket.ajax.AjaxRequestHandler.respond(IRequestCycle)
writeComponent(Response,String,Component,String)361351170441org.apache.wicket.ajax.XmlAjaxResponse.writeComponent(Response,String ,Component,String)
rowToJSONArray(JSONTokener)156615106131org.apache.wicket.ajax.json.CDL.rowToJSONArray(JSONTokener)
rowToString(JSONArray)1995131310171org.apache.wicket.ajax.json.CDL.rowToString(JSONArray)
toString(JSONObject)3015113129131org.apache.wicket.ajax.json.HTTP.toString(JSONObject)
put(Object)271101014org.apache.wicket.ajax.json.JSONArray.put(Object)
put(boolean)2102201014org.apache.wicket.ajax.json.JSONArray.put(boolean)
put(Collection)291101014org.apache.wicket.ajax.json.JSONArray.put(Collection)
put(double)4131101114org.apache.wicket.ajax.json.JSONArray.put(double)
put(int)291101014org.apache.wicket.ajax.json.JSONArray.put(int)
put(long)291101014org.apache.wicket.ajax.json.JSONArray.put(long)
put(Map)291101014org.apache.wicket.ajax.json.JSONArray.put(Map)
put(int,boolean)2112202014org.apache.wicket.ajax.json.JSONArray.put(int,boolean)
put(int,Object)10445402014org.apache.wicket.ajax.json.JSONArray.put(int,Object)
put(int,Collection)2101102014org.apache.wicket.ajax.json.JSONArray.put(int,Collection)
put(int,double)2101102014org.apache.wicket.ajax.json.JSONArray.put(int,double)
put(int,int)2101102014org.apache.wicket.ajax.json.JSONArray.put(int,int)
put(int,long)2101102014org.apache.wicket.ajax.json.JSONArray.put(int,long)
put(int,Map)2101102014org.apache.wicket.ajax.json.JSONArray.put(int,Map)
parse(XMLTokener,boolean,JSONArray)117357664619381org.apache.wicket.ajax.json.JSONML.parse(XMLTokener,boolean,JSONArray)
toString(JSONArray)55157101051102org.apache.wicket.ajax.json.JSONML.toString(JSONArray)
toString(JSONObject)5416913124192org.apache.wicket.ajax.json.JSONML.toString(JSONObject)
JSONObject()38N/A10009org.apache.wicket.ajax.json.JSONObject.JSONObject()
put(String,Object)824430207org.apache.wicket.ajax.json.JSONObject.put(String,Object)
put(String,boolean)211220207org.apache.wicket.ajax.json.JSONObject.put(String,boolean)
put(String,long)210110207org.apache.wicket.ajax.json.JSONObject.put(String,long)
wrap(Object)17116313015131org.apache.wicket.ajax.json.JSONObject.wrap(Object)
valueToString(Object)219322133121org.apache.wicket.ajax.json.JSONObject.valueToString(Object)
testValidity(Object)8351086101org.apache.wicket.ajax.json.JSONObject.testValidity(Object)
JSONObject(Map)835441139org.apache.wicket.ajax.json.JSONObject.JSONObject(Map)
writeValue(Writer,Object,int,int)3312314131421org.apache.wicket.ajax.json.JSONObject.writeValue(Writer,Object,int ,int)
JSONObject(JSONObject,String[])424330229org.apache.wicket.ajax.json.JSONObject.JSONObject(JSONObject,String[])
JSONObject(JSONTokener)346819112129org.apache.wicket.ajax.json.JSONObject.JSONObject(JSONTokener)
JSONObject(Object)26110109org.apache.wicket.ajax.json.JSONObject.JSONObject(Object)
populateMap(Object)2612515167191org.apache.wicket.ajax.json.JSONObject.populateMap(Object)
JSONObject(Object,String[])629330249org.apache.wicket.ajax.json.JSONObject.JSONObject(Object,String[])
JSONObject(String)17110109org.apache.wicket.ajax.json.JSONObject.JSONObject(String)
JSONObject(String,Locale)1772550299org.apache.wicket.ajax.json.JSONObject.JSONObject(String,Locale)
put(String,int)210110207org.apache.wicket.ajax.json.JSONObject.put(String,int)
put(String,double)210110207org.apache.wicket.ajax.json.JSONObject.put(String,double)
put(String,Collection)210110207org.apache.wicket.ajax.json.JSONObject.put(String,Collection)
put(String,Map)210110207org.apache.wicket.ajax.json.JSONObject.put(String,Map)
quote(String,Writer)4611919186252org.apache.wicket.ajax.json.JSONObject.quote(String,Writer)
stringToValue(String)239524199151org.apache.wicket.ajax.json.JSONObject.stringToValue(String)
write(Writer,int,int)3410912100372org.apache.wicket.ajax.json.JSONObject.write(Writer,int,int)
JSONObject()16N/A10009org.apache.wicket.ajax.json.JSONObject.JSONObject()
nextString(char)437320160121org.apache.wicket.ajax.json.JSONTokener.nextString(char)
asArray(Map)29129101011161org.apache.wicket.ajax.json.JsonUtils.asArray(Map)
stringToValue(String)2910926204141org.apache.wicket.ajax.json.XML.stringToValue(String)
parse(XMLTokener,JSONObject,String)106308553510381org.apache.wicket.ajax.json.XML.parse(XMLTokener,JSONObject,String)
toString(Object,String)75286242272172org.apache.wicket.ajax.json.XML.toString(Object,String)
nextToken()579441261031org.apache.wicket.ajax.json.XMLTokener.nextToken()
skipPast(String)31791391181org.apache.wicket.ajax.json.XMLTokener.skipPast(String)
nextMeta()455535232021org.apache.wicket.ajax.json.XMLTokener.nextMeta()
newPagingNavigationLink(String,IPageable,long)17110601org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigation.newPagingNavigationLink(String,IPageable,long)
mapHandler(IRequestHandler)40181221431161org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper .mapHandler(IRequestHandler)
mapRequest(Request)25130121051111org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper .mapRequest(Request)
mapHandler(IRequestHandler)47170171471141org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper .mapHandler(IRequestHandler)
decryptUrl(Request,Url)31121121102121org.apache.wicket.core.request.mapper.CryptoMapper.decryptUrl(Request ,Url)
extractPageParameters(Request,Url)251308832171org.apache.wicket.core.request.mapper.MountedMapper .extractPageParameters(Request,Url)
getMatchedSegmentSizes(Url)22126860191org.apache.wicket.core.request.mapper.MountedMapper .getMatchedSegmentSizes(Url)
mapHandler(IRequestHandler)17816631111org.apache.wicket.core.request.mapper.MountedMapper.mapHandler (IRequestHandler)
buildUrl(AbstractBookmarkableMapper$UrlInfo)211226601101org.apache.wicket.core.request.mapper.MountedMapper.buildUrl (AbstractBookmarkableMapper$UrlInfo)
mapHandler(IRequestHandler)25996501111org.apache.wicket.core.request.mapper.PageInstanceMapper.mapHandler (IRequestHandler)
mapHandler(IRequestHandler)1692860191org.apache.wicket.core.request.mapper.ResourceMapper.mapHandler (IRequestHandler)
respond(IRequestCycle)2511217157181org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler .respond(IRequestCycle)
PageAndComponentProvider(IRequestablePage,IRequestableComponent ,PageParameters)516220308org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(IRequestablePage,IRequestableComponent ,PageParameters)
PageAndComponentProvider(IRequestablePage,String)27110208org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(IRequestablePage,String)
PageAndComponentProvider(IRequestablePage,IRequestableComponent)311110208org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(IRequestablePage,IRequestableComponent)
PageAndComponentProvider(Class,PageParameters,String)28110308org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(Class,PageParameters,String)
PageAndComponentProvider(Class,String)37N/A10208org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(Class,String)
PageAndComponentProvider(int,Class,Integer,String)210110408org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(int,Class,Integer,String)
PageAndComponentProvider(Integer,Class,PageParameters,Integer,String)210110508org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(Integer,Class,PageParameters,Integer,String)
PageAndComponentProvider(int,Integer,String)29110308org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(int,Integer,String)
findSetter(Method,Class)2111211932101org.apache.wicket.core.util.lang.PropertyResolver$MethodGetAndSet .findSetter(Method,Class)
getObjectAndGetSetter(String,Object,int,Class)46145161444102org.apache.wicket.core.util.lang.PropertyResolver .getObjectAndGetSetter(String,Object,int,Class)
getGetAndSetter(String,Class)68309231942151org.apache.wicket.core.util.lang.PropertyResolver.getGetAndSetter (String,Class)
internalCheck(Object)100348352851341org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .internalCheck(Object)
checkFields(Object,ObjectStreamClass)31142211552131org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .checkFields(Object,ObjectStreamClass)
locate(Class,String,String,String,Locale,String,boolean)00110702org.apache.wicket.core.util.resource.locator.IResourceStreamLocator .locate(Class,String,String,String,Locale,String,boolean)
newResourceNameIterator(String,Locale,String,String,String,boolean)00110601org.apache.wicket.core.util.resource.locator.IResourceStreamLocator .newResourceNameIterator(String,Locale,String,String,String,boolean)
ResourceNameIterator(String,String,String,Locale,Iterable,boolean)1156563621org.apache.wicket.core.util.resource.locator.ResourceNameIterator .ResourceNameIterator(String,String,String,Locale,Iterable,boolean)
hasNext()228313107001org.apache.wicket.core.util.resource.locator.ResourceNameIterator .hasNext()
locate(Class,String,String,String,Locale,String,boolean)1454651742org.apache.wicket.core.util.resource.locator.ResourceStreamLocator .locate(Class,String,String,String,Locale,String,boolean)

Statistics

Stat   # lines of code (LOC)   # ByteCode instructions   Cyclomatic Complexity (CC)   ByteCode Cyclomatic Complexity (BCCC)   ByteCode Nesting Depth   # Parameters   # Variables   # Overloads
Sum:4 91121 2922 2152 0957156261 1721 433
Average:17.1174.1911.67.32.492.184.084.99
Minimum:00110001
Maximum:11747966543283414
Standard deviation:20.3785.1811.38.444.321.785.84.47
Variance:415.077 255127.6471.3218.683.1733.6720.01
warningCritical    Rule warning: Methods too big
// <Name>Methods too big</Name>
warnif count > 0 from m in JustMyCode.Methods where 
   
m.NbLinesOfCode > 30 ||
   
m.NbBCInstructions > 200
   
orderby m.NbLinesOfCode descending,
           
m.NbBCInstructions descending
select new { m, m.NbLinesOfCode, m.NbBCInstructions }

// Methods where NbLinesOfCode > 30 or NbBCInstructions > 200
// are extremely complex and should be split in smaller methods.
// See the definition of the NbLinesOfCode metric here 
// http://www.jarchitect.com/Metrics.aspx#NbLinesOfCode

70 methods matched

methods# lines of code (LOC)# ByteCode instructionsFull Name
parse(XMLTokener,boolean,JSONArray)117357org.apache.wicket.ajax.json.JSONML.parse(XMLTokener,boolean,JSONArray)
merge(IMarkupFragment,IMarkupFragment,int)114479org.apache.wicket.markup.MergedMarkup.merge(IMarkupFragment ,IMarkupFragment,int)
parse(XMLTokener,JSONObject,String)106308org.apache.wicket.ajax.json.XML.parse(XMLTokener,JSONObject,String)
internalCheck(Object)100348org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .internalCheck(Object)
stripCommentsAndWhitespace(String)80280org.apache.wicket.core.util.string.JavaScriptStripper .stripCommentsAndWhitespace(String)
renderAjaxAttributes(Component,AjaxRequestAttributes)79349org.apache.wicket.ajax.AbstractDefaultAjaxBehavior .renderAjaxAttributes(Component,AjaxRequestAttributes)
toString(Object,String)75286org.apache.wicket.ajax.json.XML.toString(Object,String)
getGetAndSetter(String,Class)68309org.apache.wicket.core.util.lang.PropertyResolver.getGetAndSetter (String,Class)
next()63326org.apache.wicket.markup.parser.XmlPullParser.next()
match()60422org.apache.wicket.application.WildcardMatcherHelper$Matcher.match()
getTimeZone()57264org.apache.wicket.protocol.http.ClientProperties.getTimeZone()
isValidAuthority(String)57200org.apache.wicket.validation.validator.UrlValidator.isValidAuthority (String)
nextToken()5794org.apache.wicket.ajax.json.XMLTokener.nextToken()
toString(JSONArray)55157org.apache.wicket.ajax.json.JSONML.toString(JSONArray)
toString(JSONObject)54169org.apache.wicket.ajax.json.JSONML.toString(JSONObject)
specialTagHandling(String,int,int)51248org.apache.wicket.markup.parser.XmlPullParser.specialTagHandling (String,int,int)
clickLink(String,boolean)51222org.apache.wicket.util.tester.BaseWicketTester.clickLink(String ,boolean)
newRequestWrapper(HttpServletRequest)47273org.apache.wicket.protocol.http.servlet .XForwardedRequestWrapperFactory.newRequestWrapper(HttpServletRequest)
buildRequest()47239org.apache.wicket.protocol.http.mock.MockHttpServletRequest .buildRequest()
mapHandler(IRequestHandler)47170org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper .mapHandler(IRequestHandler)
appendOptionHtml(AppendingStringBuffer,Object,int,String)46226org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .appendOptionHtml(AppendingStringBuffer,Object,int,String)
getObjectAndGetSetter(String,Object,int,Class)46145org.apache.wicket.core.util.lang.PropertyResolver .getObjectAndGetSetter(String,Object,int,Class)
quote(String,Writer)46119org.apache.wicket.ajax.json.JSONObject.quote(String,Writer)
isDocumentValid(String)45101org.apache.wicket.protocol.http.documentvalidation .HtmlDocumentValidator.isDocumentValid(String)
nextMeta()4555org.apache.wicket.ajax.json.XMLTokener.nextMeta()
processRequest(MockHttpServletRequest,IRequestHandler,boolean)44220org.apache.wicket.util.tester.BaseWicketTester.processRequest (MockHttpServletRequest,IRequestHandler,boolean)
MultipartServletWebRequestImpl(HttpServletRequest,String,Bytes,String ,FileItemFactory)44153org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl .MultipartServletWebRequestImpl(HttpServletRequest,String,Bytes,String ,FileItemFactory)
equals(Object)44117org.apache.wicket.request.resource.PackageResource.equals(Object)
renderNext(MarkupStream)43177org.apache.wicket.MarkupContainer.renderNext(MarkupStream)
nextString(char)4373org.apache.wicket.ajax.json.JSONTokener.nextString(char)
createRequestData(IRequestLogger$RequestData ,IRequestLogger$SessionData)42193org.apache.wicket.protocol.http.RequestLogger.createRequestData (IRequestLogger$RequestData,IRequestLogger$SessionData)
appendOptionHtml(AppendingStringBuffer,Object,int,String)41278org.apache.wicket.markup.html.form.RadioChoice.appendOptionHtml (AppendingStringBuffer,Object,int,String)
checkRendering(MarkupContainer)41109org.apache.wicket.Page.checkRendering(MarkupContainer)
getStringIgnoreSettings(String,Component,IModel,Locale,String,String)40218org.apache.wicket.Localizer.getStringIgnoreSettings(String,Component ,IModel,Locale,String,String)
parseMarkup()40197org.apache.wicket.markup.AbstractMarkupParser.parseMarkup()
mapHandler(IRequestHandler)40181org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper .mapHandler(IRequestHandler)
createTagsByAttribute(String,String,String,boolean)40141org.apache.wicket.util.tester.TagTester.createTagsByAttribute(String ,String,String,boolean)
lockPage(int)39180org.apache.wicket.page.PageAccessSynchronizer.lockPage(int)
setResponseHeaders(AbstractResource$ResourceResponse ,IResource$Attributes)39148org.apache.wicket.request.resource.AbstractResource.setResponseHeaders (AbstractResource$ResourceResponse,IResource$Attributes)
respond(RequestCycle)37240org.apache.wicket.request.handler.render.WebPageRenderer.respond (RequestCycle)
onComponentTag(ComponentTag)37204org.apache.wicket.markup.parser.filter.InlineEnclosureHandler .onComponentTag(ComponentTag)
newResourceResponse(IResource$Attributes)37105org.apache.wicket.request.resource.ResourceStreamResource .newResourceResponse(IResource$Attributes)
validateTag(Iterator,HtmlDocumentParser)36232org.apache.wicket.protocol.http.documentvalidation .HtmlDocumentValidator.validateTag(Iterator,HtmlDocumentParser)
processDirective()36199org.apache.wicket.protocol.http.documentvalidation.HtmlDocumentParser .processDirective()
onComponentTag(ComponentTag)36196org.apache.wicket.markup.html.form.Check.onComponentTag(ComponentTag)
processRequest(ServletRequest,ServletResponse,FilterChain)36162org.apache.wicket.protocol.http.WicketFilter.processRequest (ServletRequest,ServletResponse,FilterChain)
determineCardId(String)36159org.apache.wicket.validation.validator.CreditCardValidator .determineCardId(String)
getString(Component)36154org.apache.wicket.model.StringResourceModel.getString(Component)
writeComponent(Response,String,Component,String)36135org.apache.wicket.ajax.XmlAjaxResponse.writeComponent(Response,String ,Component,String)
createTagByAttribute(String,String,String)36128org.apache.wicket.util.tester.TagTester.createTagByAttribute(String ,String,String)
isNonClosedTag(String)36109org.apache.wicket.protocol.http.documentvalidation .HtmlDocumentValidator.isNonClosedTag(String)
resolveClass(String)35109org.apache.wicket.application.AbstractClassResolver.resolveClass (String)
validatePage(String,Class,String,boolean)34145org.apache.wicket.util.tester.DiffUtil.validatePage(String,Class ,String,boolean)
AutoLinkResolver$PathInfo(String,MarkupContainer,MarkupStream)34125org.apache.wicket.markup.resolver.AutoLinkResolver$PathInfo .AutoLinkResolver$PathInfo(String,MarkupContainer,MarkupStream)
write(Writer,int,int)34109org.apache.wicket.ajax.json.JSONObject.write(Writer,int,int)
JSONObject(JSONTokener)3468org.apache.wicket.ajax.json.JSONObject.JSONObject(JSONTokener)
newAutoComponent(String,AutoLinkResolver$PathInfo)33161org.apache.wicket.markup.resolver .AutoLinkResolver$AnchorResolverDelegate.newAutoComponent(String ,AutoLinkResolver$PathInfo)
formatDate(StringBuilder,Calendar,boolean)33131org.apache.wicket.protocol.http.mock.MockHttpServletResponse .formatDate(StringBuilder,Calendar,boolean)
writeValue(Writer,Object,int,int)33123org.apache.wicket.ajax.json.JSONObject.writeValue(Writer,Object,int ,int)
setSrcAttribute(ComponentTag)32119org.apache.wicket.markup.html.image.resource.LocalizedImageResource .setSrcAttribute(ComponentTag)
BrowserInfoForm(String)31200org.apache.wicket.markup.html.pages.BrowserInfoForm.BrowserInfoForm (String)
getResourcePaths(String)31151org.apache.wicket.protocol.http.mock.MockServletContext .getResourcePaths(String)
checkFields(Object,ObjectStreamClass)31142org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .checkFields(Object,ObjectStreamClass)
decryptUrl(Request,Url)31121org.apache.wicket.core.request.mapper.CryptoMapper.decryptUrl(Request ,Url)
MarkupFragment(IMarkupFragment,int)31119org.apache.wicket.markup.MarkupFragment.MarkupFragment(IMarkupFragment ,int)
shapeCoordinates(Shape)31117org.apache.wicket.markup.html.link.ClientSideImageMap.shapeCoordinates (Shape)
init(boolean,FilterConfig)31112org.apache.wicket.protocol.http.WicketFilter.init(boolean,FilterConfig )
skipPast(String)3179org.apache.wicket.ajax.json.XMLTokener.skipPast(String)
UserAgent()8221org.apache.wicket.protocol.http.request.UserAgent.UserAgent()
OpenCloseTagExpander()1284org.apache.wicket.markup.parser.filter.OpenCloseTagExpander .OpenCloseTagExpander()

Statistics

Stat   # lines of code (LOC)   # ByteCode instructions
Sum:3 18713 190
Average:45.53188.43
Minimum:155
Maximum:117479
Standard deviation:20.3385.25
Variance:413.337 267
warningCritical    Rule warning: Methods too complex
// <Name>Methods too complex</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.CyclomaticComplexity > 20 ||
  
m.BCCyclomaticComplexity > 40 ||
  
m.BCNestingDepth > 5
  
orderby m.CyclomaticComplexity descending,
          
m.BCCyclomaticComplexity descending,
          
m.BCNestingDepth descending
select new { m, m.CyclomaticComplexity, 
                
m.BCCyclomaticComplexity,
                
m.BCNestingDepth  }

// Methods where CyclomaticComplexity > 20 
// or BCCyclomaticComplexity > 40
// or BCNestingDepth > 4
// are hard to understand and maintain
// and should be split in smaller methods.
// See the definition of the complexity metrics here:
// http://www.jarchitect.com/Metrics.aspx#CC
// http://www.jarchitect.com/Metrics.aspx#ILCC
// http://www.jarchitect.com/Metrics.aspx#BCNestingDepth

75 methods matched

methodsCyclomatic Complexity (CC)ByteCode Cyclomatic Complexity (BCCC)ByteCode Nesting DepthFull Name
parse(XMLTokener,boolean,JSONArray)664619org.apache.wicket.ajax.json.JSONML.parse(XMLTokener,boolean,JSONArray)
merge(IMarkupFragment,IMarkupFragment,int)605432org.apache.wicket.markup.MergedMarkup.merge(IMarkupFragment ,IMarkupFragment,int)
parse(XMLTokener,JSONObject,String)553510org.apache.wicket.ajax.json.XML.parse(XMLTokener,JSONObject,String)
match()513920org.apache.wicket.application.WildcardMatcherHelper$Matcher.match()
stripCommentsAndWhitespace(String)464630org.apache.wicket.core.util.string.JavaScriptStripper .stripCommentsAndWhitespace(String)
nextToken()41261org.apache.wicket.ajax.json.XMLTokener.nextToken()
equals(Object)372212org.apache.wicket.request.resource.PackageResource.equals(Object)
internalCheck(Object)35285org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .internalCheck(Object)
nextMeta()35232org.apache.wicket.ajax.json.XMLTokener.nextMeta()
isNonClosedTag(String)35180org.apache.wicket.protocol.http.documentvalidation .HtmlDocumentValidator.isNonClosedTag(String)
getStringIgnoreSettings(String,Component,IModel,Locale,String,String)333212org.apache.wicket.Localizer.getStringIgnoreSettings(String,Component ,IModel,Locale,String,String)
isValidAuthority(String)33237org.apache.wicket.validation.validator.UrlValidator.isValidAuthority (String)
wrap(Object)313015org.apache.wicket.ajax.json.JSONObject.wrap(Object)
respond(RequestCycle)302918org.apache.wicket.request.handler.render.WebPageRenderer.respond (RequestCycle)
next()30217org.apache.wicket.markup.parser.XmlPullParser.next()
stringToValue(String)26204org.apache.wicket.ajax.json.XML.stringToValue(String)
onComponentTag(ComponentTag)252111org.apache.wicket.markup.parser.filter.InlineEnclosureHandler .onComponentTag(ComponentTag)
renderAjaxAttributes(Component,AjaxRequestAttributes)24231org.apache.wicket.ajax.AbstractDefaultAjaxBehavior .renderAjaxAttributes(Component,AjaxRequestAttributes)
toString(Object,String)24227org.apache.wicket.ajax.json.XML.toString(Object,String)
stringToValue(String)24199org.apache.wicket.ajax.json.JSONObject.stringToValue(String)
specialTagHandling(String,int,int)24155org.apache.wicket.markup.parser.XmlPullParser.specialTagHandling (String,int,int)
createTagsByAttribute(String,String,String,boolean)232213org.apache.wicket.util.tester.TagTester.createTagsByAttribute(String ,String,String,boolean)
getGetAndSetter(String,Class)23194org.apache.wicket.core.util.lang.PropertyResolver.getGetAndSetter (String,Class)
processRequest(MockHttpServletRequest,IRequestHandler,boolean)22234org.apache.wicket.util.tester.BaseWicketTester.processRequest (MockHttpServletRequest,IRequestHandler,boolean)
mapHandler(IRequestHandler)22143org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper .mapHandler(IRequestHandler)
valueToString(Object)22133org.apache.wicket.ajax.json.JSONObject.valueToString(Object)
getTimeZone()21216org.apache.wicket.protocol.http.ClientProperties.getTimeZone()
createTagByAttribute(String,String,String)212012org.apache.wicket.util.tester.TagTester.createTagByAttribute(String ,String,String)
checkFields(Object,ObjectStreamClass)21155org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .checkFields(Object,ObjectStreamClass)
quote(String,Writer)19186org.apache.wicket.ajax.json.JSONObject.quote(String,Writer)
nextHeaderMarkup(MarkupStream)19169org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy .nextHeaderMarkup(MarkupStream)
parseMarkup()18199org.apache.wicket.markup.AbstractMarkupParser.parseMarkup()
lockPage(int)18186org.apache.wicket.page.PageAccessSynchronizer.lockPage(int)
equals(Object)18146org.apache.wicket.request.resource.PackageResource$CacheKey.equals (Object)
respond(IRequestCycle)17157org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler .respond(IRequestCycle)
mapHandler(IRequestHandler)17147org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper .mapHandler(IRequestHandler)
renderComponentTag(ComponentTag)16179org.apache.wicket.Component.renderComponentTag(ComponentTag)
newAutoComponent(String,AutoLinkResolver$PathInfo)16136org.apache.wicket.markup.resolver .AutoLinkResolver$AnchorResolverDelegate.newAutoComponent(String ,AutoLinkResolver$PathInfo)
onComponentTag(ComponentTag)16127org.apache.wicket.markup.parser.filter.HtmlHeaderSectionHandler .onComponentTag(ComponentTag)
populateMap(Object)15167org.apache.wicket.ajax.json.JSONObject.populateMap(Object)
getString(Component)15156org.apache.wicket.model.StringResourceModel.getString(Component)
onComponentTag(ComponentTag)15136org.apache.wicket.markup.parser.filter.WicketLinkTagHandler .onComponentTag(ComponentTag)
rowToJSONArray(JSONTokener)15106org.apache.wicket.ajax.json.CDL.rowToJSONArray(JSONTokener)
rowToString(JSONArray)131310org.apache.wicket.ajax.json.CDL.rowToString(JSONArray)
isSwitch(String)131210org.apache.wicket.validation.validator.CreditCardValidator.isSwitch (String)
toString(JSONObject)13129org.apache.wicket.ajax.json.HTTP.toString(JSONObject)
getMarkup()13116org.apache.wicket.markup.html.internal.HtmlHeaderContainer.getMarkup()
onComponentTag(ComponentTag)13116org.apache.wicket.markup.parser.filter.RelativePathPrefixHandler .onComponentTag(ComponentTag)
hasNext()13107org.apache.wicket.core.util.resource.locator.ResourceNameIterator .hasNext()
renderUrl(Url,IRequestHandler)12128org.apache.wicket.request.cycle.RequestCycle.renderUrl(Url ,IRequestHandler)
createAndAddComponentsForWicketTags()12127org.apache.wicket.MarkupContainer.createAndAddComponentsForWicketTags( )
onComponentTag(ComponentTag)12127org.apache.wicket.markup.html.link.ExternalLink.onComponentTag (ComponentTag)
find(String)12118org.apache.wicket.markup.Markup.find(String)
skipRawMarkup()11108org.apache.wicket.markup.MarkupStream.skipRawMarkup()
isMaestro(String)11108org.apache.wicket.validation.validator.CreditCardValidator.isMaestro (String)
isStopResourceSearch(Class)11106org.apache.wicket.resource.loader.ComponentStringResourceLoader .isStopResourceSearch(Class)
hasNext()1186org.apache.wicket.markup.MarkupIterator.hasNext()
postProcess(Markup)10108org.apache.wicket.markup.parser.filter.StyleAndScriptIdentifier .postProcess(Markup)
onComponentTag(ComponentTag)10107org.apache.wicket.markup.parser.filter.HeadForceTagIdHandler .onComponentTag(ComponentTag)
getInputAsArray()10106org.apache.wicket.markup.html.form.upload.MultiFileUploadField .getInputAsArray()
isDiscoverCard(String)1097org.apache.wicket.validation.validator.CreditCardValidator .isDiscoverCard(String)
find(String)1096org.apache.wicket.markup.MarkupFragment.find(String)
onComponentTag(ComponentTag)1096org.apache.wicket.markup.parser.filter.StyleAndScriptIdentifier .onComponentTag(ComponentTag)
testValidity(Object)1086org.apache.wicket.ajax.json.JSONObject.testValidity(Object)
findAndRenderChildWicketTags(MarkupStream,ComponentTag)9116org.apache.wicket.markup.resolver .WicketMessageResolver$MessageContainer.findAndRenderChildWicketTags (MarkupStream,ComponentTag)
getChildComponent(MarkupStream,MarkupContainer)9116org.apache.wicket.markup.html.internal.Enclosure.getChildComponent (MarkupStream,MarkupContainer)
isValidXmlChar(int)9108org.apache.wicket.response.filter.XmlCleaningResponseFilter .isValidXmlChar(int)
scanLiteralPrefix()997org.apache.wicket.application.WildcardMatcherHelper$Matcher .scanLiteralPrefix()
addCookie(Cookie)997org.apache.wicket.protocol.http.mock.MockHttpServletResponse.addCookie (Cookie)
set()996org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData.set()
removeMarkupWhereBaseMarkupIsNoLongerInTheCache()996org.apache.wicket.markup.MarkupCache .removeMarkupWhereBaseMarkupIsNoLongerInTheCache()
onComponentTag(ComponentTag)996org.apache.wicket.markup.parser.filter.HtmlProblemFinder .onComponentTag(ComponentTag)
getErrorMessage(Throwable)986org.apache.wicket.markup.html.pages.ExceptionErrorPage.getErrorMessage (Throwable)
appendAnchor(ComponentTag,CharSequence)N/A117org.apache.wicket.markup.html.link.Link.appendAnchor(ComponentTag ,CharSequence)
component(Component,IVisit)N/A86org.apache.wicket.markup.html.form.Form$FormModelUpdateVisitor .component(Component,IVisit)

Statistics

Stat   Cyclomatic Complexity (CC)   ByteCode Cyclomatic Complexity (BCCC)   ByteCode Nesting Depth
Sum:1 4951 272597
Average:20.4816.967.96
Minimum:980
Maximum:665432
Standard deviation:12.629.425.17
Variance:159.2688.6826.71
warningCritical    Rule warning: Methods potentially poorly commented
// <Name>Methods potentially poorly commented</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.PercentageComment < 20 && 
  
m.NbLinesOfCode > 20  
  
orderby m.PercentageComment ascending
select new { m, m.PercentageComment, m.NbLinesOfCode, m.NbLinesOfComment }

// Methods where %Comment < 20 and that have 
// at least 20 lines of code might need to be more commented.
// See the definition of the Comments metric here 
// http://www.jarchitect.com/Metrics.aspx#PercentageComment
// http://www.jarchitect.com/Metrics.aspx#NbLinesOfComment 

59 methods matched

methodsPercentage Comment# lines of code (LOC)# lines of commentFull Name
data_remove(int)0210org.apache.wicket.Component.data_remove(int)
data_insert(int,Object)0270org.apache.wicket.Component.data_insert(int,Object)
writeValue(Writer,Object,int,int)0330org.apache.wicket.ajax.json.JSONObject.writeValue(Writer,Object,int ,int)
quote(String,Writer)0460org.apache.wicket.ajax.json.JSONObject.quote(String,Writer)
getMatchedSegmentSizes(Url)0220org.apache.wicket.core.request.mapper.MountedMapper .getMatchedSegmentSizes(Url)
toString()0270org.apache.wicket.core.request.handler.logger.ListenerInterfaceLogData .toString()
findSetter(Method,Class)0210org.apache.wicket.core.util.lang.PropertyResolver$MethodGetAndSet .findSetter(Method,Class)
beforeRender(Component)0240org.apache.wicket.markup.html.border.BorderBehavior.beforeRender (Component)
shapeCoordinates(Shape)0310org.apache.wicket.markup.html.link.ClientSideImageMap.shapeCoordinates (Shape)
createRequestData(IRequestLogger$RequestData ,IRequestLogger$SessionData)0420org.apache.wicket.protocol.http.RequestLogger.createRequestData (IRequestLogger$RequestData,IRequestLogger$SessionData)
equals(Object)0440org.apache.wicket.request.resource.PackageResource.equals(Object)
getCacheableResourceStream()0240org.apache.wicket.resource.bundles.ConcatBundleResource .getCacheableResourceStream()
deserialize(byte[])0220org.apache.wicket.serialize.java.JavaSerializer.deserialize(byte[])
newResourceResponse(IResource$Attributes)2371org.apache.wicket.request.resource.ResourceStreamResource .newResourceResponse(IResource$Attributes)
populateMap(Object)3261org.apache.wicket.ajax.json.JSONObject.populateMap(Object)
extractPageParameters(Request,Url)3251org.apache.wicket.core.request.mapper.MountedMapper .extractPageParameters(Request,Url)
internalCheck(Object)41005org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .internalCheck(Object)
checkFields(Object,ObjectStreamClass)6312org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .checkFields(Object,ObjectStreamClass)
renderAjaxAttributes(Component,AjaxRequestAttributes)7796org.apache.wicket.ajax.AbstractDefaultAjaxBehavior .renderAjaxAttributes(Component,AjaxRequestAttributes)
getBehaviorId(Behavior)8212org.apache.wicket.Behaviors.getBehaviorId(Behavior)
getMarkup()8212org.apache.wicket.markup.html.internal.HtmlHeaderContainer.getMarkup()
resolveClass(String)10354org.apache.wicket.application.AbstractClassResolver.resolveClass (String)
mapHandler(IRequestHandler)10253org.apache.wicket.core.request.mapper.PageInstanceMapper.mapHandler (IRequestHandler)
newResourceResponse(IResource$Attributes)10253org.apache.wicket.request.resource.ByteArrayResource .newResourceResponse(IResource$Attributes)
toString()10253org.apache.wicket.validation.ValidationError.toString()
filter(AppendingStringBuffer)11233org.apache.wicket.response.filter.AjaxServerAndClientTimeFilter.filter (AppendingStringBuffer)
ConverterLocator()12223org.apache.wicket.ConverterLocator.ConverterLocator()
internalMap(Exception)12284org.apache.wicket.DefaultExceptionMapper.internalMap(Exception)
buildUrl(AbstractBookmarkableMapper$UrlInfo)12213org.apache.wicket.core.request.mapper.MountedMapper.buildUrl (AbstractBookmarkableMapper$UrlInfo)
getGetAndSetter(String,Class)126810org.apache.wicket.core.util.lang.PropertyResolver.getGetAndSetter (String,Class)
renderCombinedEventScripts()12223org.apache.wicket.markup.head.ResourceAggregator .renderCombinedEventScripts()
filter(AppendingStringBuffer)12213org.apache.wicket.response.filter.ServerAndClientTimeFilter.filter (AppendingStringBuffer)
toString(JSONArray)14559org.apache.wicket.ajax.json.JSONML.toString(JSONArray)
nextToken()145710org.apache.wicket.ajax.json.XMLTokener.nextToken()
mapHandler(IRequestHandler)14407org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper .mapHandler(IRequestHandler)
findLabelContent(MarkupStream,ComponentTag)14234org.apache.wicket.markup.html.form.AutoLabelTextResolver$TextLabel .findLabelContent(MarkupStream,ComponentTag)
children_remove(int)15285org.apache.wicket.MarkupContainer.children_remove(int)
parse(XMLTokener,boolean,JSONArray)1511721org.apache.wicket.ajax.json.JSONML.parse(XMLTokener,boolean,JSONArray)
generatePostParameters()15224org.apache.wicket.protocol.http.servlet.ServletWebRequest .generatePostParameters()
toString(Object,String)167515org.apache.wicket.ajax.json.XML.toString(Object,String)
nextMeta()16459org.apache.wicket.ajax.json.XMLTokener.nextMeta()
mapRequest(Request)16255org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper .mapRequest(Request)
mapHandler(IRequestHandler)16479org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper .mapHandler(IRequestHandler)
BrowserInfoForm(String)16316org.apache.wicket.markup.html.pages.BrowserInfoForm.BrowserInfoForm (String)
getItems(IItemFactory,Iterator,Iterator)16214org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy.getItems (IItemFactory,Iterator,Iterator)
requestTime(long)16306org.apache.wicket.protocol.http.AbstractRequestLogger.requestTime(long )
isNonClosedTag(String)16367org.apache.wicket.protocol.http.documentvalidation .HtmlDocumentValidator.isNonClosedTag(String)
newResourceResponse(IResource$Attributes)16214org.apache.wicket.resource.bundles.ConcatBundleResource .newResourceResponse(IResource$Attributes)
JSONArray(JSONTokener)17235org.apache.wicket.ajax.json.JSONArray.JSONArray(JSONTokener)
onComponentTag(ComponentTag)17378org.apache.wicket.markup.parser.filter.InlineEnclosureHandler .onComponentTag(ComponentTag)
buildRequest()174710org.apache.wicket.protocol.http.mock.MockHttpServletRequest .buildRequest()
bubble(ComponentEvent)18266org.apache.wicket.ComponentEventSender.bubble(ComponentEvent)
breadth(ComponentEvent)18276org.apache.wicket.ComponentEventSender.breadth(ComponentEvent)
toString(JSONObject)185412org.apache.wicket.ajax.json.JSONML.toString(JSONObject)
stripCommentsAndWhitespace(String)188018org.apache.wicket.core.util.string.JavaScriptStripper .stripCommentsAndWhitespace(String)
isDocumentValid(String)184510org.apache.wicket.protocol.http.documentvalidation .HtmlDocumentValidator.isDocumentValid(String)
depth(ComponentEvent)19256org.apache.wicket.ComponentEventSender.depth(ComponentEvent)
JSONObject(JSONTokener)19348org.apache.wicket.ajax.json.JSONObject.JSONObject(JSONTokener)
parse(XMLTokener,JSONObject,String)1910625org.apache.wicket.ajax.json.XML.parse(XMLTokener,JSONObject,String)

Statistics

Stat   Percentage Comment   # lines of code (LOC)   # lines of comment
Sum:6072 216301
Average:10.2937.565.1
Minimum:0210
Maximum:1911725
Standard deviation:6.7921.975.19
Variance:46.17482.8626.97
warningCritical    Rule warning: Methods with too many parameters
// <Name>Methods with too many parameters</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbParameters > 5 
  
orderby m.NbParameters descending
select new { m, m.NbParameters }

// Methods where NbParameters > 5 might be painful to call 
// and might degrade performance. You should prefer using 
// additional properties/fields to the declaring type to 
// handle numerous states. Another alternative is to provide 
// a class or structure dedicated to handle arguments passing 
// See the definition of the NbParameters metric here 
// http://www.jarchitect.com/Metrics.aspx#NbParameters

26 methods matched

methods# ParametersFull Name
TextTemplateResourceReference(Class,String,String,String,IModel,Locale ,String,String)8org.apache.wicket.resource.TextTemplateResourceReference .TextTemplateResourceReference(Class,String,String,String,IModel ,Locale,String,String)
SharedResources$AutoResourceReference(Class,String,Locale,String ,String,IResource,SharedResources$1)7org.apache.wicket.SharedResources$AutoResourceReference .SharedResources$AutoResourceReference(Class,String,Locale,String ,String,IResource,SharedResources$1)
locate(Class,String,String,String,Locale,String,boolean)7org.apache.wicket.core.util.resource.locator.IResourceStreamLocator .locate(Class,String,String,String,Locale,String,boolean)
locate(Class,String,String,String,Locale,String,boolean)7org.apache.wicket.core.util.resource.locator.ResourceStreamLocator .locate(Class,String,String,String,Locale,String,boolean)
locate(Class,String,String,String,Locale,String,boolean)7org.apache.wicket.core.util.resource.locator.caching .CachingResourceStreamLocator.locate(Class,String,String,String,Locale ,String,boolean)
getResourceReference(Class,String,Locale,String,String,boolean,boolean )7org.apache.wicket.request.resource.ResourceReferenceRegistry .getResourceReference(Class,String,Locale,String,String,boolean ,boolean)
PackageTextTemplate(Class,String,String,String,Locale,String,String)7org.apache.wicket.util.template.PackageTextTemplate .PackageTextTemplate(Class,String,String,String,Locale,String,String)
getString(String,Component,IModel,Locale,String,String)6org.apache.wicket.Localizer.getString(String,Component,IModel,Locale ,String,String)
getStringIgnoreSettings(String,Component,IModel,Locale,String,String)6org.apache.wicket.Localizer.getStringIgnoreSettings(String,Component ,IModel,Locale,String,String)
SharedResources$AutoResourceReference(Class,String,Locale,String ,String,IResource)6org.apache.wicket.SharedResources$AutoResourceReference .SharedResources$AutoResourceReference(Class,String,Locale,String ,String,IResource)
add(Class,String,Locale,String,String,IResource)6org.apache.wicket.SharedResources.add(Class,String,Locale,String ,String,IResource)
get(Class,String,Locale,String,String,boolean)6org.apache.wicket.SharedResources.get(Class,String,Locale,String ,String,boolean)
newPagingNavigationLink(String,IPageable,long)6org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigation.newPagingNavigationLink(String,IPageable,long)
newResourceNameIterator(String,Locale,String,String,String,boolean)6org.apache.wicket.core.util.resource.locator.IResourceStreamLocator .newResourceNameIterator(String,Locale,String,String,String,boolean)
ResourceNameIterator(String,String,String,Locale,Iterable,boolean)6org.apache.wicket.core.util.resource.locator.ResourceNameIterator .ResourceNameIterator(String,String,String,Locale,Iterable,boolean)
newResourceNameIterator(String,Locale,String,String,String,boolean)6org.apache.wicket.core.util.resource.locator.ResourceStreamLocator .newResourceNameIterator(String,Locale,String,String,String,boolean)
newResourceNameIterator(String,Locale,String,String,Iterable,boolean)6org.apache.wicket.core.util.resource.locator.ResourceStreamLocator .newResourceNameIterator(String,Locale,String,String,Iterable,boolean)
newResourceNameIterator(String,Locale,String,String,String,boolean)6org.apache.wicket.core.util.resource.locator.caching .CachingResourceStreamLocator.newResourceNameIterator(String,Locale ,String,String,String,boolean)
WicketMessageResolver$MessageContainer$1 (WicketMessageResolver$MessageContainer,String,Map,Map,String ,MarkupStream)6org.apache.wicket.markup.resolver .WicketMessageResolver$MessageContainer$1 .WicketMessageResolver$MessageContainer$1 (WicketMessageResolver$MessageContainer,String,Map,Map,String ,MarkupStream)
forReference(ResourceReference,PageParameters,String,boolean,String ,String)6org.apache.wicket.markup.head.JavaScriptHeaderItem.forReference (ResourceReference,PageParameters,String,boolean,String,String)
internalRenderJavaScriptReference(Response,String,String,boolean ,String,String)6org.apache.wicket.markup.head.JavaScriptHeaderItem .internalRenderJavaScriptReference(Response,String,String,boolean ,String,String)
JavaScriptReferenceHeaderItem(ResourceReference,PageParameters,String ,boolean,String,String)6org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem .JavaScriptReferenceHeaderItem(ResourceReference,PageParameters,String ,boolean,String,String)
LocalizedImageResource$SimpleStaticResourceReference(Class,String ,Locale,String,String,IResource)6org.apache.wicket.markup.html.image.resource .LocalizedImageResource$SimpleStaticResourceReference .LocalizedImageResource$SimpleStaticResourceReference(Class,String ,Locale,String,String,IResource)
ErrorAttributes(Integer,String,String,String,Class,Throwable)6org.apache.wicket.protocol.http.servlet.ErrorAttributes .ErrorAttributes(Integer,String,String,String,Class,Throwable)
_getResourceReference(String,String,Locale,String,String,boolean)6org.apache.wicket.request.resource.ResourceReferenceRegistry ._getResourceReference(String,String,Locale,String,String,boolean)
ConcatResourceBundleReference<T>(Class,String,Locale,String,String ,List)6org.apache.wicket.resource.bundles.ConcatResourceBundleReference .ConcatResourceBundleReference<T>(Class,String,Locale,String,String ,List)

Statistics

Stat   # Parameters
Sum:164
Average:6.31
Minimum:6
Maximum:8
Standard deviation:0.54
Variance:0.29
warningCritical    Rule warning: Methods with too many local variables
// <Name>Methods with too many local variables</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbVariables > 15 
  
orderby m.NbVariables descending
select new { m, m.NbVariables }

// Methods where NbVariables > 8 are hard to understand and maintain.
// Methods where NbVariables > 15 are extremely complex 
// and should be split in smaller methods.
// See the definition of the Nbvariables metric here 
// http://www.jarchitect.com/Metrics.aspx#Nbvariables

12 methods matched

methods# VariablesFull Name
renderAjaxAttributes(Component,AjaxRequestAttributes)34org.apache.wicket.ajax.AbstractDefaultAjaxBehavior .renderAjaxAttributes(Component,AjaxRequestAttributes)
internalCheck(Object)34org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .internalCheck(Object)
merge(IMarkupFragment,IMarkupFragment,int)24org.apache.wicket.markup.MergedMarkup.merge(IMarkupFragment ,IMarkupFragment,int)
isValidAuthority(String)24org.apache.wicket.validation.validator.UrlValidator.isValidAuthority (String)
getTimeZone()23org.apache.wicket.protocol.http.ClientProperties.getTimeZone()
getResourcePaths(String)20org.apache.wicket.protocol.http.mock.MockServletContext .getResourcePaths(String)
clickLink(String,boolean)19org.apache.wicket.util.tester.BaseWicketTester.clickLink(String ,boolean)
buildRequest()18org.apache.wicket.protocol.http.mock.MockHttpServletRequest .buildRequest()
toString(Object,String)17org.apache.wicket.ajax.json.XML.toString(Object,String)
extractPageParameters(Request,Url)17org.apache.wicket.core.request.mapper.MountedMapper .extractPageParameters(Request,Url)
asArray(Map)16org.apache.wicket.ajax.json.JsonUtils.asArray(Map)
mapHandler(IRequestHandler)16org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper .mapHandler(IRequestHandler)

Statistics

Stat   # Variables
Sum:262
Average:21.83
Minimum:16
Maximum:34
Standard deviation:6.11
Variance:37.31
warningCritical    Rule warning: Methods with too many overloads
// <Name>Methods with too many overloads</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbOverloads > 6 
  
orderby m.NbOverloads descending
select new { m, m.NbOverloads }

// Methods where NbOverloads > 6 might 
// be a problem to maintain and provoke higher coupling 
// than necessary. 
// See the definition of the NbOverloads metric here 
// http://www.jarchitect.com/Metrics.aspx#NbOverloads

124 methods matched

methods# OverloadsFull Name
put(Object)14org.apache.wicket.ajax.json.JSONArray.put(Object)
put(boolean)14org.apache.wicket.ajax.json.JSONArray.put(boolean)
put(Collection)14org.apache.wicket.ajax.json.JSONArray.put(Collection)
put(double)14org.apache.wicket.ajax.json.JSONArray.put(double)
put(int)14org.apache.wicket.ajax.json.JSONArray.put(int)
put(long)14org.apache.wicket.ajax.json.JSONArray.put(long)
put(Map)14org.apache.wicket.ajax.json.JSONArray.put(Map)
put(int,boolean)14org.apache.wicket.ajax.json.JSONArray.put(int,boolean)
put(int,Object)14org.apache.wicket.ajax.json.JSONArray.put(int,Object)
put(int,Collection)14org.apache.wicket.ajax.json.JSONArray.put(int,Collection)
put(int,double)14org.apache.wicket.ajax.json.JSONArray.put(int,double)
put(int,int)14org.apache.wicket.ajax.json.JSONArray.put(int,int)
put(int,long)14org.apache.wicket.ajax.json.JSONArray.put(int,long)
put(int,Map)14org.apache.wicket.ajax.json.JSONArray.put(int,Map)
ListChoice<T>(String)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String)
ListChoice<T>(String,IModel,List,IChoiceRenderer,int)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel,List,IChoiceRenderer,int)
ListChoice<T>(String,List)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,List)
ListChoice<T>(String,List,IChoiceRenderer)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,List,IChoiceRenderer)
ListChoice<T>(String,IModel,List)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel,List)
ListChoice<T>(String,IModel,List,int)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel,List,int)
ListChoice<T>(String,IModel,List,IChoiceRenderer)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel,List,IChoiceRenderer)
ListChoice<T>(String,IModel)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel)
ListChoice<T>(String,IModel,IModel,IChoiceRenderer,int)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel,IModel,IChoiceRenderer,int)
ListChoice<T>(String,IModel,IModel)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel,IModel)
ListChoice<T>(String,IModel,IChoiceRenderer)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel,IChoiceRenderer)
ListChoice<T>(String,IModel,IModel,IChoiceRenderer)12org.apache.wicket.markup.html.form.ListChoice.ListChoice<T>(String ,IModel,IModel,IChoiceRenderer)
ListMultipleChoice<T>(String)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String)
ListMultipleChoice<T>(String,List)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,List)
ListMultipleChoice<T>(String,List,int)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,List,int)
ListMultipleChoice<T>(String,List,IChoiceRenderer)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,List,IChoiceRenderer)
ListMultipleChoice<T>(String,IModel,List)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,IModel,List)
ListMultipleChoice<T>(String,IModel,List,IChoiceRenderer)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,IModel,List,IChoiceRenderer)
ListMultipleChoice<T>(String,IModel)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,IModel)
ListMultipleChoice<T>(String,IModel,IModel)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,IModel,IModel)
ListMultipleChoice<T>(String,IModel,IChoiceRenderer)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,IModel,IChoiceRenderer)
ListMultipleChoice<T>(String,IModel,IModel,IChoiceRenderer)11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>(String,IModel,IModel,IChoiceRenderer)
ListMultipleChoice<T>()11org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice<T>()
AbstractSingleSelectChoice<T>(String)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String)
AbstractSingleSelectChoice<T>(String,List)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String,List)
AbstractSingleSelectChoice<T>(String,List,IChoiceRenderer)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String,List,IChoiceRenderer)
AbstractSingleSelectChoice<T>(String,IModel,List)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String,IModel,List)
AbstractSingleSelectChoice<T>(String,IModel,List,IChoiceRenderer)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String,IModel,List,IChoiceRenderer)
AbstractSingleSelectChoice<T>(String,IModel)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String,IModel)
AbstractSingleSelectChoice<T>(String,IModel,IModel)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String,IModel,IModel)
AbstractSingleSelectChoice<T>(String,IModel,IChoiceRenderer)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String,IModel,IChoiceRenderer)
AbstractSingleSelectChoice<T>(String,IModel,IModel,IChoiceRenderer)10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>(String,IModel,IModel,IChoiceRenderer)
AbstractSingleSelectChoice<T>()10org.apache.wicket.markup.html.form.AbstractSingleSelectChoice .AbstractSingleSelectChoice<T>()
JSONObject()9org.apache.wicket.ajax.json.JSONObject.JSONObject()
JSONObject(Map)9org.apache.wicket.ajax.json.JSONObject.JSONObject(Map)
JSONObject(JSONObject,String[])9org.apache.wicket.ajax.json.JSONObject.JSONObject(JSONObject,String[])
JSONObject(JSONTokener)9org.apache.wicket.ajax.json.JSONObject.JSONObject(JSONTokener)
JSONObject(Object)9org.apache.wicket.ajax.json.JSONObject.JSONObject(Object)
JSONObject(Object,String[])9org.apache.wicket.ajax.json.JSONObject.JSONObject(Object,String[])
JSONObject(String)9org.apache.wicket.ajax.json.JSONObject.JSONObject(String)
JSONObject(String,Locale)9org.apache.wicket.ajax.json.JSONObject.JSONObject(String,Locale)
JSONObject()9org.apache.wicket.ajax.json.JSONObject.JSONObject()
AbstractChoice<T,E>(String)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String)
AbstractChoice<T,E>(String,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String,IModel,IChoiceRenderer)
AbstractChoice<T,E>(String,List)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String,List)
AbstractChoice<T,E>(String,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String,List,IChoiceRenderer)
AbstractChoice<T,E>(String,IModel,List)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String,IModel,List)
AbstractChoice<T,E>(String,IModel,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String,IModel,IModel,IChoiceRenderer)
AbstractChoice<T,E>(String,IModel,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String,IModel,List,IChoiceRenderer)
AbstractChoice<T,E>(String,IModel)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String,IModel)
AbstractChoice<T,E>(String,IModel,IModel)9org.apache.wicket.markup.html.form.AbstractChoice.AbstractChoice<T,E> (String,IModel,IModel)
CheckBoxMultipleChoice<T>(String)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String)
CheckBoxMultipleChoice<T>(String,List)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String,List)
CheckBoxMultipleChoice<T>(String,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String,List,IChoiceRenderer)
CheckBoxMultipleChoice<T>(String,IModel,List)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String,IModel,List)
CheckBoxMultipleChoice<T>(String,IModel,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String,IModel,List,IChoiceRenderer)
CheckBoxMultipleChoice<T>(String,IModel)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String,IModel)
CheckBoxMultipleChoice<T>(String,IModel,IModel)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String,IModel,IModel)
CheckBoxMultipleChoice<T>(String,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String,IModel,IChoiceRenderer)
CheckBoxMultipleChoice<T>(String,IModel,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.CheckBoxMultipleChoice .CheckBoxMultipleChoice<T>(String,IModel,IModel,IChoiceRenderer)
DropDownChoice<T>(String)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String)
DropDownChoice<T>(String,List)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String,List)
DropDownChoice<T>(String,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String,List,IChoiceRenderer)
DropDownChoice<T>(String,IModel,List)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String,IModel,List)
DropDownChoice<T>(String,IModel,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String,IModel,List,IChoiceRenderer)
DropDownChoice<T>(String,IModel)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String,IModel)
DropDownChoice<T>(String,IModel,IModel)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String,IModel,IModel)
DropDownChoice<T>(String,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String,IModel,IChoiceRenderer)
DropDownChoice<T>(String,IModel,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.DropDownChoice.DropDownChoice<T> (String,IModel,IModel,IChoiceRenderer)
ListMultipleChoice(String)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String)
ListMultipleChoice(String,List)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,List)
ListMultipleChoice(String,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,List,IChoiceRenderer)
ListMultipleChoice(String,IModel,List)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,List)
ListMultipleChoice(String,IModel,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,List,IChoiceRenderer)
ListMultipleChoice(String,IModel)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel)
ListMultipleChoice(String,IModel,IModel)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,IModel)
ListMultipleChoice(String,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,IChoiceRenderer)
ListMultipleChoice(String,IModel,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,IModel,IChoiceRenderer)
RadioChoice<T>(String)9org.apache.wicket.markup.html.form.RadioChoice.RadioChoice<T>(String)
RadioChoice<T>(String,List)9org.apache.wicket.markup.html.form.RadioChoice.RadioChoice<T>(String ,List)
RadioChoice<T>(String,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.RadioChoice.RadioChoice<T>(String ,List,IChoiceRenderer)
RadioChoice<T>(String,IModel,List)9org.apache.wicket.markup.html.form.RadioChoice.RadioChoice<T>(String ,IModel,List)
RadioChoice<T>(String,IModel,List,IChoiceRenderer)9org.apache.wicket.markup.html.form.RadioChoice.RadioChoice<T>(String ,IModel,List,IChoiceRenderer)
RadioChoice<T>(String,IModel)9org.apache.wicket.markup.html.form.RadioChoice.RadioChoice<T>(String ,IModel)
RadioChoice<T>(String,IModel,IModel)9org.apache.wicket.markup.html.form.RadioChoice.RadioChoice<T>(String ,IModel,IModel)
RadioChoice<T>(String,IModel,IChoiceRenderer)9org.apache.wicket.markup.html.form.RadioChoice.RadioChoice<T>(String ,IModel,IChoiceRenderer)

Statistics

Stat   # Overloads
Sum:1 224
Average:9.87
Minimum:7
Maximum:14
Standard deviation:1.93
Variance:3.73
warningCritical    Rule warning: Types with too many methods
// <Name>Types with too many methods</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.Methods.Count() > 20 
  
orderby t.Methods.Count() descending
select new { t, t.InstanceMethods, t.StaticMethods }

// Types where Methods.Count() > 20 might be hard to 
// understand and maintain 
// but there might be cases where it is relevant 
// to have a high number of methods. 

45 types matched

typesInstanceMethodsStaticMethodsFull Name
Component197 methods0 methodorg.apache.wicket.Component
BaseWicketTester113 methods9 methodsorg.apache.wicket.util.tester.BaseWicketTester
Application96 methods4 methodsorg.apache.wicket.Application
MockHttpServletRequest87 methods0 methodorg.apache.wicket.protocol.http.mock.MockHttpServletRequest
ClientProperties83 methods0 methodorg.apache.wicket.protocol.http.ClientProperties
Form<T>74 methods7 methodsorg.apache.wicket.markup.html.form.Form
FormComponent<T>60 methods3 methodsorg.apache.wicket.markup.html.form.FormComponent
MarkupContainer57 methods4 methodsorg.apache.wicket.MarkupContainer
ComponentTag60 methods0 methodorg.apache.wicket.markup.ComponentTag
JSONObject45 methods12 methodsorg.apache.wicket.ajax.json.JSONObject
MockHttpServletResponse48 methods4 methodsorg.apache.wicket.protocol.http.mock.MockHttpServletResponse
Session46 methods3 methodsorg.apache.wicket.Session
Page47 methods1 methodorg.apache.wicket.Page
BufferedHttpServletResponse42 methods3 methodsorg.apache.wicket.protocol.http.BufferedHttpServletResponse
JSONArray44 methods0 methodorg.apache.wicket.ajax.json.JSONArray
RequestCycle41 methods2 methodsorg.apache.wicket.request.cycle.RequestCycle
WebApplication40 methods1 methodorg.apache.wicket.protocol.http.WebApplication
IResourceSettings39 methods0 methodorg.apache.wicket.settings.IResourceSettings
ResourceSettings39 methods0 methodorg.apache.wicket.settings.def.ResourceSettings
XmlTag35 methods0 methodorg.apache.wicket.markup.parser.XmlTag
BrowserInfoForm$ClientPropertiesBean34 methods0 methodorg.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean
WicketTester33 methods1 methodorg.apache.wicket.util.tester.WicketTester
MockWebResponse32 methods0 methodorg.apache.wicket.mock.MockWebResponse
MarkupStream32 methods0 methodorg.apache.wicket.markup.MarkupStream
AbstractAjaxResponse25 methods4 methodsorg.apache.wicket.ajax.AbstractAjaxResponse
MarkupResourceStream29 methods0 methodorg.apache.wicket.markup.MarkupResourceStream
MockWebRequest28 methods0 methodorg.apache.wicket.mock.MockWebRequest
AjaxRequestHandler27 methods1 methodorg.apache.wicket.ajax.AjaxRequestHandler
AbstractRequestLogger28 methods0 methodorg.apache.wicket.protocol.http.AbstractRequestLogger
AbstractResource$ResourceResponse28 methods0 methodorg.apache.wicket.request.resource.AbstractResource$ResourceResponse
AjaxRequestAttributes27 methods0 methodorg.apache.wicket.ajax.attributes.AjaxRequestAttributes
MockServletContext27 methods0 methodorg.apache.wicket.protocol.http.mock.MockServletContext
ListView<T>25 methods1 methodorg.apache.wicket.markup.html.list.ListView
BufferedWebResponse24 methods2 methodsorg.apache.wicket.protocol.http.BufferedWebResponse
FormTester21 methods5 methodsorg.apache.wicket.util.tester.FormTester
IRequestLogger$RequestData24 methods0 methodorg.apache.wicket.protocol.http.IRequestLogger$RequestData
ServletWebRequest22 methods2 methodsorg.apache.wicket.protocol.http.servlet.ServletWebRequest
PackageResource22 methods2 methodsorg.apache.wicket.request.resource.PackageResource
FeedbackMessages22 methods0 methodorg.apache.wicket.feedback.FeedbackMessages
HttpSessionStore21 methods1 methodorg.apache.wicket.session.HttpSessionStore
HeaderBufferingWebResponse22 methods0 methodorg.apache.wicket.protocol.http.HeaderBufferingWebResponse
WicketFilter21 methods1 methodorg.apache.wicket.protocol.http.WicketFilter
CreditCardValidator22 methods0 methodorg.apache.wicket.validation.validator.CreditCardValidator
AbstractDefaultAjaxBehavior21 methods0 methodorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior
Link<T>21 methods0 methodorg.apache.wicket.markup.html.link.Link

Statistics

Stat   InstanceMethods   StaticMethods
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Types with too many fields
// <Name>Types with too many fields</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.Fields.Count() > 20 && 
  
!t.IsEnumeration 
  
orderby t.Fields.Count() descending
select new { t, t.InstanceFields, t.StaticFields, t.SizeOfInst }

// Types where Fields.Count() > 20 and not IsEnumeration 
// might be hard to understand and maintain 
// but there might be cases where it is relevant 
// to have a high number of fields. 

7 types matched

typesInstanceFieldsStaticFieldsSize of instanceFull Name
Component8 fields51 fields32org.apache.wicket.Component
Application43 fields3 fields172org.apache.wicket.Application
ClientProperties41 fields1 field164org.apache.wicket.protocol.http.ClientProperties
UrlValidator3 fields30 fields12org.apache.wicket.validation.validator.UrlValidator
MockHttpServletRequest20 fields3 fields80org.apache.wicket.protocol.http.mock.MockHttpServletRequest
BaseWicketTester21 fields1 field84org.apache.wicket.util.tester.BaseWicketTester
ResourceSettings21 fields0 field84org.apache.wicket.settings.def.ResourceSettings

Statistics

Stat   InstanceFields   StaticFields   Size of instance
Sum:00628
Average:0089.71
Minimum:0012
Maximum:00172
Standard deviation:0055.83
Variance:003 117
warningCritical    Rule warning: Types with poor cohesion
// <Name>Types with poor cohesion</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
(t.LCOM > 0.8 || t.LCOMHS > 0.95) && 
  
t.NbFields > 10 && 
  
t.NbMethods >10 
  
orderby t.LCOM descending, t.LCOMHS descending
select new { t, t.LCOM, t.LCOMHS, 
                
t.NbMethods, t.NbFields }

// Types where LCOM > 0.8 and NbFields > 10 
// and NbMethods >10 might be problematic. 
// However, it is very hard to avoid such 
// non-cohesive types. The LCOMHS metric
// is often considered as more efficient to 
// detect non-cohesive types.
// See the definition of the LCOM metric here 
// http://www.jarchitect.com/Metrics.aspx#LCOM

22 types matched

typesLack of Cohesion Of Methods (LCOM)LCOM Henderson-Sellers (LCOMHS)# Methods# FieldsFull Name
ClientProperties0.970.988442org.apache.wicket.protocol.http.ClientProperties
Application0.970.9810246org.apache.wicket.Application
Component0.950.9520059org.apache.wicket.Component
MockHttpServletRequest0.940.958923org.apache.wicket.protocol.http.mock.MockHttpServletRequest
BaseWicketTester0.940.9512822org.apache.wicket.util.tester.BaseWicketTester
Form<T>0.920.938414org.apache.wicket.markup.html.form.Form
Session0.920.935116org.apache.wicket.Session
ResourceSettings0.910.944021org.apache.wicket.settings.def.ResourceSettings
BrowserInfoForm$ClientPropertiesBean0.910.933517org.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean
AjaxRequestAttributes0.90.942816org.apache.wicket.ajax.attributes.AjaxRequestAttributes
RequestCycle0.90.924511org.apache.wicket.request.cycle.RequestCycle
AbstractResource$ResourceResponse0.890.932913org.apache.wicket.request.resource.AbstractResource$ResourceResponse
MockHttpServletResponse0.890.915418org.apache.wicket.protocol.http.mock.MockHttpServletResponse
Page0.880.95312org.apache.wicket.Page
BufferedHttpServletResponse0.880.894611org.apache.wicket.protocol.http.BufferedHttpServletResponse
FeedbackMessage0.880.931813org.apache.wicket.feedback.FeedbackMessage
MarkupResourceStream0.870.93213org.apache.wicket.markup.MarkupResourceStream
IRequestLogger$RequestData0.860.92511org.apache.wicket.protocol.http.IRequestLogger$RequestData
AbstractAjaxResponse0.840.873112org.apache.wicket.ajax.AbstractAjaxResponse
ComponentTag0.830.856414org.apache.wicket.markup.ComponentTag
DefaultButtonImageResource0.820.871814org.apache.wicket.markup.html.image.resource .DefaultButtonImageResource
UrlValidator0.810.871633org.apache.wicket.validation.validator.UrlValidator

Statistics

Stat   Lack of Cohesion Of Methods (LCOM)   LCOM Henderson-Sellers (LCOMHS)   # Methods   # Fields
Sum:19.6720.21 272451
Average:0.890.9257.8220.5
Minimum:0.810.851611
Maximum:0.970.9820059
Standard deviation:0.0430.03542.5412.67
Variance:0.00190.00121 809160.43

060
Object Oriented Design  

warningCritical    Rule warning: Base class should not use derivatives
// <Name>Base class should not use derivatives</Name>
warnif count > 0 
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }

10 types matched

typesderivedClassesUsedFull Name
AttributeModifier2 typesorg.apache.wicket.AttributeModifier
Component3 typesorg.apache.wicket.Component
MarkupContainer1 typeorg.apache.wicket.MarkupContainer
AjaxFormComponentUpdatingBehavior1 typeorg.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior
CheckingObjectOutputStream$ObjectOutputAdaptor1 typeorg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$ObjectOutputAdaptor
AbstractHeaderRenderStrategy1 typeorg.apache.wicket.markup.renderStrategy.AbstractHeaderRenderStrategy
CssHeaderItem3 typesorg.apache.wicket.markup.head.CssHeaderItem
JavaScriptHeaderItem3 typesorg.apache.wicket.markup.head.JavaScriptHeaderItem
MultipartServletWebRequest1 typeorg.apache.wicket.protocol.http.servlet.MultipartServletWebRequest
ServletWebRequest3 typesorg.apache.wicket.protocol.http.servlet.ServletWebRequest

Statistics

Stat   derivedClassesUsed
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Class shouldn't be too deep in inheritance tree
// <Name>Class shouldn't be too deep in inheritance tree</Name>
warnif count > 0 from t in JustMyCode.Types 
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()

// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes 
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3

select new { t, baseClasses, 
                
// The metric value DepthOfInheritance takes account
                // of third-party base classes
                t.DepthOfInheritance } 

// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here 
// http://www.jarchitect.com/Metrics.aspx#DIT

168 types matched

typesbaseClassesDepth of inheritanceFull Name
AttributeModifier$13 types4org.apache.wicket.AttributeModifier$1
FencedFeedbackPanel5 types6org.apache.wicket.feedback.FencedFeedbackPanel
MockHomePage4 types5org.apache.wicket.mock.MockHomePage
AbstractAjaxResponse$AjaxHtmlHeaderContainer5 types6org.apache.wicket.ajax.AbstractAjaxResponse$AjaxHtmlHeaderContainer
AbstractAjaxTimerBehavior3 types4org.apache.wicket.ajax.AbstractAjaxTimerBehavior
AjaxEventBehavior3 types4org.apache.wicket.ajax.AjaxEventBehavior
AjaxNewWindowNotifyingBehavior3 types4org.apache.wicket.ajax.AjaxNewWindowNotifyingBehavior
AjaxSelfUpdatingTimerBehavior4 types5org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior
WicketAjaxDebugJQueryResourceReference3 types4org.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference
WicketAjaxJQueryResourceReference3 types4org.apache.wicket.ajax.WicketAjaxJQueryResourceReference
WicketEventJQueryResourceReference3 types4org.apache.wicket.ajax.WicketEventJQueryResourceReference
AjaxFormChoiceComponentUpdatingBehavior5 types6org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior
AjaxFormComponentUpdatingBehavior4 types5org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior
AjaxFormSubmitBehavior4 types5org.apache.wicket.ajax.form.AjaxFormSubmitBehavior
AjaxFormValidatingBehavior$FormValidateVisitor$16 types7org.apache.wicket.ajax.form .AjaxFormValidatingBehavior$FormValidateVisitor$1
AjaxFormValidatingBehavior5 types6org.apache.wicket.ajax.form.AjaxFormValidatingBehavior
OnChangeAjaxBehavior5 types6org.apache.wicket.ajax.form.OnChangeAjaxBehavior
AjaxFallbackLink$14 types5org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1
AjaxFallbackLink<T>5 types6org.apache.wicket.ajax.markup.html.AjaxFallbackLink
AjaxLink$14 types5org.apache.wicket.ajax.markup.html.AjaxLink$1
AjaxLink<T>4 types5org.apache.wicket.ajax.markup.html.AjaxLink
AjaxButton$15 types6org.apache.wicket.ajax.markup.html.form.AjaxButton$1
AjaxButton6 types7org.apache.wicket.ajax.markup.html.form.AjaxButton
AjaxCheckBox$15 types6org.apache.wicket.ajax.markup.html.form.AjaxCheckBox$1
AjaxCheckBox6 types7org.apache.wicket.ajax.markup.html.form.AjaxCheckBox
AjaxFallbackButton$15 types6org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1
AjaxFallbackButton6 types7org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton
AjaxSubmitLink$15 types6org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1
AjaxSubmitLink5 types6org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink
AjaxPagingNavigation6 types7org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigation
AjaxPagingNavigationBehavior4 types5org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationBehavior
AjaxPagingNavigationIncrementLink$15 types6org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationIncrementLink$1
AjaxPagingNavigationIncrementLink6 types7org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationIncrementLink
AjaxPagingNavigationLink$15 types6org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationLink$1
AjaxPagingNavigationLink6 types7org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationLink
AjaxPagingNavigator5 types6org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigator
HomePageMapper3 types5org.apache.wicket.core.request.mapper.HomePageMapper
AutoLinkResolver$AutolinkBookmarkablePageLink<T>6 types7org.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkBookmarkablePageLink
AutoLinkResolver$AutolinkExternalLink5 types6org.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkExternalLink
AutoLinkResolver$ResourceReferenceAutolink3 types4org.apache.wicket.markup.resolver .AutoLinkResolver$ResourceReferenceAutolink
NoopOutputTransformerContainer3 types4org.apache.wicket.markup.transformer.NoopOutputTransformerContainer
XsltOutputTransformerContainer3 types4org.apache.wicket.markup.transformer.XsltOutputTransformerContainer
HeaderResponseContainer3 types4org.apache.wicket.markup.head.filter.HeaderResponseContainer
GenericWebPage<T>4 types5org.apache.wicket.markup.html.GenericWebPage
HeaderPartContainer3 types4org.apache.wicket.markup.html.HeaderPartContainer
TransparentWebMarkupContainer3 types4org.apache.wicket.markup.html.TransparentWebMarkupContainer
WebPage3 types4org.apache.wicket.markup.html.WebPage
EnclosureContainer3 types4org.apache.wicket.markup.html.basic.EnclosureContainer
Body3 types4org.apache.wicket.markup.html.border.Body
Border$BorderBodyContainer3 types4org.apache.wicket.markup.html.border.Border$BorderBodyContainer
Border3 types4org.apache.wicket.markup.html.border.Border
BorderPanel4 types5org.apache.wicket.markup.html.border.BorderPanel
BoxBorder4 types5org.apache.wicket.markup.html.border.BoxBorder
PageView$35 types6org.apache.wicket.markup.html.debug.PageView$3
PageView4 types5org.apache.wicket.markup.html.debug.PageView
Enclosure3 types4org.apache.wicket.markup.html.internal.Enclosure
HtmlHeaderContainer4 types5org.apache.wicket.markup.html.internal.HtmlHeaderContainer
InlineEnclosure4 types5org.apache.wicket.markup.html.internal.InlineEnclosure
AbstractLink3 types4org.apache.wicket.markup.html.link.AbstractLink
BookmarkablePageLink<T>5 types6org.apache.wicket.markup.html.link.BookmarkablePageLink
ClientSideImageMap4 types5org.apache.wicket.markup.html.link.ClientSideImageMap
DownloadLink5 types6org.apache.wicket.markup.html.link.DownloadLink
ExternalLink4 types5org.apache.wicket.markup.html.link.ExternalLink
InlineFrame3 types4org.apache.wicket.markup.html.link.InlineFrame
Link<T>4 types5org.apache.wicket.markup.html.link.Link
PopupCloseLink$ClosePopupPage4 types5org.apache.wicket.markup.html.link.PopupCloseLink$ClosePopupPage
PopupCloseLink<T>5 types6org.apache.wicket.markup.html.link.PopupCloseLink
ResourceLink<T>5 types6org.apache.wicket.markup.html.link.ResourceLink
StatelessLink<T>5 types6org.apache.wicket.markup.html.link.StatelessLink
AbstractItem3 types4org.apache.wicket.markup.html.list.AbstractItem
ListItem<T>5 types6org.apache.wicket.markup.html.list.ListItem
ListView$15 types6org.apache.wicket.markup.html.list.ListView$1
ListView$25 types6org.apache.wicket.markup.html.list.ListView$2
ListView$35 types6org.apache.wicket.markup.html.list.ListView$3
ListView<T>4 types5org.apache.wicket.markup.html.list.ListView
Loop4 types5org.apache.wicket.markup.html.list.Loop
LoopItem4 types5org.apache.wicket.markup.html.list.LoopItem
OddEvenListItem<T>6 types7org.apache.wicket.markup.html.list.OddEvenListItem
PageableListView<T>5 types6org.apache.wicket.markup.html.list.PageableListView
PropertyListView<T>5 types6org.apache.wicket.markup.html.list.PropertyListView
AbstractErrorPage4 types5org.apache.wicket.markup.html.pages.AbstractErrorPage
AccessDeniedPage5 types6org.apache.wicket.markup.html.pages.AccessDeniedPage
BrowserInfoForm$14 types5org.apache.wicket.markup.html.pages.BrowserInfoForm$1
BrowserInfoForm4 types5org.apache.wicket.markup.html.pages.BrowserInfoForm
BrowserInfoPage$35 types6org.apache.wicket.markup.html.pages.BrowserInfoPage$3
BrowserInfoPage4 types5org.apache.wicket.markup.html.pages.BrowserInfoPage
ExceptionErrorPage$15 types6org.apache.wicket.markup.html.pages.ExceptionErrorPage$1
ExceptionErrorPage5 types6org.apache.wicket.markup.html.pages.ExceptionErrorPage
InternalErrorPage5 types6org.apache.wicket.markup.html.pages.InternalErrorPage
PageExpiredErrorPage5 types6org.apache.wicket.markup.html.pages.PageExpiredErrorPage
RedirectPage4 types5org.apache.wicket.markup.html.pages.RedirectPage
ComponentFeedbackPanel5 types6org.apache.wicket.markup.html.panel.ComponentFeedbackPanel
EmptyPanel4 types5org.apache.wicket.markup.html.panel.EmptyPanel
FeedbackPanel$13 types4org.apache.wicket.markup.html.panel.FeedbackPanel$1
FeedbackPanel$MessageListView5 types6org.apache.wicket.markup.html.panel.FeedbackPanel$MessageListView
FeedbackPanel4 types5org.apache.wicket.markup.html.panel.FeedbackPanel
Fragment3 types4org.apache.wicket.markup.html.panel.Fragment
GenericPanel<T>4 types5org.apache.wicket.markup.html.panel.GenericPanel
Panel3 types4org.apache.wicket.markup.html.panel.Panel
AbstractCheckSelector$13 types4org.apache.wicket.markup.html.form.AbstractCheckSelector$1

Statistics

Stat   baseClasses   Depth of inheritance
Sum:0936
Average:05.57
Minimum:04
Maximum:09
Standard deviation:01.26
Variance:01.59
warningCritical    Rule warning: Class with no descendant should be final if possible
// <Name>Class with no descendant should be final if possible</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsClass && 
  
t.NbChildren ==0 && 
 
!t.IsFinal && 
 
!t.IsStatic 
  
// && !t.IsPublic <-- You might want to add this condition 
  //                    if you are developping a framework
  //                    with classes that are intended to be 
  //                    sub-classed by your clients.
  orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }

728 types matched

types# lines of code (LOC)Full Name
JSONObject481org.apache.wicket.ajax.json.JSONObject
MockHttpServletRequest335org.apache.wicket.protocol.http.mock.MockHttpServletRequest
XML254org.apache.wicket.ajax.json.XML
JSONML231org.apache.wicket.ajax.json.JSONML
JSONArray184org.apache.wicket.ajax.json.JSONArray
XMLTokener184org.apache.wicket.ajax.json.XMLTokener
HtmlDocumentValidator182org.apache.wicket.protocol.http.documentvalidation .HtmlDocumentValidator
ClientProperties169org.apache.wicket.protocol.http.ClientProperties
MockHttpServletResponse162org.apache.wicket.protocol.http.mock.MockHttpServletResponse
RequestCycle159org.apache.wicket.request.cycle.RequestCycle
MergedMarkup145org.apache.wicket.markup.MergedMarkup
TagTester144org.apache.wicket.util.tester.TagTester
MarkupCache142org.apache.wicket.markup.MarkupCache
BufferedHttpServletResponse137org.apache.wicket.protocol.http.BufferedHttpServletResponse
UrlValidator130org.apache.wicket.validation.validator.UrlValidator
CreditCardValidator126org.apache.wicket.validation.validator.CreditCardValidator
Localizer124org.apache.wicket.Localizer
FormTester122org.apache.wicket.util.tester.FormTester
PageWindowManager118org.apache.wicket.pageStore.PageWindowManager
MockServletContext115org.apache.wicket.protocol.http.mock.MockServletContext
CheckBoxMultipleChoice<T>113org.apache.wicket.markup.html.form.CheckBoxMultipleChoice
MarkupStream112org.apache.wicket.markup.MarkupStream
RadioChoice<T>109org.apache.wicket.markup.html.form.RadioChoice
XmlTag108org.apache.wicket.markup.parser.XmlTag
WicketTester107org.apache.wicket.util.tester.WicketTester
AjaxRequestHandler99org.apache.wicket.ajax.AjaxRequestHandler
DiskDataStore99org.apache.wicket.pageStore.DiskDataStore
MultipartServletWebRequestImpl98org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl
DefaultPageStore94org.apache.wicket.pageStore.DefaultPageStore
WildcardMatcherHelper$Matcher93org.apache.wicket.application.WildcardMatcherHelper$Matcher
CDL91org.apache.wicket.ajax.json.CDL
ReloadingClassLoader89org.apache.wicket.application.ReloadingClassLoader
JavaScriptStripper89org.apache.wicket.core.util.string.JavaScriptStripper
StringResourceModel89org.apache.wicket.model.StringResourceModel
ConcatBundleResource88org.apache.wicket.resource.bundles.ConcatBundleResource
ResourceAggregator87org.apache.wicket.markup.head.ResourceAggregator
HtmlDocumentParser87org.apache.wicket.protocol.http.documentvalidation.HtmlDocumentParser
HttpSessionStore85org.apache.wicket.session.HttpSessionStore
BufferedWebResponse85org.apache.wicket.protocol.http.BufferedWebResponse
BasicResourceReferenceMapper84org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper
ExceptionErrorPage80org.apache.wicket.markup.html.pages.ExceptionErrorPage
WebClientInfo78org.apache.wicket.protocol.http.request.WebClientInfo
XForwardedRequestWrapperFactory77org.apache.wicket.protocol.http.servlet .XForwardedRequestWrapperFactory
PageAccessSynchronizer76org.apache.wicket.page.PageAccessSynchronizer
BorderBehavior76org.apache.wicket.markup.html.border.BorderBehavior
MockWebResponse75org.apache.wicket.mock.MockWebResponse
WicketObjects74org.apache.wicket.core.util.lang.WicketObjects
ResourceSettings74org.apache.wicket.settings.def.ResourceSettings
CookieUtils74org.apache.wicket.util.cookies.CookieUtils
WicketMessageResolver$MessageContainer73org.apache.wicket.markup.resolver .WicketMessageResolver$MessageContainer
MarkupFactory71org.apache.wicket.markup.MarkupFactory
ResourceReferenceRegistry71org.apache.wicket.request.resource.ResourceReferenceRegistry
PropertiesFactory71org.apache.wicket.resource.PropertiesFactory
DiskDataStore$SessionEntry70org.apache.wicket.pageStore.DiskDataStore$SessionEntry
WebPageRenderer68org.apache.wicket.request.handler.render.WebPageRenderer
Cookie65org.apache.wicket.ajax.json.Cookie
ListenerInterfaceLogData65org.apache.wicket.core.request.handler.logger.ListenerInterfaceLogData
Check<T>65org.apache.wicket.markup.html.form.Check
MarkupFragment64org.apache.wicket.markup.MarkupFragment
XForwardedRequestWrapper62org.apache.wicket.protocol.http.servlet.XForwardedRequestWrapper
MockWebRequest61org.apache.wicket.mock.MockWebRequest
ResourceMapper61org.apache.wicket.core.request.mapper.ResourceMapper
TagStack61org.apache.wicket.markup.parser.TagStack
DefaultExceptionMapper60org.apache.wicket.DefaultExceptionMapper
CryptoMapper60org.apache.wicket.core.request.mapper.CryptoMapper
ClientSideImageMap60org.apache.wicket.markup.html.link.ClientSideImageMap
MultiFileUploadField60org.apache.wicket.markup.html.form.upload.MultiFileUploadField
Radio<T>58org.apache.wicket.markup.html.form.Radio
RequestLogger57org.apache.wicket.protocol.http.RequestLogger
MarkupResourceStream56org.apache.wicket.markup.MarkupResourceStream
HttpsMapper56org.apache.wicket.protocol.https.HttpsMapper
RequestListenerInterface55org.apache.wicket.RequestListenerInterface
PageStoreManager$SessionEntry55org.apache.wicket.page.PageStoreManager$SessionEntry
BrowserInfoForm$ClientPropertiesBean55org.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean
WicketTesterHelper54org.apache.wicket.util.tester.WicketTesterHelper
ListenerInterfaceRequestHandler53org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler
DefaultButtonImageResource53org.apache.wicket.markup.html.image.resource .DefaultButtonImageResource
AsynchronousDataStore53org.apache.wicket.pageStore.AsynchronousDataStore
UrlResourceStream52org.apache.wicket.core.util.resource.UrlResourceStream
GridView<T>52org.apache.wicket.markup.repeater.data.GridView
AbstractResource$ResourceResponse51org.apache.wicket.request.resource.AbstractResource$ResourceResponse
HTTP50org.apache.wicket.ajax.json.HTTP
PopupSettings48org.apache.wicket.markup.html.link.PopupSettings
DefaultPageStore$SerializedPagesCache48org.apache.wicket.pageStore.DefaultPageStore$SerializedPagesCache
PageInstanceMapper47org.apache.wicket.core.request.mapper.PageInstanceMapper
ComponentHierarchyIterator47org.apache.wicket.util.iterator.ComponentHierarchyIterator
FormComponent$MessageSource46org.apache.wicket.markup.html.form.FormComponent$MessageSource
WicketLinkTagHandler46org.apache.wicket.markup.parser.filter.WicketLinkTagHandler
FileUpload45org.apache.wicket.markup.html.form.upload.FileUpload
SecurePackageResourceGuard43org.apache.wicket.markup.html.SecurePackageResourceGuard
ContextRelativeResource42org.apache.wicket.request.resource.ContextRelativeResource
MarkupContainer$ChildList41org.apache.wicket.MarkupContainer$ChildList
PackageMapper41org.apache.wicket.core.request.mapper.PackageMapper
TagUtils41org.apache.wicket.markup.TagUtils
FileUploadField41org.apache.wicket.markup.html.form.upload.FileUploadField
PageAndComponentProvider39org.apache.wicket.core.request.handler.PageAndComponentProvider
AutoLabelTextResolver$TextLabel39org.apache.wicket.markup.html.form.AutoLabelTextResolver$TextLabel
Border$BorderBodyContainer38org.apache.wicket.markup.html.border.Border$BorderBodyContainer
CheckGroup<T>38org.apache.wicket.markup.html.form.CheckGroup
PackageResource$CacheKey38org.apache.wicket.request.resource.PackageResource$CacheKey

Statistics

Stat   # lines of code (LOC)
Sum:15 472
Average:21.25
Minimum:0
Maximum:481
Standard deviation:36.82
Variance:1 355
warningCritical    Rule warning: Avoid the Singleton pattern
//<Name>Avoid the Singleton pattern</Name>
warnif count > 0
from t in Application.Types
where !t.IsStatic && !t.IsAbstract && t.IsClass 

// All ctors of a singleton are private
where t.Constructors.Where(ctor => !ctor.IsPrivate).Count() == 0

// A singleton contains one static field of its parent type, to reference the unique instance
let staticFieldInstances = t.StaticFields.WithFieldType(t)
where staticFieldInstances.Count() == 1
select new { t, staticFieldInstance = staticFieldInstances.First() }

// The Singleton pattern consists in syntactically enforcing that a class 
// has just one unique instance.
// At first glance, this pattern looks appealing and it is widely used.
// However, we discourage you from using singleton classes because experience
// shows that singletons often result in less testable and less maintainable code.
// More details available in these discussions:
//  http://adamschepis.com/blog/2011/05/02/im-adam-and-im-a-recovering-singleton-addict/

8 types matched

typesstaticFieldInstanceFull Name
WicketAjaxDebugJQueryResourceReferenceINSTANCEorg.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference
WicketAjaxJQueryResourceReferenceINSTANCEorg.apache.wicket.ajax.WicketAjaxJQueryResourceReference
WicketEventJQueryResourceReferenceINSTANCEorg.apache.wicket.ajax.WicketEventJQueryResourceReference
EmptyAjaxRequestHandlerinstanceorg.apache.wicket.core.request.handler.EmptyAjaxRequestHandler
DefaultMarkupSourcingStrategyinstanceorg.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy
JQueryResourceReferenceINSTANCEorg.apache.wicket.resource.JQueryResourceReference
NullResponseinstanceorg.apache.wicket.response.NullResponse
ResultPASSorg.apache.wicket.util.tester.Result

Statistics

Stat   staticFieldInstance
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Don't assign static fields from instance methods
// <Name>Don't assign static fields from instance methods</Name>
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where 
  
f.IsStatic &&
 
!f.IsLiteral &&
 
!f.IsInitOnly &&
 
!f.IsGeneratedByCompiler &&
  
// Contract API define such a insideContractEvaluation static field
  f.Name != "insideContractEvaluation"
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }

1 fields matched

fieldassignedByFull Name
META_INF_RESOURCES_SUPPORTED1 methodorg.apache.wicket.request.resource.MetaInfStaticResourceReference .META_INF_RESOURCES_SUPPORTED

Statistics

Stat   assignedBy
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid empty interfaces
// <Name>Avoid empty interfaces</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsInterface && 
  
t.NbMethods == 0
select new { t, t.TypesThatImplementMe }

// Interfaces define members that provide a behavior 
// or usage contract. The functionality described by 
// the interface can be adopted by any type, 
// regardless of where the type appears in the 
// inheritance hierarchy. A type implements an 
// interface by providing implementations for the 
// interface's members. An empty interface does not 
// define any members, and as such, does not define 
// a contract that can be implemented.

// If your design includes empty interfaces that 
// types are expected to implement, you are probably 
// using an interface as a marker, or a way of 
// identifying a group of types. If this identification 
// will occur at runtime, the correct way to accomplish
// this is to use a custom attribute. Use the presence 
// or absence of the attribute, or the attribute's 
// properties, to identify the target types. If the 
// identification must occurs at compile time, then using 
// an empty interface is acceptable.

4 types matched

typesTypesThatImplementMeFull Name
IRequestListener19 typesorg.apache.wicket.IRequestListener
IFeedback3 typesorg.apache.wicket.feedback.IFeedback
DocumentElement3 typesorg.apache.wicket.protocol.http.documentvalidation.DocumentElement
INullAcceptingValidator<T>1 typeorg.apache.wicket.validation.INullAcceptingValidator

Statistics

Stat   TypesThatImplementMe
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

040
Design  

warningCritical    Rule warning: Avoid packages with few types
// <Name>Avoid packages with few types</Name>
warnif count > 0 from n in JustMyCode.Packages 
let types = n.ChildTypes.Where(t => !t.IsGeneratedByCompiler)
where 
  
types.Count() < 5 
  
orderby types.Count() ascending
select new { n, types } 

// Make sure that there is a logical organization 
// to each of your packages, and that there is a 
// valid reason for putting types in a sparsely 
// populated package. Packages should contain 
// types that are used together in most scenarios. 
// When their applications are mutually exclusive, 
// types should be located in separate packages

27 packages matched

packagestypesFull Name
org.apache.wicket.css1 typeorg.apache.wicket.css
org.apache.wicket.authentication1 typeorg.apache.wicket.authentication
org.apache.wicket.authorization.strategies1 typeorg.apache.wicket.authorization.strategies
org.apache.wicket.core.request1 typeorg.apache.wicket.core.request
org.apache.wicket.core.util.file1 typeorg.apache.wicket.core.util.file
org.apache.wicket.markup.head.internal1 typeorg.apache.wicket.markup.head.internal
org.apache.wicket.markup.html.include1 typeorg.apache.wicket.markup.html.include
org.apache.wicket.serialize1 typeorg.apache.wicket.serialize
org.apache.wicket.util.reference1 typeorg.apache.wicket.util.reference
org.apache.wicket.javascript2 typesorg.apache.wicket.javascript
org.apache.wicket.authentication.strategy2 typesorg.apache.wicket.authentication.strategy
org.apache.wicket.authorization.strategies.action2 typesorg.apache.wicket.authorization.strategies.action
org.apache.wicket.core.util.crypt2 typesorg.apache.wicket.core.util.crypt
org.apache.wicket.core.util.string.interpolator2 typesorg.apache.wicket.core.util.string.interpolator
org.apache.wicket.markup.repeater.util2 typesorg.apache.wicket.markup.repeater.util
org.apache.wicket.protocol.http.request2 typesorg.apache.wicket.protocol.http.request
org.apache.wicket.request.component2 typesorg.apache.wicket.request.component
org.apache.wicket.request.handler.render2 typesorg.apache.wicket.request.handler.render
org.apache.wicket.util.cookies2 typesorg.apache.wicket.util.cookies
org.apache.wicket.authorization.strategies.page3 typesorg.apache.wicket.authorization.strategies.page
org.apache.wicket.core.util.io3 typesorg.apache.wicket.core.util.io
org.apache.wicket.response3 typesorg.apache.wicket.response
org.apache.wicket.event4 typesorg.apache.wicket.event
org.apache.wicket.core.request.handler.logger4 typesorg.apache.wicket.core.request.handler.logger
org.apache.wicket.markup.loader4 typesorg.apache.wicket.markup.loader
org.apache.wicket.markup.html.basic4 typesorg.apache.wicket.markup.html.basic
org.apache.wicket.markup.html.image4 typesorg.apache.wicket.markup.html.image

Statistics

Stat   types
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Nested types should not be visible
// <Name>Nested types should not be visible</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsNested && 
 
!t.IsGeneratedByCompiler &&
 
!t.IsPrivate 
select new { t, t.NbLinesOfCode, t.Visibility } 


// A nested type is a type declared within the 
// scope of another type. Nested types are useful 
// for encapsulating private implementation details 
// of the containing type. Used for this purpose, 
// nested types should not be externally visible. 
// Do not use externally visible nested types for 
// logical grouping or to avoid name collisions; 
// instead, use packages.

45 types matched

types# lines of code (LOC)VisibilityFull Name
RestartResponseAtInterceptPageException$InterceptData30Internalorg.apache.wicket .RestartResponseAtInterceptPageException$InterceptData
FencedFeedbackPanel$24Internalorg.apache.wicket.feedback.FencedFeedbackPanel$2
PageAccessSynchronizer$PageLock8Publicorg.apache.wicket.page.PageAccessSynchronizer$PageLock
ISessionStore$BindListenerN/APublicorg.apache.wicket.session.ISessionStore$BindListener
ISessionStore$UnboundListenerN/APublicorg.apache.wicket.session.ISessionStore$UnboundListener
AjaxChannel$TypeN/APublicorg.apache.wicket.ajax.AjaxChannel$Type
AjaxRequestHandler$117Internalorg.apache.wicket.ajax.AjaxRequestHandler$1
AjaxRequestTarget$AbstractListener4Publicorg.apache.wicket.ajax.AjaxRequestTarget$AbstractListener
AjaxRequestTarget$IJavaScriptResponseN/APublicorg.apache.wicket.ajax.AjaxRequestTarget$IJavaScriptResponse
AjaxRequestTarget$IListenerN/APublicorg.apache.wicket.ajax.AjaxRequestTarget$IListener
AjaxRequestTarget$ITargetRespondListenerN/APublicorg.apache.wicket.ajax.AjaxRequestTarget$ITargetRespondListener
AjaxRequestAttributes$MethodN/APublicorg.apache.wicket.ajax.attributes.AjaxRequestAttributes$Method
RenderPageRequestHandler$RedirectPolicyN/APublicorg.apache.wicket.core.request.handler .RenderPageRequestHandler$RedirectPolicy
PropertyResolver$IClassCacheN/APublicorg.apache.wicket.core.util.lang.PropertyResolver$IClassCache
PropertyResolver$IGetAndSetN/APublicorg.apache.wicket.core.util.lang.PropertyResolver$IGetAndSet
IObjectChecker$Result$StatusN/APublicorg.apache.wicket.core.util.objects.checker .IObjectChecker$Result$Status
IObjectChecker$Result11Publicorg.apache.wicket.core.util.objects.checker.IObjectChecker$Result
MarkupCache$ICache<K,V>N/APublicorg.apache.wicket.markup.MarkupCache$ICache
AutoLinkResolver$AutolinkBookmarkablePageLink<T>10Publicorg.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkBookmarkablePageLink
AutoLinkResolver$IAutolinkResolverDelegateN/APublicorg.apache.wicket.markup.resolver .AutoLinkResolver$IAutolinkResolverDelegate
AutoLinkResolver$PathInfo48Publicorg.apache.wicket.markup.resolver.AutoLinkResolver$PathInfo
ComponentResolvers$ResolverFilterN/APublicorg.apache.wicket.markup.resolver.ComponentResolvers$ResolverFilter
ResourceAggregator$RecordedHeaderItem8Publicorg.apache.wicket.markup.head.ResourceAggregator$RecordedHeaderItem
ResourceAggregator$RecordedHeaderItemLocation9Publicorg.apache.wicket.markup.head .ResourceAggregator$RecordedHeaderItemLocation
FilteringHeaderResponse$IHeaderResponseFilterN/APublicorg.apache.wicket.markup.head.filter .FilteringHeaderResponse$IHeaderResponseFilter
BrowserInfoForm$ClientPropertiesBean55Publicorg.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean
Form$MethodMismatchResponseN/APublicorg.apache.wicket.markup.html.form.Form$MethodMismatchResponse
Form$ValidationVisitor11Publicorg.apache.wicket.markup.html.form.Form$ValidationVisitor
IXmlPullParser$HttpTagTypeN/APublicorg.apache.wicket.markup.parser.IXmlPullParser$HttpTagType
XmlTag$TagTypeN/APublicorg.apache.wicket.markup.parser.XmlTag$TagType
XmlTag$TextSegment8Internalorg.apache.wicket.markup.parser.XmlTag$TextSegment
PageWindowManager$PageWindow7Publicorg.apache.wicket.pageStore.PageWindowManager$PageWindow
IRequestLogger$ISessionLogInfoN/APublicorg.apache.wicket.protocol.http.IRequestLogger$ISessionLogInfo
IRequestLogger$RequestData31Publicorg.apache.wicket.protocol.http.IRequestLogger$RequestData
IRequestLogger$SessionData24Publicorg.apache.wicket.protocol.http.IRequestLogger$SessionData
AbstractResource$WriteCallback3Publicorg.apache.wicket.request.resource.AbstractResource$WriteCallback
IResource$Attributes12Publicorg.apache.wicket.request.resource.IResource$Attributes
ResourceReference$Key25Publicorg.apache.wicket.request.resource.ResourceReference$Key
ResourceReference$UrlAttributes16Publicorg.apache.wicket.request.resource.ResourceReference$UrlAttributes
IExceptionSettings$AjaxErrorStrategyN/APublicorg.apache.wicket.settings.IExceptionSettings$AjaxErrorStrategy
IExceptionSettings$ThreadDumpStrategyN/APublicorg.apache.wicket.settings.IExceptionSettings$ThreadDumpStrategy
IExceptionSettings$UnexpectedExceptionDisplay2Publicorg.apache.wicket.settings .IExceptionSettings$UnexpectedExceptionDisplay
IRequestCycleSettings$RenderStrategyN/APublicorg.apache.wicket.settings.IRequestCycleSettings$RenderStrategy
FormTester$ChoiceSelector40Publicorg.apache.wicket.util.tester.FormTester$ChoiceSelector
WicketTesterHelper$ComponentData1Publicorg.apache.wicket.util.tester.WicketTesterHelper$ComponentData

Statistics

Stat   # lines of code (LOC)   Visibility
Sum:3840
Average:16.70
Minimum:10
Maximum:550
Standard deviation:14.710
Variance:216.470
warningCritical    Rule warning: Instances size shouldn't be too big
// <Name>Instances size shouldn't be too big</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.SizeOfInst > 64 
  
orderby t.SizeOfInst descending
select new { t, t.SizeOfInst, t.InstanceFields }

// Types where SizeOfInst > 64 might degrade performance 
// (depending on the number of instances created at runtime) 
// and might be hard to maintain. However it is not a rule 
// since sometime there is no alternative .
// Notice that a class with a large SizeOfInst value
// doesn't necessarily have a lot of instance fields.
// It might derive from a class with a large SizeOfInst value.
// See the definition of the SizeOfInst metric here 
// http://www.jarchitect.com/Metrics.aspx#SizeOfInst

26 types matched

typesSize of instanceInstanceFieldsFull Name
BaseWicketTester$12081 fieldorg.apache.wicket.util.tester.BaseWicketTester$1
MockApplication2040 fieldorg.apache.wicket.mock.MockApplication
WebApplication2048 fieldsorg.apache.wicket.protocol.http.WebApplication
Application17243 fieldsorg.apache.wicket.Application
ClientProperties16441 fieldsorg.apache.wicket.protocol.http.ClientProperties
ResourceSettings8421 fieldsorg.apache.wicket.settings.def.ResourceSettings
BaseWicketTester8421 fieldsorg.apache.wicket.util.tester.BaseWicketTester
WicketTester840 fieldorg.apache.wicket.util.tester.WicketTester
MockHttpServletRequest8020 fieldsorg.apache.wicket.protocol.http.mock.MockHttpServletRequest
AutoLinkResolver$AutolinkBookmarkablePageLink<T>721 fieldorg.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkBookmarkablePageLink
DownloadLink723 fieldsorg.apache.wicket.markup.html.link.DownloadLink
ResourceLink<T>723 fieldsorg.apache.wicket.markup.html.link.ResourceLink
CheckBoxMultipleChoice<T>722 fieldsorg.apache.wicket.markup.html.form.CheckBoxMultipleChoice
RadioChoice<T>722 fieldsorg.apache.wicket.markup.html.form.RadioChoice
MultiFileUploadField725 fieldsorg.apache.wicket.markup.html.form.upload.MultiFileUploadField
AjaxPagingNavigationIncrementLink680 fieldorg.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationIncrementLink
AjaxPagingNavigationLink680 fieldorg.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationLink
BookmarkablePageLink<T>682 fieldsorg.apache.wicket.markup.html.link.BookmarkablePageLink
ListView$1682 fieldsorg.apache.wicket.markup.html.list.ListView$1
ListView$2682 fieldsorg.apache.wicket.markup.html.list.ListView$2
ListView$3682 fieldsorg.apache.wicket.markup.html.list.ListView$3
ExceptionErrorPage$1682 fieldsorg.apache.wicket.markup.html.pages.ExceptionErrorPage$1
ListChoice<T>681 fieldorg.apache.wicket.markup.html.form.ListChoice
PagingNavigationIncrementLink<T>682 fieldsorg.apache.wicket.markup.html.navigation.paging .PagingNavigationIncrementLink
PagingNavigationLink<T>682 fieldsorg.apache.wicket.markup.html.navigation.paging.PagingNavigationLink
GridView<T>682 fieldsorg.apache.wicket.markup.repeater.data.GridView

Statistics

Stat   Size of instance   InstanceFields
Sum:2 4640
Average:94.770
Minimum:680
Maximum:2080
Standard deviation:47.640
Variance:2 2690
warningCritical    Rule warning: Don't use obsolete types, methods or fields
// <Name>Don't use obsolete types, methods or fields</Name>   
warnif count > 0
let obsoleteTypes = Types.Where(t => t.IsObsolete)
let obsoleteMethods = Methods.Where(m => m.IsObsolete).ToHashSet()
let obsoleteFields = Fields.Where(f => f.IsObsolete)

from m in JustMyCode.Methods.UsingAny(obsoleteTypes).Union(
          
JustMyCode.Methods.UsingAny(obsoleteMethods)).Union(
          
JustMyCode.Methods.UsingAny(obsoleteFields))
let obsoleteTypesUsed = obsoleteTypes.UsedBy(m)

// Optimization: MethodsCalled + Intersect() is faster than using obsoleteMethods.UsedBy()
let obsoleteMethodsUsed = m.MethodsCalled.Intersect(obsoleteMethods)
let obsoleteFieldsUsed = obsoleteFields.UsedBy(m)
select new { m, obsoleteTypesUsed, obsoleteMethodsUsed, obsoleteFieldsUsed }

5 methods matched

methodsobsoleteTypesUsedobsoleteMethodsUsedobsoleteFieldsUsedFull Name
updateAjaxAttributesBackwardCompatibility(AjaxRequestAttributes)0 type4 methods0 fieldorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior .updateAjaxAttributesBackwardCompatibility(AjaxRequestAttributes)
getChannel()0 type1 method0 fieldorg.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.getChannel()
getChannel()0 type1 method0 fieldorg.apache.wicket.ajax.markup.html.form.AjaxButton$1.getChannel()
getChannel()0 type1 method0 fieldorg.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .getChannel()
HomePageMapper(ClassProvider)0 type1 method0 fieldorg.apache.wicket.core.request.mapper.HomePageMapper.HomePageMapper (ClassProvider)

Statistics

Stat   obsoleteTypesUsed   obsoleteMethodsUsed   obsoleteFieldsUsed
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000

330
Architecture and Layering  

warningCritical    Rule warning: Avoid packages mutually dependent
// <Name>Avoid packages mutually dependent</Name>
warnif count > 0
// Foreach pair of package mutually dependent, this rule lists pairs.
// The pair { first, second } is formatted to show that first package shouldn't use the second package.
// The first/second order is inferred from the number of types used by each other.
// The first package is using less types of the second.
// It means that the first package is certainly at a lower level in the architecture, than the second.
//
// To explore the coupling between two packages mutually dependent:
//  1) export the first package to the vertical header of the dependency matrix
//  2) export the second package to the horizontal header of the dependency matrix
//  3) double-click the black cell
//  4) in the matrix command bar, click the button: Remove empty Row(s) en Column(s)
// At this point, the dependency matrix shows types involved into the coupling.
//
// Following this rule is useful to avoid packages dependency cycles.

// Optimization: restreint application projects set
// If some packages are mutually dependent
//  - They must be declared in the same project
//  - The parent project must ContainsPackageDependencyCycle
from project in Application.Projects.Where(a => a.ContainsPackageDependencyCycle != null && a.ContainsPackageDependencyCycle.Value)

// hashset is used to avoid reporting both A <-> B and B <-> A
let hashset = new HashSet<IPackage>()

// Optimization: restreint packages set
// If a package doesn't have a Level value, it must be in a dependency cycle
// or it must be using directly or indirectly a dependency cycle.
let packagesSuspect = project.ChildPackages.Where(n => n.Level == null)

from nA in packagesSuspect

// Select PACKAGES mutually dependent with nA
let unused = hashset.Add(nA) // Populate hashset
let packagesMutuallyDependentWith_nA = nA.PackagesUsed.Using(nA)
          
.Except(hashset) // <-- avoid reporting both A <-> B and B <-> A 
where packagesMutuallyDependentWith_nA.Count() > 0

from nB in packagesMutuallyDependentWith_nA

// nA and nB are mutually dependent
// Select first the one that shouldn't use the other.
// The first package is inferred from the fact that it is using less types of the second.
let typesOfBUsedByA = nB.ChildTypes.UsedBy(nA)
let typesOfAUsedByB = nA.ChildTypes.UsedBy(nB)
let first = (typesOfBUsedByA.Count() > typesOfAUsedByB.Count()) ? nB : nA
let second = (first == nA) ? nB : nA
let typesOfFirstUsedBySecond = (first == nA) ? typesOfAUsedByB : typesOfBUsedByA
let typesOfSecondUsedByFirst = (first == nA) ? typesOfBUsedByA : typesOfAUsedByB
select new { first, shouldntUse = second, typesOfFirstUsedBySecond, typesOfSecondUsedByFirst }

96 packages matched

packagesshouldntUsetypesOfFirstUsedBySecondtypesOfSecondUsedByFirstFull Name
org.apache.wicket.applicationorg.apache.wicket7 types3 typesorg.apache.wicket.application
org.apache.wicket.authorizationorg.apache.wicket4 types2 typesorg.apache.wicket.authorization
org.apache.wicket.settingsorg.apache.wicket14 types5 typesorg.apache.wicket.settings
org.apache.wicketorg.apache.wicket.request.cycle6 types4 typesorg.apache.wicket
org.apache.wicket.pageorg.apache.wicket6 types3 typesorg.apache.wicket.page
org.apache.wicketorg.apache.wicket.protocol.http12 types4 typesorg.apache.wicket
org.apache.wicketorg.apache.wicket.session5 types3 typesorg.apache.wicket
org.apache.wicketorg.apache.wicket.response.filter2 types1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.core.util.lang5 types2 typesorg.apache.wicket
org.apache.wicket.markuporg.apache.wicket12 types4 typesorg.apache.wicket.markup
org.apache.wicketorg.apache.wicket.markup.resolver6 types6 typesorg.apache.wicket
org.apache.wicketorg.apache.wicket.markup.parser.filter5 types5 typesorg.apache.wicket
org.apache.wicketorg.apache.wicket.core.util.resource2 types1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.markup.html.image.resource6 types1 typeorg.apache.wicket
org.apache.wicket.settings.deforg.apache.wicket12 types9 typesorg.apache.wicket.settings.def
org.apache.wicket.request.resourceorg.apache.wicket6 types3 typesorg.apache.wicket.request.resource
org.apache.wicket.core.request.mapperorg.apache.wicket8 types4 typesorg.apache.wicket.core.request.mapper
org.apache.wicketorg.apache.wicket.markup.html6 types2 typesorg.apache.wicket
org.apache.wicket.markup.headorg.apache.wicket9 types2 typesorg.apache.wicket.markup.head
org.apache.wicket.modelorg.apache.wicket7 types6 typesorg.apache.wicket.model
org.apache.wicketorg.apache.wicket.behavior8 types4 typesorg.apache.wicket
org.apache.wicketorg.apache.wicket.feedback5 types1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.core.util.string1 type1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.ajax5 types1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.markup.html.panel5 types2 typesorg.apache.wicket
org.apache.wicketorg.apache.wicket.markup.html.internal5 types1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.response1 type1 typeorg.apache.wicket
org.apache.wicket.core.request.handlerorg.apache.wicket9 types7 typesorg.apache.wicket.core.request.handler
org.apache.wicketorg.apache.wicket.markup.html.pages6 types1 typeorg.apache.wicket
org.apache.wicket.pageStoreorg.apache.wicket5 types1 typeorg.apache.wicket.pageStore
org.apache.wicketorg.apache.wicket.markup.html.form11 types2 typesorg.apache.wicket
org.apache.wicketorg.apache.wicket.markup.html.link12 types1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.request.handler.render2 types1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.resource.loader4 types1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.core.util.string.interpolator1 type1 typeorg.apache.wicket
org.apache.wicketorg.apache.wicket.util.iterator2 types1 typeorg.apache.wicket
org.apache.wicket.behaviororg.apache.wicket.markup1 type1 typeorg.apache.wicket.behavior
org.apache.wicket.cssorg.apache.wicket.resource1 type1 typeorg.apache.wicket.css
org.apache.wicket.feedbackorg.apache.wicket.markup.html.panel5 types1 typeorg.apache.wicket.feedback
org.apache.wicket.javascriptorg.apache.wicket.resource1 type1 typeorg.apache.wicket.javascript
org.apache.wicket.pageorg.apache.wicket.pageStore1 type1 typeorg.apache.wicket.page
org.apache.wicket.sessionorg.apache.wicket.protocol.http2 types2 typesorg.apache.wicket.session
org.apache.wicket.ajax.attributesorg.apache.wicket.ajax6 types1 typeorg.apache.wicket.ajax.attributes
org.apache.wicket.ajaxorg.apache.wicket.protocol.http5 types1 typeorg.apache.wicket.ajax
org.apache.wicket.core.request.handlerorg.apache.wicket.core.request.mapper10 types2 typesorg.apache.wicket.core.request.handler
org.apache.wicket.core.request.mapperorg.apache.wicket.protocol.http4 types3 typesorg.apache.wicket.core.request.mapper
org.apache.wicket.core.request.handlerorg.apache.wicket.core.request.handler.logger2 types2 typesorg.apache.wicket.core.request.handler
org.apache.wicket.protocol.httporg.apache.wicket.core.request.handler2 types1 typeorg.apache.wicket.protocol.http
org.apache.wicket.core.request.handlerorg.apache.wicket.request.handler.render3 types1 typeorg.apache.wicket.core.request.handler
org.apache.wicket.core.request.handlerorg.apache.wicket.request.cycle5 types1 typeorg.apache.wicket.core.request.handler
org.apache.wicket.request.handler.resourceorg.apache.wicket.core.request.handler.logger3 types2 typesorg.apache.wicket.request.handler.resource
org.apache.wicket.core.util.langorg.apache.wicket.model2 types1 typeorg.apache.wicket.core.util.lang
org.apache.wicket.core.util.resourceorg.apache.wicket.core.util.resource.locator1 type1 typeorg.apache.wicket.core.util.resource
org.apache.wicket.core.util.resourceorg.apache.wicket.protocol.http1 type1 typeorg.apache.wicket.core.util.resource
org.apache.wicket.core.util.resource.locatororg.apache.wicket.settings1 type1 typeorg.apache.wicket.core.util.resource.locator
org.apache.wicket.markuporg.apache.wicket.markup.parser7 types6 typesorg.apache.wicket.markup
org.apache.wicket.markup.parser.filterorg.apache.wicket.markup16 types10 typesorg.apache.wicket.markup.parser.filter
org.apache.wicket.settingsorg.apache.wicket.markup2 types1 typeorg.apache.wicket.settings
org.apache.wicket.markuporg.apache.wicket.markup.loader10 types2 typesorg.apache.wicket.markup
org.apache.wicket.markuporg.apache.wicket.markup.html.form4 types1 typeorg.apache.wicket.markup
org.apache.wicket.markup.renderStrategyorg.apache.wicket.markup.html.internal2 types2 typesorg.apache.wicket.markup.renderStrategy
org.apache.wicket.markup.renderStrategyorg.apache.wicket.markup.html2 types1 typeorg.apache.wicket.markup.renderStrategy
org.apache.wicket.settingsorg.apache.wicket.markup.resolver4 types1 typeorg.apache.wicket.settings
org.apache.wicket.markup.resolverorg.apache.wicket.protocol.http1 type1 typeorg.apache.wicket.markup.resolver
org.apache.wicket.markup.htmlorg.apache.wicket.markup.resolver3 types1 typeorg.apache.wicket.markup.html
org.apache.wicket.markup.resolverorg.apache.wicket.markup.parser.filter1 type1 typeorg.apache.wicket.markup.resolver
org.apache.wicket.markup.resolverorg.apache.wicket.markup.html.internal3 types1 typeorg.apache.wicket.markup.resolver
org.apache.wicket.markup.headorg.apache.wicket.request.resource1 type1 typeorg.apache.wicket.markup.head
org.apache.wicket.markup.headorg.apache.wicket.resource.bundles2 types1 typeorg.apache.wicket.markup.head
org.apache.wicket.settingsorg.apache.wicket.markup.head2 types1 typeorg.apache.wicket.settings
org.apache.wicket.markup.headorg.apache.wicket.markup.html2 types1 typeorg.apache.wicket.markup.head
org.apache.wicket.markup.headorg.apache.wicket.resource4 types1 typeorg.apache.wicket.markup.head
org.apache.wicket.settingsorg.apache.wicket.markup.html2 types1 typeorg.apache.wicket.settings
org.apache.wicket.protocol.httporg.apache.wicket.markup.html2 types1 typeorg.apache.wicket.protocol.http
org.apache.wicket.markup.htmlorg.apache.wicket.markup.html.internal2 types1 typeorg.apache.wicket.markup.html
org.apache.wicket.markup.htmlorg.apache.wicket.markup.html.link2 types1 typeorg.apache.wicket.markup.html
org.apache.wicket.markup.html.listorg.apache.wicket.markup.repeater2 types1 typeorg.apache.wicket.markup.html.list
org.apache.wicket.markup.html.listorg.apache.wicket.markup.html.navigation.paging2 types2 typesorg.apache.wicket.markup.html.list
org.apache.wicket.protocol.httporg.apache.wicket.markup.html.pages2 types1 typeorg.apache.wicket.protocol.http
org.apache.wicket.validationorg.apache.wicket.markup.html.form6 types1 typeorg.apache.wicket.validation
org.apache.wicket.markup.html.formorg.apache.wicket.markup.html.form.validation3 types2 typesorg.apache.wicket.markup.html.form
org.apache.wicket.markup.html.navigation.pagingorg.apache.wicket.markup.repeater2 types1 typeorg.apache.wicket.markup.html.navigation.paging
org.apache.wicket.model.utilorg.apache.wicket.model4 types2 typesorg.apache.wicket.model.util
org.apache.wicket.request.cycleorg.apache.wicket.protocol.http2 types1 typeorg.apache.wicket.request.cycle
org.apache.wicket.protocol.httporg.apache.wicket.request.handler.render2 types2 typesorg.apache.wicket.protocol.http
org.apache.wicket.request.resourceorg.apache.wicket.protocol.http4 types1 typeorg.apache.wicket.request.resource
org.apache.wicket.protocol.httporg.apache.wicket.protocol.http.servlet4 types4 typesorg.apache.wicket.protocol.http
org.apache.wicket.protocol.httporg.apache.wicket.protocol.http.request1 type1 typeorg.apache.wicket.protocol.http
org.apache.wicket.request.cycleorg.apache.wicket.request.resource1 type1 typeorg.apache.wicket.request.cycle
org.apache.wicket.request.resourceorg.apache.wicket.settings1 type1 typeorg.apache.wicket.request.resource
org.apache.wicket.request.resourceorg.apache.wicket.request.resource.caching2 types2 typesorg.apache.wicket.request.resource
org.apache.wicket.request.resource.cachingorg.apache.wicket.request.resource.caching.version1 type1 typeorg.apache.wicket.request.resource.caching
org.apache.wicket.resourceorg.apache.wicket.settings2 types2 typesorg.apache.wicket.resource
org.apache.wicket.util.templateorg.apache.wicket.resource2 types1 typeorg.apache.wicket.util.template
org.apache.wicket.resource.loaderorg.apache.wicket.settings1 type1 typeorg.apache.wicket.resource.loader
org.apache.wicket.response.filterorg.apache.wicket.settings1 type1 typeorg.apache.wicket.response.filter

Statistics

Stat   shouldntUse   typesOfFirstUsedBySecond   typesOfSecondUsedByFirst
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Avoid packages dependency cycles
// <Name>Avoid packages dependency cycles</Name>
warnif count > 0
// This query lists all application packages dependency cyles.
// Each row shows a different cycle, prefixed with a package entangled in the cycle.
//
// To browse a cycle on the dependency graph or the dependency matrix, just right click
// a cycle cell and export packages matched to the dependency graph or matrix!
//
// In the matrix, dependency cycles are represented with red squares and black cells.
// To browse easily dependency cycles, the Matrix comes with the option:
//   --> Display Direct and Indirect Dependencies
//



// Optimization: restreint application projects set
// If some packages are mutually dependent
//  - They must be declared in the same project
//  - The parent project must ContainsPackageDependencyCycle
from project in Application.Projects
                 
.Where(a => a.ContainsPackageDependencyCycle != null && 
                             
a.ContainsPackageDependencyCycle.Value)

// Optimization: restreint packages set
// A package involved in a cycle necessarily have a null Level.
let packagesSuspect = project.ChildPackages.Where(n => n.Level == null)

// hashset is used to avoid iterating again on packages already caught in a cycle.
let hashset = new HashSet<IPackage>()


from suspect in packagesSuspect
   
// By commenting this line, the query matches all packages involved in a cycle.
   where !hashset.Contains(suspect)

   
// Define 2 code metrics
   // - Packages depth of is using indirectly the suspect package.
   // - Packages depth of is used by the suspect package indirectly.
   // Note: for direct usage the depth is equal to 1.
   let packagesUserDepth = packagesSuspect.DepthOfIsUsing(suspect)
   
let packagesUsedDepth = packagesSuspect.DepthOfIsUsedBy(suspect)

   
// Select PACKAGES that are both using and used by packageSuspect
   let usersAndUsed = from n in packagesSuspect where 
                         
packagesUserDepth[n] > 0 && 
                         
packagesUsedDepth[n] > 0 
                      
select n

   
where usersAndUsed.Count() > 0

   
// Here we've found package(s) both using and used by the suspect package.
   // A cycle involving the suspect package is found!
   let cycle = usersAndUsed.Append(suspect)

   
// Fill hashset with packages in the cycle.
   // .ToArray() is needed to force the iterating process.
   let unused1 = (from n in cycle let unused2 = hashset.Add(n) select n).ToArray()

select new { suspect, cycle }

1 packages matched

packagecycleFull Name
org.apache.wicket74 packagesorg.apache.wicket

Statistics

Stat   cycle
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Projects with poor cohesion (RelationalCohesion)
// <Name>Projects with poor cohesion (RelationalCohesion)</Name>
warnif count > 0 from a in Application.Projects where 
  
a.NbTypes > 20 && // Relational Cohesion metrics is relevant only if there are several types 
  (a.RelationalCohesion < 1.5 || 
   
a.RelationalCohesion > 4.0)
select new { a, a.NbTypes, a.RelationalCohesion }

// As classes inside an project should be strongly related, 
// the cohesion should be high. On the other hand, a value 
// which is too high may indicate over-coupling. A good range 
// for RelationalCohesion is 1.5 to 4.0.
// See the definition of the RelationalCohesion metric here 
// http://www.jarchitect.com/Metrics.aspx#RelationalCohesion

1 projects matched

project# TypesRelational cohesionFull Name
wicket-core1 1904.17wicket-core

Statistics

Stat   # Types   Relational cohesion
Sum:1 1904.17
Average:1 1904.17
Minimum:1 1904.17
Maximum:1 1904.17
Standard deviation:00
Variance:00

370
Best Practices  

warningCritical    Critical Rule warning: Prefer primitive types to boxed primitives
// <Name>Prefer primitive types to boxed primitives</Name>
warnif count > 0 

let BoxedTypes = ThirdParty.Types.WithFullNameIn(
   
"java.lang.Integer",
   
"java.lang.Double",
   
"java.lang.Boolean")

from m in Application.Methods.UsingAny(BoxedTypes)
select m

//Use primitives in preference to boxed primitives whenever you
//have the choice. Primitive types are simpler and faster. If you must use boxed
//primitives, be careful! Autoboxing reduces the verbosity, but not the danger, of
//using boxed primitives. When your program compares two boxed primitives
//with the == operator, it does an identity comparison, which is almost certainly not
//what you want.

174 methods matched

methodsFull Name
urlFor(Behavior,RequestListenerInterface,PageParameters)org.apache.wicket.Component.urlFor(Behavior,RequestListenerInterface ,PageParameters)
getMarkupIdImpl()org.apache.wicket.Component.getMarkupIdImpl()
getMarkupId(boolean)org.apache.wicket.Component.getMarkupId(boolean)
setMarkupIdImpl(Object)org.apache.wicket.Component.setMarkupIdImpl(Object)
ConverterLocator()org.apache.wicket.ConverterLocator.ConverterLocator()
toString()org.apache.wicket.MetaDataEntry.toString()
component(Component,IVisit)org.apache.wicket.Page$3.component(Component,IVisit)
isPageStateless()org.apache.wicket.Page.isPageStateless()
getId()org.apache.wicket.Page.getId()
peekPageStateless()org.apache.wicket.Page.peekPageStateless()
onBeforeRender()org.apache.wicket.Page.onBeforeRender()
resolveClass(String)org.apache.wicket.application.AbstractClassResolver.resolveClass (String)
InvalidBehaviorIdException(Component,int)org.apache.wicket.behavior.InvalidBehaviorIdException .InvalidBehaviorIdException(Component,int)
getLevelAsString()org.apache.wicket.feedback.FeedbackMessage.getLevelAsString()
FeedbackMessage()org.apache.wicket.feedback.FeedbackMessage.FeedbackMessage()
FencedFeedbackPanel(String,Component,IFeedbackMessageFilter)org.apache.wicket.feedback.FencedFeedbackPanel.FencedFeedbackPanel (String,Component,IFeedbackMessageFilter)
onRemove()org.apache.wicket.feedback.FencedFeedbackPanel.onRemove()
getPage(int)org.apache.wicket.mock.MockPageManager.getPage(int)
touchPage(IManageablePage)org.apache.wicket.mock.MockPageManager.touchPage(IManageablePage)
setStatus(int)org.apache.wicket.mock.MockWebResponse.setStatus(int)
sendError(int,String)org.apache.wicket.mock.MockWebResponse.sendError(int,String)
lockPage(int)org.apache.wicket.page.PageAccessSynchronizer.lockPage(int)
unlockPage(int)org.apache.wicket.page.PageAccessSynchronizer.unlockPage(int)
internalUnlockPages(Integer)org.apache.wicket.page.PageAccessSynchronizer.internalUnlockPages (Integer)
isBookmarkable(Class)org.apache.wicket.session.DefaultPageFactory.isBookmarkable(Class)
getPageId()org.apache.wicket.ajax.AjaxRequestHandler.getPageId()
getRenderCount()org.apache.wicket.ajax.AjaxRequestHandler.getRenderCount()
toJSONObject(String)org.apache.wicket.ajax.json.Cookie.toJSONObject(String)
getBoolean(int)org.apache.wicket.ajax.json.JSONArray.getBoolean(int)
getDouble(int)org.apache.wicket.ajax.json.JSONArray.getDouble(int)
getInt(int)org.apache.wicket.ajax.json.JSONArray.getInt(int)
put(boolean)org.apache.wicket.ajax.json.JSONArray.put(boolean)
put(double)org.apache.wicket.ajax.json.JSONArray.put(double)
put(int)org.apache.wicket.ajax.json.JSONArray.put(int)
put(int,boolean)org.apache.wicket.ajax.json.JSONArray.put(int,boolean)
put(int,double)org.apache.wicket.ajax.json.JSONArray.put(int,double)
put(int,int)org.apache.wicket.ajax.json.JSONArray.put(int,int)
put(String,boolean)org.apache.wicket.ajax.json.JSONObject.put(String,boolean)
testValidity(Object)org.apache.wicket.ajax.json.JSONObject.testValidity(Object)
doubleToString(double)org.apache.wicket.ajax.json.JSONObject.doubleToString(double)
getBoolean(String)org.apache.wicket.ajax.json.JSONObject.getBoolean(String)
getDouble(String)org.apache.wicket.ajax.json.JSONObject.getDouble(String)
getInt(String)org.apache.wicket.ajax.json.JSONObject.getInt(String)
increment(String)org.apache.wicket.ajax.json.JSONObject.increment(String)
put(String,int)org.apache.wicket.ajax.json.JSONObject.put(String,int)
put(String,double)org.apache.wicket.ajax.json.JSONObject.put(String,double)
quote(String,Writer)org.apache.wicket.ajax.json.JSONObject.quote(String,Writer)
stringToValue(String)org.apache.wicket.ajax.json.JSONObject.stringToValue(String)
nextString(char)org.apache.wicket.ajax.json.JSONTokener.nextString(char)
key(String)org.apache.wicket.ajax.json.JSONWriter.key(String)
value(double)org.apache.wicket.ajax.json.JSONWriter.value(double)
stringToValue(String)org.apache.wicket.ajax.json.XML.stringToValue(String)
nextMeta()org.apache.wicket.ajax.json.XMLTokener.nextMeta()
getPageInfo(IPageRequestHandler)org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper .getPageInfo(IPageRequestHandler)
next()org.apache.wicket.core.request.mapper .CryptoMapper$HashedSegmentGenerator.next()
mapHandler(IRequestHandler)org.apache.wicket.core.request.mapper.MountedMapper.mapHandler (IRequestHandler)
mapRequest(Request)org.apache.wicket.core.request.mapper.PageInstanceMapper.mapRequest (Request)
mapHandler(IRequestHandler)org.apache.wicket.core.request.mapper.PageInstanceMapper.mapHandler (IRequestHandler)
invokeListener()org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler .invokeListener()
PageAndComponentProvider(int,Class,Integer,String)org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(int,Class,Integer,String)
PageAndComponentProvider(int,Integer,String)org.apache.wicket.core.request.handler.PageAndComponentProvider .PageAndComponentProvider(int,Integer,String)
PageProvider(IRequestablePage)org.apache.wicket.core.request.handler.PageProvider.PageProvider (IRequestablePage)
resolvePageInstance(Integer,Class,PageParameters,Integer)org.apache.wicket.core.request.handler.PageProvider .resolvePageInstance(Integer,Class,PageParameters,Integer)
isNewPageInstance()org.apache.wicket.core.request.handler.PageProvider.isNewPageInstance( )
getStoredPage(int)org.apache.wicket.core.request.handler.PageProvider.getStoredPage(int)
hasPageInstance()org.apache.wicket.core.request.handler.PageProvider.hasPageInstance()
ListenerInterfaceLogData(IPageAndComponentProvider ,RequestListenerInterface,Integer)org.apache.wicket.core.request.handler.logger.ListenerInterfaceLogData .ListenerInterfaceLogData(IPageAndComponentProvider ,RequestListenerInterface,Integer)
PageLogData(Page)org.apache.wicket.core.request.handler.logger.PageLogData.PageLogData (Page)
getValue(Object)org.apache.wicket.core.util.lang.PropertyResolver$ArrayLengthGetSet .getValue(Object)
getTargetClass()org.apache.wicket.core.util.lang.PropertyResolver$ArrayLengthGetSet .getTargetClass()
PropertyResolver$ArrayPropertyGetSet(Method,int)org.apache.wicket.core.util.lang.PropertyResolver$ArrayPropertyGetSet .PropertyResolver$ArrayPropertyGetSet(Method,int)
findSetter(Method,Class)org.apache.wicket.core.util.lang.PropertyResolver$ArrayPropertyGetSet .findSetter(Method,Class)
getGetAndSetter(String,Class)org.apache.wicket.core.util.lang.PropertyResolver.getGetAndSetter (String,Class)
internalCheck(Object)org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .internalCheck(Object)
checkFields(Object,ObjectStreamClass)org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .checkFields(Object,ObjectStreamClass)
CheckingObjectOutputStream()org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .CheckingObjectOutputStream()
resolveAutomaticLink(AutoLinkResolver$PathInfo,String,ComponentTag)org.apache.wicket.markup.resolver.AutoLinkResolver .resolveAutomaticLink(AutoLinkResolver$PathInfo,String,ComponentTag)
acceptAbsolutePath(String)org.apache.wicket.markup.html.SecurePackageResourceGuard .acceptAbsolutePath(String)
next()org.apache.wicket.markup.html.list.ListView$4.next()
onPopulate()org.apache.wicket.markup.html.list.ListView.onPopulate()
next()org.apache.wicket.markup.html.list.Loop$1.next()
Loop(String,int)org.apache.wicket.markup.html.list.Loop.Loop(String,int)
getIterations()org.apache.wicket.markup.html.list.Loop.getIterations()
merge(ClientProperties)org.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean.merge(ClientProperties)
BrowserInfoForm$ClientPropertiesBean()org.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean .BrowserInfoForm$ClientPropertiesBean()
getInt(String)org.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean.getInt(String)
convertToObject(String,Locale)org.apache.wicket.markup.html.form.CheckBox$CheckBoxConverter .convertToObject(String,Locale)
convertToString(Boolean,Locale)org.apache.wicket.markup.html.form.CheckBox$CheckBoxConverter .convertToString(Boolean,Locale)
onComponentTag(ComponentTag)org.apache.wicket.markup.html.form.CheckBox.onComponentTag (ComponentTag)
getIdValue(Object,int)org.apache.wicket.markup.html.form.ChoiceRenderer.getIdValue(Object ,int)
component(Component,IVisit)org.apache.wicket.markup.html.form.Form$10.component(Component,IVisit)
component(Component,IVisit)org.apache.wicket.markup.html.form.Form$7.component(Component,IVisit)
isMultiPart()org.apache.wicket.markup.html.form.Form.isMultiPart()
anyFormComponentError()org.apache.wicket.markup.html.form.Form.anyFormComponentError()
component(FormComponent,IVisit)org.apache.wicket.markup.html.form.FormComponent$1IsValidVisitor .component(FormComponent,IVisit)
isValid()org.apache.wicket.markup.html.form.FormComponent.isValid()
inputAsInt()org.apache.wicket.markup.html.form.FormComponent.inputAsInt()
inputAsInt(int)org.apache.wicket.markup.html.form.FormComponent.inputAsInt(int)
inputAsIntArray()org.apache.wicket.markup.html.form.FormComponent.inputAsIntArray()
isRetainDisabledSelected()org.apache.wicket.markup.html.form.ListMultipleChoice .isRetainDisabledSelected()

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Critical Rule warning: Always override hashcode when you override equals
// <Name>Always override hashcode when you override equals</Name>
warnif count > 0 
from t in Types where !t.IsThirdParty && t.Methods.Where(a=>a.Name=="equals(Object)").Count()>0
&& t.Methods.Where(a=>a.Name=="hashCode()").Count()==0
select t


1 types matched

typeFull Name
JSONObject$Nullorg.apache.wicket.ajax.json.JSONObject$Null

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Critical Rule warning: Always override toString
// <Name>Always override toString</Name>
warnif count > 0 
from t in Types where !t.IsThirdParty &&  t.IsClass && t.Methods.Where(a=>a.Name=="toString()").Count()==0
select t

//While java.lang.Object provides an implementation of the toString method,
//the string that it returns is generally not what the user of your class wants to see. I

911 types matched

typesFull Name
Application$1org.apache.wicket.Application$1
Application$2org.apache.wicket.Application$2
Application$3org.apache.wicket.Application$3
Application$DefaultExceptionMapperProviderorg.apache.wicket.Application$DefaultExceptionMapperProvider
Application$DefaultRequestCycleProviderorg.apache.wicket.Application$DefaultRequestCycleProvider
Applicationorg.apache.wicket.Application
ApplicationListenerCollection$1org.apache.wicket.ApplicationListenerCollection$1
ApplicationListenerCollection$2org.apache.wicket.ApplicationListenerCollection$2
ApplicationListenerCollectionorg.apache.wicket.ApplicationListenerCollection
AttributeModifier$1org.apache.wicket.AttributeModifier$1
BehaviorInstantiationListenerCollection$1org.apache.wicket.BehaviorInstantiationListenerCollection$1
BehaviorInstantiationListenerCollectionorg.apache.wicket.BehaviorInstantiationListenerCollection
Behaviors$BehaviorIdListorg.apache.wicket.Behaviors$BehaviorIdList
Behaviorsorg.apache.wicket.Behaviors
Component$1org.apache.wicket.Component$1
Component$2org.apache.wicket.Component$2
Component$3org.apache.wicket.Component$3
Component$4org.apache.wicket.Component$4
Component$5org.apache.wicket.Component$5
Component$6org.apache.wicket.Component$6
Component$7org.apache.wicket.Component$7
ComponentEvent<T>org.apache.wicket.ComponentEvent
ComponentEventSender$1org.apache.wicket.ComponentEventSender$1
ComponentEventSender$ComponentEventVisitor<T>org.apache.wicket.ComponentEventSender$ComponentEventVisitor
ComponentEventSenderorg.apache.wicket.ComponentEventSender
ConverterLocator$1org.apache.wicket.ConverterLocator$1
ConverterLocator$DefaultConverter<C>org.apache.wicket.ConverterLocator$DefaultConverter
ConverterLocatororg.apache.wicket.ConverterLocator
DefaultExceptionMapper$1org.apache.wicket.DefaultExceptionMapper$1
DefaultExceptionMapperorg.apache.wicket.DefaultExceptionMapper
DefaultMapperContextorg.apache.wicket.DefaultMapperContext
DefaultPageManagerProviderorg.apache.wicket.DefaultPageManagerProvider
Localizer$1org.apache.wicket.Localizer$1
Localizer$ClassMetaDatabaseorg.apache.wicket.Localizer$ClassMetaDatabase
Localizerorg.apache.wicket.Localizer
MarkupContainer$1org.apache.wicket.MarkupContainer$1
MarkupContainer$2org.apache.wicket.MarkupContainer$2
MarkupContainer$3org.apache.wicket.MarkupContainer$3
MarkupContainer$4org.apache.wicket.MarkupContainer$4
MarkupContainer$5org.apache.wicket.MarkupContainer$5
MarkupContainer$6org.apache.wicket.MarkupContainer$6
MarkupContainer$ChildListorg.apache.wicket.MarkupContainer$ChildList
NonResettingRestartExceptionorg.apache.wicket.NonResettingRestartException
Page$1org.apache.wicket.Page$1
Page$2org.apache.wicket.Page$2
Page$3org.apache.wicket.Page$3
Page$4org.apache.wicket.Page$4
Page$5org.apache.wicket.Page$5
PageReferenceorg.apache.wicket.PageReference
ResourceBundlesorg.apache.wicket.ResourceBundles
RestartResponseAtInterceptPageException$1org.apache.wicket.RestartResponseAtInterceptPageException$1
RestartResponseAtInterceptPageException$InterceptData$1org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData$1
RestartResponseAtInterceptPageException$InterceptDataorg.apache.wicket .RestartResponseAtInterceptPageException$InterceptData
RestartResponseAtInterceptPageExceptionorg.apache.wicket.RestartResponseAtInterceptPageException
RestartResponseExceptionorg.apache.wicket.RestartResponseException
Session$1org.apache.wicket.Session$1
Session$PageAccessSynchronizerProviderorg.apache.wicket.Session$PageAccessSynchronizerProvider
Sessionorg.apache.wicket.Session
SessionListenerCollection$1org.apache.wicket.SessionListenerCollection$1
SessionListenerCollectionorg.apache.wicket.SessionListenerCollection
SharedResources$1org.apache.wicket.SharedResources$1
SharedResources$AutoResourceReferenceorg.apache.wicket.SharedResources$AutoResourceReference
SharedResourcesorg.apache.wicket.SharedResources
SystemMapper$1org.apache.wicket.SystemMapper$1
SystemMapper$HomePageProvider<C>org.apache.wicket.SystemMapper$HomePageProvider
SystemMapper$ParentFolderPlaceholderProviderorg.apache.wicket.SystemMapper$ParentFolderPlaceholderProvider
SystemMapperorg.apache.wicket.SystemMapper
ThreadContextorg.apache.wicket.ThreadContext
WicketRuntimeExceptionorg.apache.wicket.WicketRuntimeException
AbstractClassResolverorg.apache.wicket.application.AbstractClassResolver
ComponentInitializationListenerCollection$1org.apache.wicket.application .ComponentInitializationListenerCollection$1
ComponentInitializationListenerCollectionorg.apache.wicket.application .ComponentInitializationListenerCollection
ComponentInstantiationListenerCollection$1org.apache.wicket.application .ComponentInstantiationListenerCollection$1
ComponentInstantiationListenerCollectionorg.apache.wicket.application.ComponentInstantiationListenerCollection
ComponentOnAfterRenderListenerCollection$1org.apache.wicket.application .ComponentOnAfterRenderListenerCollection$1
ComponentOnAfterRenderListenerCollectionorg.apache.wicket.application.ComponentOnAfterRenderListenerCollection
ComponentOnBeforeRenderListenerCollection$1org.apache.wicket.application .ComponentOnBeforeRenderListenerCollection$1
ComponentOnBeforeRenderListenerCollectionorg.apache.wicket.application .ComponentOnBeforeRenderListenerCollection
CompoundClassResolverorg.apache.wicket.application.CompoundClassResolver
DefaultClassResolverorg.apache.wicket.application.DefaultClassResolver
HeaderContributorListenerCollection$1org.apache.wicket.application.HeaderContributorListenerCollection$1
HeaderContributorListenerCollectionorg.apache.wicket.application.HeaderContributorListenerCollection
ReloadingClassLoader$1org.apache.wicket.application.ReloadingClassLoader$1
ReloadingClassLoaderorg.apache.wicket.application.ReloadingClassLoader
WildcardMatcherHelper$Matcherorg.apache.wicket.application.WildcardMatcherHelper$Matcher
WildcardMatcherHelperorg.apache.wicket.application.WildcardMatcherHelper
AbstractAjaxBehaviororg.apache.wicket.behavior.AbstractAjaxBehavior
Behaviororg.apache.wicket.behavior.Behavior
InvalidBehaviorIdExceptionorg.apache.wicket.behavior.InvalidBehaviorIdException
ComponentFeedbackMessageFilterorg.apache.wicket.feedback.ComponentFeedbackMessageFilter
ContainerFeedbackMessageFilterorg.apache.wicket.feedback.ContainerFeedbackMessageFilter
DefaultCleanupFeedbackMessageFilterorg.apache.wicket.feedback.DefaultCleanupFeedbackMessageFilter
ErrorLevelFeedbackMessageFilterorg.apache.wicket.feedback.ErrorLevelFeedbackMessageFilter
FeedbackCollector$1org.apache.wicket.feedback.FeedbackCollector$1
FeedbackCollectororg.apache.wicket.feedback.FeedbackCollector
FeedbackMessagesModelorg.apache.wicket.feedback.FeedbackMessagesModel
FencedFeedbackPanel$1org.apache.wicket.feedback.FencedFeedbackPanel$1
FencedFeedbackPanel$2$1org.apache.wicket.feedback.FencedFeedbackPanel$2$1
FencedFeedbackPanel$2$2org.apache.wicket.feedback.FencedFeedbackPanel$2$2
FencedFeedbackPanel$2org.apache.wicket.feedback.FencedFeedbackPanel$2

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Critical Rule warning: Prefer interfaces to abstract classes
// <Name>Prefer interfaces to abstract classes</Name>
warnif count > 0 
from t in Types where !t.IsThirdParty &&  t.IsAbstract
select t


114 types matched

typesFull Name
Applicationorg.apache.wicket.Application
Componentorg.apache.wicket.Component
MarkupContainerorg.apache.wicket.MarkupContainer
MetaDataKey<T>org.apache.wicket.MetaDataKey
Pageorg.apache.wicket.Page
Sessionorg.apache.wicket.Session
AbstractClassResolverorg.apache.wicket.application.AbstractClassResolver
AbstractAjaxBehaviororg.apache.wicket.behavior.AbstractAjaxBehavior
Behaviororg.apache.wicket.behavior.Behavior
AbstractPageManagerorg.apache.wicket.page.AbstractPageManager
RequestAdapterorg.apache.wicket.page.RequestAdapter
AbstractAjaxResponseorg.apache.wicket.ajax.AbstractAjaxResponse
AbstractAjaxTimerBehaviororg.apache.wicket.ajax.AbstractAjaxTimerBehavior
AbstractDefaultAjaxBehaviororg.apache.wicket.ajax.AbstractDefaultAjaxBehavior
AjaxEventBehaviororg.apache.wicket.ajax.AjaxEventBehavior
AjaxNewWindowNotifyingBehaviororg.apache.wicket.ajax.AjaxNewWindowNotifyingBehavior
XmlAjaxResponseorg.apache.wicket.ajax.XmlAjaxResponse
AjaxFormChoiceComponentUpdatingBehaviororg.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior
AjaxFormComponentUpdatingBehaviororg.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior
AjaxFormSubmitBehaviororg.apache.wicket.ajax.form.AjaxFormSubmitBehavior
OnChangeAjaxBehaviororg.apache.wicket.ajax.form.OnChangeAjaxBehavior
AjaxFallbackLink<T>org.apache.wicket.ajax.markup.html.AjaxFallbackLink
AjaxLink<T>org.apache.wicket.ajax.markup.html.AjaxLink
AjaxButtonorg.apache.wicket.ajax.markup.html.form.AjaxButton
AjaxCheckBoxorg.apache.wicket.ajax.markup.html.form.AjaxCheckBox
AjaxFallbackButtonorg.apache.wicket.ajax.markup.html.form.AjaxFallbackButton
AjaxSubmitLinkorg.apache.wicket.ajax.markup.html.form.AjaxSubmitLink
AuthorizationExceptionorg.apache.wicket.authorization.AuthorizationException
AbstractPageAuthorizationStrategyorg.apache.wicket.authorization.strategies.page .AbstractPageAuthorizationStrategy
SimplePageAuthorizationStrategyorg.apache.wicket.authorization.strategies.page .SimplePageAuthorizationStrategy
ClientInfoorg.apache.wicket.core.request.ClientInfo
AbstractBookmarkableMapperorg.apache.wicket.core.request.mapper.AbstractBookmarkableMapper
AbstractComponentMapperorg.apache.wicket.core.request.mapper.AbstractComponentMapper
AbstractResourceReferenceMapperorg.apache.wicket.core.request.mapper.AbstractResourceReferenceMapper
PropertyResolver$AbstractGetAndSetorg.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet
AbstractObjectCheckerorg.apache.wicket.core.util.objects.checker.AbstractObjectChecker
CheckingObjectOutputStream$ObjectOutputAdaptororg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$ObjectOutputAdaptor
AbstractResourceStreamReferenceorg.apache.wicket.core.util.resource.locator.caching .AbstractResourceStreamReference
AbstractMarkupParserorg.apache.wicket.markup.AbstractMarkupParser
MarkupElementorg.apache.wicket.markup.MarkupElement
AbstractHeaderRenderStrategyorg.apache.wicket.markup.renderStrategy.AbstractHeaderRenderStrategy
DeepChildFirstVisitororg.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor
AutoLinkResolver$AbstractAutolinkResolverDelegateorg.apache.wicket.markup.resolver .AutoLinkResolver$AbstractAutolinkResolverDelegate
AbstractOutputTransformerContainerorg.apache.wicket.markup.transformer .AbstractOutputTransformerContainer
AbstractTransformerBehaviororg.apache.wicket.markup.transformer.AbstractTransformerBehavior
CssHeaderItemorg.apache.wicket.markup.head.CssHeaderItem
HeaderItemorg.apache.wicket.markup.head.HeaderItem
JavaScriptHeaderItemorg.apache.wicket.markup.head.JavaScriptHeaderItem
AbstractHeaderResponseFilterorg.apache.wicket.markup.head.filter.AbstractHeaderResponseFilter
HeaderResponseorg.apache.wicket.markup.head.internal.HeaderResponse
DecoratingHeaderResponseorg.apache.wicket.markup.html.DecoratingHeaderResponse
Borderorg.apache.wicket.markup.html.border.Border
BorderPanelorg.apache.wicket.markup.html.border.BorderPanel
ResponseBufferZoneorg.apache.wicket.markup.html.internal.ResponseBufferZone
AbstractLinkorg.apache.wicket.markup.html.link.AbstractLink
Link<T>org.apache.wicket.markup.html.link.Link
StatelessLink<T>org.apache.wicket.markup.html.link.StatelessLink
ListView<T>org.apache.wicket.markup.html.list.ListView
Looporg.apache.wicket.markup.html.list.Loop
PageableListView<T>org.apache.wicket.markup.html.list.PageableListView
PropertyListView<T>org.apache.wicket.markup.html.list.PropertyListView
AbstractErrorPageorg.apache.wicket.markup.html.pages.AbstractErrorPage
AbstractMarkupSourcingStrategyorg.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy
AssociatedMarkupSourcingStrategyorg.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy
Panelorg.apache.wicket.markup.html.panel.Panel
AbstractCheckSelectororg.apache.wicket.markup.html.form.AbstractCheckSelector
AbstractChoice<T,E>org.apache.wicket.markup.html.form.AbstractChoice
AbstractSingleSelectChoice<T>org.apache.wicket.markup.html.form.AbstractSingleSelectChoice
AbstractSubmitLinkorg.apache.wicket.markup.html.form.AbstractSubmitLink
AbstractTextComponent<T>org.apache.wicket.markup.html.form.AbstractTextComponent
Form$ValidationVisitororg.apache.wicket.markup.html.form.Form$ValidationVisitor
FormComponent<T>org.apache.wicket.markup.html.form.FormComponent
FormComponentPanel<T>org.apache.wicket.markup.html.form.FormComponentPanel
LabeledWebMarkupContainerorg.apache.wicket.markup.html.form.LabeledWebMarkupContainer
AbstractFormValidatororg.apache.wicket.markup.html.form.validation.AbstractFormValidator
BlobImageResourceorg.apache.wicket.markup.html.image.resource.BlobImageResource
RenderedDynamicImageResourceorg.apache.wicket.markup.html.image.resource .RenderedDynamicImageResource
AbstractMarkupFilterorg.apache.wicket.markup.parser.AbstractMarkupFilter
AbstractPageableView<T>org.apache.wicket.markup.repeater.AbstractPageableView
AbstractRepeaterorg.apache.wicket.markup.repeater.AbstractRepeater
RefreshingView<T>org.apache.wicket.markup.repeater.RefreshingView
DataView<T>org.apache.wicket.markup.repeater.data.DataView
DataViewBase<T>org.apache.wicket.markup.repeater.data.DataViewBase
GridView<T>org.apache.wicket.markup.repeater.data.GridView
ArrayIteratorAdapter<T>org.apache.wicket.markup.repeater.util.ArrayIteratorAdapter
ModelIteratorAdapter<T>org.apache.wicket.markup.repeater.util.ModelIteratorAdapter
AbstractPropertyModel<T>org.apache.wicket.model.AbstractPropertyModel
AbstractReadOnlyModel<T>org.apache.wicket.model.AbstractReadOnlyModel
AbstractWrapModel<T>org.apache.wicket.model.AbstractWrapModel
ChainingModel<T>org.apache.wicket.model.ChainingModel
LoadableDetachableModel<T>org.apache.wicket.model.LoadableDetachableModel
GenericBaseModel<T>org.apache.wicket.model.util.GenericBaseModel
AbstractRequestLoggerorg.apache.wicket.protocol.http.AbstractRequestLogger
BufferedWebResponse$Actionorg.apache.wicket.protocol.http.BufferedWebResponse$Action
BufferedWebResponse$MetaDataActionorg.apache.wicket.protocol.http.BufferedWebResponse$MetaDataAction
WebApplicationorg.apache.wicket.protocol.http.WebApplication
AbstractRequestWrapperFactoryorg.apache.wicket.protocol.http.servlet.AbstractRequestWrapperFactory
MultipartServletWebRequestorg.apache.wicket.protocol.http.servlet.MultipartServletWebRequest
AbstractRequestCycleListenerorg.apache.wicket.request.cycle.AbstractRequestCycleListener
PageRendererorg.apache.wicket.request.handler.render.PageRenderer

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Critical Rule warning: Use interfaces only to define types
// <Name>Use interfaces only to define types</Name>
warnif count > 0 
from t in Types where !t.IsThirdParty &&  t.IsInterface && t.NbMethods==0
select t


4 types matched

typesFull Name
IRequestListenerorg.apache.wicket.IRequestListener
IFeedbackorg.apache.wicket.feedback.IFeedback
DocumentElementorg.apache.wicket.protocol.http.documentvalidation.DocumentElement
INullAcceptingValidator<T>org.apache.wicket.validation.INullAcceptingValidator

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Critical Rule warning: Avoid using raw types
// <Name>Avoid using raw types</Name>
warnif count > 0 

let rawTypes = ThirdParty.Types.WithFullNameIn(
  
"java.util.Collection")

from m in Application.Methods.UsingAny(rawTypes)
select m



22 methods matched

methodsFull Name
internalUnlockPages(Integer)org.apache.wicket.page.PageAccessSynchronizer.internalUnlockPages (Integer)
detach(IRequestCycle)org.apache.wicket.ajax.AbstractAjaxResponse.detach(IRequestCycle)
containsPage()org.apache.wicket.ajax.AbstractAjaxResponse.containsPage()
writeEvaluations(Response,String,Collection)org.apache.wicket.ajax.XmlAjaxResponse.writeEvaluations(Response ,String,Collection)
JSONArray(Collection)org.apache.wicket.ajax.json.JSONArray.JSONArray(Collection)
getBehaviors()org.apache.wicket.markup.ComponentTag.getBehaviors()
removeMarkupWhereBaseMarkupIsNoLongerInTheCache()org.apache.wicket.markup.MarkupCache .removeMarkupWhereBaseMarkupIsNoLongerInTheCache()
onComponentTag(ComponentTag)org.apache.wicket.markup.html.form.Check.onComponentTag(ComponentTag)
component(Check,IVisit)org.apache.wicket.markup.html.form.CheckGroup$1.component(Check,IVisit )
updateCollectionModel(FormComponent)<S>org.apache.wicket.markup.html.form.FormComponent.updateCollectionModel (FormComponent)<S>
getModelValue()org.apache.wicket.markup.html.form.ListMultipleChoice.getModelValue()
addRetainedDisabled(ArrayList)org.apache.wicket.markup.html.form.ListMultipleChoice .addRetainedDisabled(ArrayList)
convertValue(String[])org.apache.wicket.markup.html.form.upload.MultiFileUploadField .convertValue(String[])
onDetach()org.apache.wicket.markup.html.form.upload.MultiFileUploadField .onDetach()
getLiveSessions()org.apache.wicket.protocol.http.AbstractRequestLogger.getLiveSessions( )
isCookiesEnabled()org.apache.wicket.protocol.http.ClientProperties.isCookiesEnabled()
loadStringResource(Form,String,Locale,String,String)org.apache.wicket.resource.loader.ValidatorStringResourceLoader .loadStringResource(Form,String,Locale,String,String)
replaceFilterSet(Collection)org.apache.wicket.util.iterator.AbstractHierarchyIteratorWithFilter .replaceFilterSet(Collection)
executeListener(Component)org.apache.wicket.util.tester.BaseWicketTester.executeListener (Component)
assertEquals(Collection,Collection)org.apache.wicket.util.tester.WicketTesterHelper.assertEquals (Collection,Collection)
asLined(Collection)org.apache.wicket.util.tester.WicketTesterHelper.asLined(Collection)
failWithVerboseMessage(Collection,Collection)org.apache.wicket.util.tester.WicketTesterHelper .failWithVerboseMessage(Collection,Collection)

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Critical Rule warning: Do not raise generic exception
// <Name>Do not raise generic exception</Name>
warnif count > 0  from m in Methods 
let depth0 = m.DepthOfCreateA("java.lang.Exception".AllowNoMatch())
where depth0  == 1
select new { m, depth0 }



2 methods matched

methodsdepth0Full Name
JSONException(String)1org.apache.wicket.ajax.json.JSONException.JSONException(String)
JSONException(Throwable)1org.apache.wicket.ajax.json.JSONException.JSONException(Throwable)

Statistics

Stat   depth0
Sum:2
Average:1
Minimum:1
Maximum:1
Standard deviation:0
Variance:0

030
Dead Code  

warningCritical    Rule warning: Potentially dead Types
// <Name>Potentially dead Types</Name>
warnif count > 0
// Filter procedure for types that should'nt be considered as dead
let canTypeBeConsideredAsDeadProc = new Func<IType, bool>(
   
t => !t.IsPublic && //   Public types might be used by client applications of your projects.
         t.Name != "Program" && 
        
!t.IsGeneratedByCompiler 
        
)

// Select types unused
let typesUnused = 
   
from t in JustMyCode.Types where
   
t.NbTypesUsingMe == 0 && canTypeBeConsideredAsDeadProc(t)
   
select t

// Dead types = types used only by unused types (recursive)
let deadTypesMetric = typesUnused.FillIterative(
types => from t in codeBase.Application.Types.UsedByAny(types).Except(types)
         
where canTypeBeConsideredAsDeadProc(t) &&
               
t.TypesUsingMe.Intersect(types).Count() == t.NbTypesUsingMe
         
select t)

from t in deadTypesMetric.DefinitionDomain
select new { t, t.TypesUsingMe, depth = deadTypesMetric[t] }

2 types matched

typesTypesUsingMedepthFull Name
BufferedHttpServletResponse0 type0org.apache.wicket.protocol.http.BufferedHttpServletResponse
BufferedWebResponse$CloseAction0 type0org.apache.wicket.protocol.http.BufferedWebResponse$CloseAction

Statistics

Stat   TypesUsingMe   depth
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Potentially dead Methods
// <Name>Potentially dead Methods</Name>
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
    
m => !m.IsPubliclyVisible &&       // Public methods might be used by client applications of your projects.
         !m.IsEntryPoint &&            // Main() method is not used by-design.
         !m.IsClassConstructor &&      // The BC code never explicitely calls class constructors.
         !(m.IsConstructor &&          // Don't take account of protected ctor that might be call by a derived ctors.
           m.IsProtected) &&
         
!m.IsGeneratedByCompiler)

// Get methods unused
let methodsUnused = 
   
from m in JustMyCode.Methods where 
   
m.NbMethodsCallingMe == 0 && 
   
canMethodBeConsideredAsDeadProc(m)
   
select m

// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
   
methods => // Unique loop, just to let a chance to build the hashset.
              from o in (new object()).ToEnumerable()
              
// Use a hashet to make Intersect calls much faster!
              let hashset = methods.ToHashSet()
              
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
              
where canMethodBeConsideredAsDeadProc(m) &&
                    
// Select methods called only by methods already considered as dead
                    hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
              
select m)

from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }

471 methods matched

methodsMethodsCallingMedepthFull Name
onInstantiation(Component)0 method0org.apache.wicket.Application$1.onInstantiation(Component)
onDetach(RequestCycle)0 method0org.apache.wicket.Application$2.onDetach(RequestCycle)
onEndRequest(RequestCycle)0 method0org.apache.wicket.Application$2.onEndRequest(RequestCycle)
newValue(String,String)0 method0org.apache.wicket.AttributeModifier$1.newValue(String,String)
compare(Component,Object)0 method0org.apache.wicket.Component$3.compare(Component,Object)
getSource()0 method0org.apache.wicket.ComponentEvent.getSource()
getType()0 method0org.apache.wicket.ComponentEvent.getType()
getPayload()0 method0org.apache.wicket.ComponentEvent.getPayload()
dontBroadcastDeeper()0 method0org.apache.wicket.ComponentEvent.dontBroadcastDeeper()
stop()0 method0org.apache.wicket.ComponentEvent.stop()
convertToObject(String,Locale)0 method0org.apache.wicket.ConverterLocator$DefaultConverter.convertToObject (String,Locale)
convertToString(Object,Locale)0 method0org.apache.wicket.ConverterLocator$DefaultConverter.convertToString (Object,Locale)
hasNext()0 method0org.apache.wicket.MarkupContainer$1.hasNext()
remove()0 method0org.apache.wicket.MarkupContainer$1.remove()
size()0 method0org.apache.wicket.MarkupContainer$ChildList.size()
add(int,Object)0 method0org.apache.wicket.MarkupContainer$ChildList.add(int,Object)
createAndAddComponentsForWicketTags()0 method0org.apache.wicket.MarkupContainer.createAndAddComponentsForWicketTags( )
getCompatibilityScore(Request)0 method0org.apache.wicket.RestartResponseAtInterceptPageException$1 .getCompatibilityScore(Request)
matchedData(Request)2 methods1org.apache.wicket.RestartResponseAtInterceptPageException$1 .matchedData(Request)
mapHandler(IRequestHandler)0 method0org.apache.wicket.RestartResponseAtInterceptPageException$1.mapHandler (IRequestHandler)
mapRequest(Request)0 method0org.apache.wicket.RestartResponseAtInterceptPageException$1.mapRequest (Request)
clear()1 method1org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData.clear()
getOriginalUrl()0 method0org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData.getOriginalUrl( )
getPostParameters()0 method0org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData .getPostParameters()
getResource()0 method0org.apache.wicket.SharedResources$AutoResourceReference.getResource()
onChange()0 method0org.apache.wicket.application.ReloadingClassLoader$1.onChange()
FencedFeedbackPanel$2$1(FencedFeedbackPanel$2,Component)1 method1org.apache.wicket.feedback.FencedFeedbackPanel$2$1 .FencedFeedbackPanel$2$1(FencedFeedbackPanel$2,Component)
shouldRecurseInto(Component)0 method0org.apache.wicket.feedback.FencedFeedbackPanel$2$1.shouldRecurseInto (Component)
FencedFeedbackPanel$2$2(FencedFeedbackPanel$2,Component)1 method1org.apache.wicket.feedback.FencedFeedbackPanel$2$2 .FencedFeedbackPanel$2$2(FencedFeedbackPanel$2,Component)
shouldRecurseInto(Component)0 method0org.apache.wicket.feedback.FencedFeedbackPanel$2$2.shouldRecurseInto (Component)
collectMessages(Component,IFeedbackMessageFilter)0 method0org.apache.wicket.feedback.FencedFeedbackPanel$2.collectMessages (Component,IFeedbackMessageFilter)
accept(FeedbackMessage)0 method0org.apache.wicket.feedback.IFeedbackMessageFilter$1.accept (FeedbackMessage)
accept(FeedbackMessage)0 method0org.apache.wicket.feedback.IFeedbackMessageFilter$2.accept (FeedbackMessage)
getPage(int)0 method0org.apache.wicket.page.PageAccessSynchronizer$2.getPage(int)
touchPage(IManageablePage)0 method0org.apache.wicket.page.PageAccessSynchronizer$2.touchPage (IManageablePage)
commitRequest()0 method0org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest()
writeObject(ObjectOutputStream)0 method0org.apache.wicket.page.PageStoreManager$SessionEntry.writeObject (ObjectOutputStream)
readObject(ObjectInputStream)0 method0org.apache.wicket.page.PageStoreManager$SessionEntry.readObject (ObjectInputStream)
render(HeaderItem)0 method0org.apache.wicket.ajax.AbstractAjaxResponse$AjaxHeaderResponse.render (HeaderItem)
getRealResponse()0 method0org.apache.wicket.ajax.AbstractAjaxResponse$AjaxHeaderResponse .getRealResponse()
newHeaderResponse()0 method0org.apache.wicket.ajax.AbstractAjaxResponse$AjaxHtmlHeaderContainer .newHeaderResponse()
AjaxRequestHandler$1$1(AjaxRequestHandler$1,Response)1 method1org.apache.wicket.ajax.AjaxRequestHandler$1$1.AjaxRequestHandler$1$1 (AjaxRequestHandler$1,Response)
addJavaScript(String)0 method0org.apache.wicket.ajax.AjaxRequestHandler$1$1.addJavaScript(String)
fireOnAfterRespondListeners(Response)0 method0org.apache.wicket.ajax.AjaxRequestHandler$1 .fireOnAfterRespondListeners(Response)
fireOnBeforeRespondListeners()0 method0org.apache.wicket.ajax.AjaxRequestHandler$1 .fireOnBeforeRespondListeners()
WicketAjaxDebugJQueryResourceReference()0 method0org.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference .WicketAjaxDebugJQueryResourceReference()
WicketAjaxJQueryResourceReference()0 method0org.apache.wicket.ajax.WicketAjaxJQueryResourceReference .WicketAjaxJQueryResourceReference()
WicketEventJQueryResourceReference()0 method0org.apache.wicket.ajax.WicketEventJQueryResourceReference .WicketEventJQueryResourceReference()
getPrecondition(Component)0 method0org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior$1 .getPrecondition(Component)
getForm()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1.getForm()
getDefaultFormProcessing()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1 .getDefaultFormProcessing()
onError()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1.onError()
onSubmit()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1.onSubmit()
onAfterSubmit()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1.onAfterSubmit()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.form .AjaxFormValidatingBehavior$FormValidateVisitor$1.updateAjaxAttributes (AjaxRequestAttributes)
clone()0 method0org.apache.wicket.ajax.json.JSONObject$Null.clone()
equals(Object)0 method0org.apache.wicket.ajax.json.JSONObject$Null.equals(Object)
toString()0 method0org.apache.wicket.ajax.json.JSONObject$Null.toString()
JsonUtils()0 method0org.apache.wicket.ajax.json.JsonUtils.JsonUtils()
onEvent(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.onEvent (AjaxRequestTarget)
onComponentTag(ComponentTag)0 method0org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.onComponentTag (ComponentTag)
getChannel()0 method0org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.getChannel()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1 .updateAjaxAttributes(AjaxRequestAttributes)
onEvent(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.AjaxLink$1.onEvent (AjaxRequestTarget)
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.AjaxLink$1.updateAjaxAttributes (AjaxRequestAttributes)
onSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit (AjaxRequestTarget)
onAfterSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onAfterSubmit (AjaxRequestTarget)
onError(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onError (AjaxRequestTarget)
getChannel()0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1.getChannel()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1 .updateAjaxAttributes(AjaxRequestAttributes)
getDefaultProcessing()0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1 .getDefaultProcessing()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.form.AjaxCheckBox$1 .updateAjaxAttributes(AjaxRequestAttributes)
onUpdate(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxCheckBox$1.onUpdate (AjaxRequestTarget)
onSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1.onSubmit (AjaxRequestTarget)
onAfterSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .onAfterSubmit(AjaxRequestTarget)
onError(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1.onError (AjaxRequestTarget)
getChannel()0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .getChannel()
getDefaultProcessing()0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .getDefaultProcessing()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .updateAjaxAttributes(AjaxRequestAttributes)
onError(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onError (AjaxRequestTarget)
findForm()0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.findForm()
onComponentTag(ComponentTag)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1 .onComponentTag(ComponentTag)
getDefaultProcessing()0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1 .getDefaultProcessing()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1 .updateAjaxAttributes(AjaxRequestAttributes)
onSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit (AjaxRequestTarget)
onAfterSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onAfterSubmit (AjaxRequestTarget)
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationIncrementLink$1.updateAjaxAttributes (AjaxRequestAttributes)
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationLink$1.updateAjaxAttributes(AjaxRequestAttributes )
isInstantiationAuthorized(Class)0 method0org.apache.wicket.authorization.IAuthorizationStrategy$1 .isInstantiationAuthorized(Class)
isActionAuthorized(Component,Action)0 method0org.apache.wicket.authorization.IAuthorizationStrategy$1 .isActionAuthorized(Component,Action)
onUnauthorizedInstantiation(Component)0 method0org.apache.wicket.authorization.strategies.page .SimplePageAuthorizationStrategy$1.onUnauthorizedInstantiation (Component)
toString()0 method0org.apache.wicket.core.request.mapper.MountedMapper$MountPathSegment .toString()
EmptyAjaxRequestHandler()0 method0org.apache.wicket.core.request.handler.EmptyAjaxRequestHandler .EmptyAjaxRequestHandler()
SerializableChecker$WicketNotSerializableException(String,Throwable)0 method0org.apache.wicket.core.util.io .SerializableChecker$WicketNotSerializableException .SerializableChecker$WicketNotSerializableException(String,Throwable)
getField()0 method0org.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet .getField()
getGetter()0 method0org.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet .getGetter()
getSetter()0 method0org.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet .getSetter()
getTargetClass()0 method0org.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet .getTargetClass()
getValue(Object)0 method0org.apache.wicket.core.util.lang.PropertyResolver$ArrayGetSet.getValue (Object)
setValue(Object,Object,PropertyResolverConverter)0 method0org.apache.wicket.core.util.lang.PropertyResolver$ArrayGetSet.setValue (Object,Object,PropertyResolverConverter)

Statistics

Stat   MethodsCallingMe   depth
Sum:036
Average:00.076
Minimum:00
Maximum:02
Standard deviation:00.31
Variance:00.096
warningCritical    Rule warning: Potentially dead Fields
// <Name>Potentially dead Fields</Name>
warnif count > 0
from f in JustMyCode.Fields where
   
f.NbMethodsUsingMe == 0 && 
   
!f.IsPublic &&     // Although not recommended, public fields might be used by client applications of your projects.
   !f.IsLiteral &&    // The BC code never explicitely uses literal fields.
   !f.IsEnumValue  // The BC code never explicitely uses enumeration value.
    
   
select f

575 fields matched

fieldsFull Name
serialVersionUIDorg.apache.wicket.AttributeModifier$1.serialVersionUID
serialVersionUIDorg.apache.wicket.AttributeModifier.serialVersionUID
serialVersionUIDorg.apache.wicket.Behaviors$BehaviorIdList.serialVersionUID
serialVersionUIDorg.apache.wicket.Behaviors.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$1.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$2.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$3.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$4.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$5.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$6.serialVersionUID
serialVersionUIDorg.apache.wicket.Component.serialVersionUID
FLAG_UNUSED0org.apache.wicket.Component.FLAG_UNUSED0
FLAG_UNUSED1org.apache.wicket.Component.FLAG_UNUSED1
FLAG_UNUSED2org.apache.wicket.Component.FLAG_UNUSED2
FLAG_UNUSED3org.apache.wicket.Component.FLAG_UNUSED3
FLAG_AUTOorg.apache.wicket.Component.FLAG_AUTO
FLAG_ESCAPE_MODEL_STRINGSorg.apache.wicket.Component.FLAG_ESCAPE_MODEL_STRINGS
FLAG_VERSIONEDorg.apache.wicket.Component.FLAG_VERSIONED
FLAG_VISIBLEorg.apache.wicket.Component.FLAG_VISIBLE
FLAG_RENDER_BODY_ONLYorg.apache.wicket.Component.FLAG_RENDER_BODY_ONLY
FLAG_IGNORE_ATTRIBUTE_MODIFIERorg.apache.wicket.Component.FLAG_IGNORE_ATTRIBUTE_MODIFIER
FLAG_ENABLEDorg.apache.wicket.Component.FLAG_ENABLED
FLAG_RESERVED1org.apache.wicket.Component.FLAG_RESERVED1
FLAG_RESERVED2org.apache.wicket.Component.FLAG_RESERVED2
FLAG_RESERVED3org.apache.wicket.Component.FLAG_RESERVED3
FLAG_RESERVED4org.apache.wicket.Component.FLAG_RESERVED4
FLAG_HAS_BEEN_RENDEREDorg.apache.wicket.Component.FLAG_HAS_BEEN_RENDERED
FLAG_IS_RENDER_ALLOWEDorg.apache.wicket.Component.FLAG_IS_RENDER_ALLOWED
FLAG_OUTPUT_MARKUP_IDorg.apache.wicket.Component.FLAG_OUTPUT_MARKUP_ID
FLAG_PLACEHOLDERorg.apache.wicket.Component.FLAG_PLACEHOLDER
FLAG_RESERVED5org.apache.wicket.Component.FLAG_RESERVED5
FLAG_INITIALIZEDorg.apache.wicket.Component.FLAG_INITIALIZED
FLAG_NOTUSED7org.apache.wicket.Component.FLAG_NOTUSED7
FLAG_RESERVED8org.apache.wicket.Component.FLAG_RESERVED8
FLAG_MODEL_SETorg.apache.wicket.Component.FLAG_MODEL_SET
FLAG_REMOVING_FROM_HIERARCHYorg.apache.wicket.Component.FLAG_REMOVING_FROM_HIERARCHY
FLAG_RENDERINGorg.apache.wicket.Component.FLAG_RENDERING
FLAG_PREPARED_FOR_RENDERorg.apache.wicket.Component.FLAG_PREPARED_FOR_RENDER
FLAG_AFTER_RENDERINGorg.apache.wicket.Component.FLAG_AFTER_RENDERING
FLAG_VISIBILITY_ALLOWEDorg.apache.wicket.Component.FLAG_VISIBILITY_ALLOWED
FLAG_DETACHINGorg.apache.wicket.Component.FLAG_DETACHING
MARKUP_ID_ATTR_NAMEorg.apache.wicket.Component.MARKUP_ID_ATTR_NAME
RFLAG_ENABLED_IN_HIERARCHY_VALUEorg.apache.wicket.Component.RFLAG_ENABLED_IN_HIERARCHY_VALUE
RFLAG_ENABLED_IN_HIERARCHY_SETorg.apache.wicket.Component.RFLAG_ENABLED_IN_HIERARCHY_SET
RFLAG_VISIBLE_IN_HIEARARCHY_VALUEorg.apache.wicket.Component.RFLAG_VISIBLE_IN_HIEARARCHY_VALUE
RFLAG_VISIBLE_IN_HIERARCHY_SETorg.apache.wicket.Component.RFLAG_VISIBLE_IN_HIERARCHY_SET
RFLAG_CONFIGUREDorg.apache.wicket.Component.RFLAG_CONFIGURED
RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIEDorg.apache.wicket.Component.RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIED
RFLAG_INITIALIZE_SUPER_CALL_VERIFIEDorg.apache.wicket.Component.RFLAG_INITIALIZE_SUPER_CALL_VERIFIED
serialVersionUIDorg.apache.wicket.ConverterLocator$DefaultConverter.serialVersionUID
serialVersionUIDorg.apache.wicket.ConverterLocator.serialVersionUID
NULL_VALUEorg.apache.wicket.Localizer.NULL_VALUE
serialVersionUIDorg.apache.wicket.MarkupContainer$ChildList.serialVersionUID
serialVersionUIDorg.apache.wicket.MarkupContainer.serialVersionUID
serialVersionUIDorg.apache.wicket.MetaDataEntry.serialVersionUID
serialVersionUIDorg.apache.wicket.MetaDataKey.serialVersionUID
serialVersionUIDorg.apache.wicket.NonResettingRestartException.serialVersionUID
FLAG_IS_DIRTYorg.apache.wicket.Page.FLAG_IS_DIRTY
FLAG_PREVENT_DIRTYorg.apache.wicket.Page.FLAG_PREVENT_DIRTY
FLAG_STATELESS_HINTorg.apache.wicket.Page.FLAG_STATELESS_HINT
FLAG_WAS_CREATED_BOOKMARKABLEorg.apache.wicket.Page.FLAG_WAS_CREATED_BOOKMARKABLE
serialVersionUIDorg.apache.wicket.Page.serialVersionUID
serialVersionUIDorg.apache.wicket.PageReference.serialVersionUID
serialVersionUIDorg.apache.wicket .RestartResponseAtInterceptPageException$InterceptData$1 .serialVersionUID
serialVersionUIDorg.apache.wicket .RestartResponseAtInterceptPageException$InterceptData .serialVersionUID
serialVersionUIDorg.apache.wicket.RestartResponseAtInterceptPageException .serialVersionUID
serialVersionUIDorg.apache.wicket.RestartResponseException.serialVersionUID
serialVersionUIDorg.apache.wicket.Session$PageAccessSynchronizerProvider .serialVersionUID
serialVersionUIDorg.apache.wicket.Session.serialVersionUID
serialVersionUIDorg.apache.wicket.SharedResources$AutoResourceReference .serialVersionUID
serialVersionUIDorg.apache.wicket.WicketRuntimeException.serialVersionUID
serialVersionUIDorg.apache.wicket.application .ComponentInitializationListenerCollection.serialVersionUID
serialVersionUIDorg.apache.wicket.application.ComponentInstantiationListenerCollection .serialVersionUID
serialVersionUIDorg.apache.wicket.application.ComponentOnAfterRenderListenerCollection .serialVersionUID
serialVersionUIDorg.apache.wicket.application .ComponentOnBeforeRenderListenerCollection.serialVersionUID
serialVersionUIDorg.apache.wicket.application.HeaderContributorListenerCollection .serialVersionUID
serialVersionUIDorg.apache.wicket.behavior.AbstractAjaxBehavior.serialVersionUID
serialVersionUIDorg.apache.wicket.behavior.AttributeAppender.serialVersionUID
serialVersionUIDorg.apache.wicket.behavior.Behavior.serialVersionUID
serialVersionUIDorg.apache.wicket.behavior.InvalidBehaviorIdException.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.ComponentFeedbackMessageFilter .serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.ContainerFeedbackMessageFilter .serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.DefaultCleanupFeedbackMessageFilter .serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.ErrorLevelFeedbackMessageFilter .serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FeedbackMessage.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FeedbackMessages.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FeedbackMessagesModel.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FencedFeedbackPanel$1.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FencedFeedbackPanel$2.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FencedFeedbackPanel.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.IFeedbackMessageFilter$1.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.IFeedbackMessageFilter$2.serialVersionUID
serialVersionUIDorg.apache.wicket.mock.MockHomePage.serialVersionUID
serialVersionUIDorg.apache.wicket.page.CouldNotLockPageException.serialVersionUID
serialVersionUIDorg.apache.wicket.page.DefaultPageManagerContext$1.serialVersionUID
serialVersionUIDorg.apache.wicket.page.PageAccessSynchronizer$1.serialVersionUID
serialVersionUIDorg.apache.wicket.page.PageAccessSynchronizer.serialVersionUID
ATTRIBUTE_NAMEorg.apache.wicket.page.PageStoreManager$PersistentRequestAdapter .ATTRIBUTE_NAME
serialVersionUIDorg.apache.wicket.page.PageStoreManager$SessionEntry.serialVersionUID
serialVersionUIDorg.apache.wicket.session.HttpSessionStore$SessionBindingListener .serialVersionUID

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:

040
Visibility  

warningCritical    Rule warning: Methods that could have a lower visibility
// <Name>Methods that could have a lower visibility</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.Visibility != m.OptimalVisibility &&
  
// Eliminate default constructor from the result.
  // Whatever the visibility of the declaring class,
  // default constructors are public and introduce noise
  // in the current rule.
  !( m.IsConstructor && m.IsPublic && m.NbParameters == 0) &&

  
// Don't decrease the visibility of Main() methods.
  !m.IsEntryPoint

select new { m, 
             
m.Visibility , 
             
CouldBeDeclared = m.OptimalVisibility,
             
m.MethodsCallingMe }

5,781 methods matched

methodsVisibilityCouldBeDeclaredMethodsCallingMeFull Name
Application$1(Application)PublicInternal1 methodorg.apache.wicket.Application$1.Application$1(Application)
onInstantiation(Component)PublicPrivate0 methodorg.apache.wicket.Application$1.onInstantiation(Component)
Application$2(Application)PublicInternal1 methodorg.apache.wicket.Application$2.Application$2(Application)
onDetach(RequestCycle)PublicPrivate0 methodorg.apache.wicket.Application$2.onDetach(RequestCycle)
onEndRequest(RequestCycle)PublicPrivate0 methodorg.apache.wicket.Application$2.onEndRequest(RequestCycle)
get(RequestCycleContext)PublicPrivate1 methodorg.apache.wicket.Application$DefaultRequestCycleProvider.get (RequestCycleContext)
getRequestCycleSettings()PublicInternal18 methodsorg.apache.wicket.Application.getRequestCycleSettings()
get()PublicInternal122 methodsorg.apache.wicket.Application.get()
usesDevelopmentConfig()PublicInternal6 methodsorg.apache.wicket.Application.usesDevelopmentConfig()
exists()PublicInternal35 methodsorg.apache.wicket.Application.exists()
getJavaScriptLibrarySettings()PublicInternal9 methodsorg.apache.wicket.Application.getJavaScriptLibrarySettings()
getSecuritySettings()PublicInternal7 methodsorg.apache.wicket.Application.getSecuritySettings()
getRequestLogger()PublicInternal11 methodsorg.apache.wicket.Application.getRequestLogger()
get(String)PublicInternal3 methodsorg.apache.wicket.Application.get(String)
getApplicationKeys()PublicPrivate0 methodorg.apache.wicket.Application.getApplicationKeys()
getComponentInstantiationListeners()PublicInternal2 methodsorg.apache.wicket.Application.getComponentInstantiationListeners()
getConfigurationType()PublicPrivate3 methodsorg.apache.wicket.Application.getConfigurationType()
getResourceSettings()PublicInternal56 methodsorg.apache.wicket.Application.getResourceSettings()
getMarkupSettings()PublicInternal13 methodsorg.apache.wicket.Application.getMarkupSettings()
getExceptionSettings()PublicInternal5 methodsorg.apache.wicket.Application.getExceptionSettings()
getDebugSettings()PublicInternal17 methodsorg.apache.wicket.Application.getDebugSettings()
getApplicationKey()PublicInternal3 methodsorg.apache.wicket.Application.getApplicationKey()
getHomePage()PublicInternal3 methodsorg.apache.wicket.Application.getHomePage()
getConverterLocator()PublicInternal4 methodsorg.apache.wicket.Application.getConverterLocator()
getMetaData(MetaDataKey)PublicPrivate0 methodorg.apache.wicket.Application.getMetaData(MetaDataKey)
getName()PublicInternal9 methodsorg.apache.wicket.Application.getName()
getRequestLoggerSettings()PublicInternal4 methodsorg.apache.wicket.Application.getRequestLoggerSettings()
newRequestLogger()ProtectedPrivate1 methodorg.apache.wicket.Application.newRequestLogger()
getSessionStore()PublicInternal8 methodsorg.apache.wicket.Application.getSessionStore()
internalGetPageManager()PublicInternal4 methodsorg.apache.wicket.Application.internalGetPageManager()
initializeComponents()PublicPrivate1 methodorg.apache.wicket.Application.initializeComponents()
getApplicationSettings()PublicInternal18 methodsorg.apache.wicket.Application.getApplicationSettings()
newSession(Request,Response)PublicPrivate1 methodorg.apache.wicket.Application.newSession(Request,Response)
onDestroy()ProtectedPrivate1 methodorg.apache.wicket.Application.onDestroy()
getFrameworkSettings()PublicInternal6 methodsorg.apache.wicket.Application.getFrameworkSettings()
getPageSettings()PublicInternal6 methodsorg.apache.wicket.Application.getPageSettings()
newConverterLocator()ProtectedPrivate1 methodorg.apache.wicket.Application.newConverterLocator()
newResourceReferenceRegistry()ProtectedPrivate1 methodorg.apache.wicket.Application.newResourceReferenceRegistry()
newSharedResources(ResourceReferenceRegistry)ProtectedPrivate1 methodorg.apache.wicket.Application.newSharedResources (ResourceReferenceRegistry)
newResourceBundles(ResourceReferenceRegistry)ProtectedPrivate1 methodorg.apache.wicket.Application.newResourceBundles (ResourceReferenceRegistry)
setRootRequestMapper(IRequestMapper)PublicPrivate2 methodsorg.apache.wicket.Application.setRootRequestMapper(IRequestMapper)
newPageFactory()ProtectedPrivate1 methodorg.apache.wicket.Application.newPageFactory()
getRequestCycleListeners()PublicPrivate1 methodorg.apache.wicket.Application.getRequestCycleListeners()
getExceptionMapperProvider()PublicPrivate1 methodorg.apache.wicket.Application.getExceptionMapperProvider()
getSessionStoreProvider()PublicPrivate1 methodorg.apache.wicket.Application.getSessionStoreProvider()
getRootRequestMapper()PublicInternal5 methodsorg.apache.wicket.Application.getRootRequestMapper()
initApplication()PublicInternal2 methodsorg.apache.wicket.Application.initApplication()
validateInit()ProtectedPrivate1 methodorg.apache.wicket.Application.validateInit()
getPageRendererProvider()PublicInternal3 methodsorg.apache.wicket.Application.getPageRendererProvider()
getPageManagerProvider()PublicPrivate1 methodorg.apache.wicket.Application.getPageManagerProvider()
setName(String)PublicInternal2 methodsorg.apache.wicket.Application.setName(String)
getMimeType(String)PublicInternal5 methodsorg.apache.wicket.Application.getMimeType(String)
onEvent(IEvent)PublicPrivate0 methodorg.apache.wicket.Application.onEvent(IEvent)
getHeaderContributorListenerCollection()PublicInternal1 methodorg.apache.wicket.Application.getHeaderContributorListenerCollection()
getInitializers()PublicInternal1 methodorg.apache.wicket.Application.getInitializers()
getApplicationListeners()PublicPrivate0 methodorg.apache.wicket.Application.getApplicationListeners()
getSessionListeners()PublicPrivate0 methodorg.apache.wicket.Application.getSessionListeners()
getBehaviorInstantiationListeners()PublicInternal1 methodorg.apache.wicket.Application.getBehaviorInstantiationListeners()
getComponentInitializationListeners()PublicInternal1 methodorg.apache.wicket.Application.getComponentInitializationListeners()
getComponentPreOnBeforeRenderListeners()PublicInternal1 methodorg.apache.wicket.Application.getComponentPreOnBeforeRenderListeners()
getComponentPostOnBeforeRenderListeners()PublicInternal1 methodorg.apache.wicket.Application.getComponentPostOnBeforeRenderListeners( )
getComponentOnAfterRenderListeners()PublicInternal1 methodorg.apache.wicket.Application.getComponentOnAfterRenderListeners()
setApplicationSettings(IApplicationSettings)PublicPrivate0 methodorg.apache.wicket.Application.setApplicationSettings (IApplicationSettings)
setJavaScriptLibrarySettings(IJavaScriptLibrarySettings)PublicPrivate0 methodorg.apache.wicket.Application.setJavaScriptLibrarySettings (IJavaScriptLibrarySettings)
setDebugSettings(IDebugSettings)PublicPrivate0 methodorg.apache.wicket.Application.setDebugSettings(IDebugSettings)
setExceptionSettings(IExceptionSettings)PublicPrivate0 methodorg.apache.wicket.Application.setExceptionSettings(IExceptionSettings)
setFrameworkSettings(IFrameworkSettings)PublicPrivate0 methodorg.apache.wicket.Application.setFrameworkSettings(IFrameworkSettings)
setPageSettings(IPageSettings)PublicPrivate0 methodorg.apache.wicket.Application.setPageSettings(IPageSettings)
setRequestCycleSettings(IRequestCycleSettings)PublicPrivate0 methodorg.apache.wicket.Application.setRequestCycleSettings (IRequestCycleSettings)
setMarkupSettings(IMarkupSettings)PublicPrivate0 methodorg.apache.wicket.Application.setMarkupSettings(IMarkupSettings)
setRequestLoggerSettings(IRequestLoggerSettings)PublicPrivate0 methodorg.apache.wicket.Application.setRequestLoggerSettings (IRequestLoggerSettings)
setResourceSettings(IResourceSettings)PublicPrivate0 methodorg.apache.wicket.Application.setResourceSettings(IResourceSettings)
setSecuritySettings(ISecuritySettings)PublicPrivate0 methodorg.apache.wicket.Application.setSecuritySettings(ISecuritySettings)
getStoreSettings()PublicInternal1 methodorg.apache.wicket.Application.getStoreSettings()
setStoreSettings(IStoreSettings)PublicPrivate0 methodorg.apache.wicket.Application.setStoreSettings(IStoreSettings)
getPageManagerContext()ProtectedPrivate1 methodorg.apache.wicket.Application.getPageManagerContext()
setPageRendererProvider(IPageRendererProvider)PublicInternal2 methodsorg.apache.wicket.Application.setPageRendererProvider (IPageRendererProvider)
getResourceReferenceRegistry()PublicInternal8 methodsorg.apache.wicket.Application.getResourceReferenceRegistry()
getSharedResources()PublicPrivate0 methodorg.apache.wicket.Application.getSharedResources()
getResourceBundles()PublicInternal3 methodsorg.apache.wicket.Application.getResourceBundles()
getPageFactory()PublicInternal4 methodsorg.apache.wicket.Application.getPageFactory()
getMapperContext()PublicInternal3 methodsorg.apache.wicket.Application.getMapperContext()
newMapperContext()ProtectedPrivate1 methodorg.apache.wicket.Application.newMapperContext()
fetchCreateAndSetSession(RequestCycle)PublicInternal1 methodorg.apache.wicket.Application.fetchCreateAndSetSession(RequestCycle)
getRequestCycleProvider()PublicInternal2 methodsorg.apache.wicket.Application.getRequestCycleProvider()
setRequestCycleProvider(IRequestCycleProvider)PublicInternal1 methodorg.apache.wicket.Application.setRequestCycleProvider (IRequestCycleProvider)
createRequestCycle(Request,Response)PublicInternal2 methodsorg.apache.wicket.Application.createRequestCycle(Request,Response)
setHeaderResponseDecorator(IHeaderResponseDecorator)PublicPrivate0 methodorg.apache.wicket.Application.setHeaderResponseDecorator (IHeaderResponseDecorator)
decorateHeaderResponse(IHeaderResponse)PublicInternal1 methodorg.apache.wicket.Application.decorateHeaderResponse(IHeaderResponse)
usesDeploymentConfig()PublicInternal1 methodorg.apache.wicket.Application.usesDeploymentConfig()
ApplicationListenerCollection$1(ApplicationListenerCollection ,Application)PublicInternal1 methodorg.apache.wicket.ApplicationListenerCollection$1 .ApplicationListenerCollection$1(ApplicationListenerCollection ,Application)
notify(IApplicationListener)PublicPrivate1 methodorg.apache.wicket.ApplicationListenerCollection$1.notify (IApplicationListener)
ApplicationListenerCollection$2(ApplicationListenerCollection ,Application)PublicInternal1 methodorg.apache.wicket.ApplicationListenerCollection$2 .ApplicationListenerCollection$2(ApplicationListenerCollection ,Application)
notify(IApplicationListener)PublicPrivate1 methodorg.apache.wicket.ApplicationListenerCollection$2.notify (IApplicationListener)
onBeforeDestroyed(Application)PublicInternal1 methodorg.apache.wicket.ApplicationListenerCollection.onBeforeDestroyed (Application)
onAfterInitialized(Application)PublicInternal1 methodorg.apache.wicket.ApplicationListenerCollection.onAfterInitialized (Application)
AttributeModifier$1(String,IModel)PublicInternal1 methodorg.apache.wicket.AttributeModifier$1.AttributeModifier$1(String ,IModel)
newValue(String,String)ProtectedPrivate0 methodorg.apache.wicket.AttributeModifier$1.newValue(String,String)
AttributeModifier(String,boolean,IModel)PublicPrivate0 methodorg.apache.wicket.AttributeModifier.AttributeModifier(String,boolean ,IModel)
AttributeModifier(String,IModel)PublicInternal6 methodsorg.apache.wicket.AttributeModifier.AttributeModifier(String,IModel)

Statistics

Stat   Visibility   CouldBeDeclared   MethodsCallingMe
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Fields that could have a lower visibility
// <Name>Fields that could have a lower visibility</Name>
warnif count > 0 from f in JustMyCode.Fields where 
  
f.Visibility != f.OptimalVisibility
  
  
select new { f, 
             
f.Visibility , 
             
CouldBeDeclared = f.OptimalVisibility,
             
f.MethodsUsingMe }

193 fields matched

fieldsVisibilityCouldBeDeclaredMethodsUsingMeFull Name
CONFIGURATIONPublicPrivate0 methodorg.apache.wicket.Application.CONFIGURATION
VALUELESS_ATTRIBUTE_ADDPublicPrivate2 methodsorg.apache.wicket.AttributeModifier.VALUELESS_ATTRIBUTE_ADD
VALUELESS_ATTRIBUTE_REMOVEPublicPrivate3 methodsorg.apache.wicket.AttributeModifier.VALUELESS_ATTRIBUTE_REMOVE
ENABLEPublicProtected5 methodsorg.apache.wicket.Component.ENABLE
PATH_SEPARATORPublicPrivate0 methodorg.apache.wicket.Component.PATH_SEPARATOR
PARENT_PATHPublicPrivate0 methodorg.apache.wicket.Component.PARENT_PATH
RENDERPublicProtected3 methodsorg.apache.wicket.Component.RENDER
FLAG_INHERITABLE_MODELPublicPrivate0 methodorg.apache.wicket.Component.FLAG_INHERITABLE_MODEL
FLAG_RESERVED1ProtectedPrivate0 methodorg.apache.wicket.Component.FLAG_RESERVED1
FLAG_RESERVED2ProtectedPrivate0 methodorg.apache.wicket.Component.FLAG_RESERVED2
FLAG_RESERVED3ProtectedPrivate0 methodorg.apache.wicket.Component.FLAG_RESERVED3
FLAG_RESERVED4ProtectedPrivate0 methodorg.apache.wicket.Component.FLAG_RESERVED4
FLAG_RESERVED5ProtectedPrivate0 methodorg.apache.wicket.Component.FLAG_RESERVED5
FLAG_INITIALIZEDProtectedPrivate0 methodorg.apache.wicket.Component.FLAG_INITIALIZED
FLAG_RESERVED8ProtectedPrivate0 methodorg.apache.wicket.Component.FLAG_RESERVED8
FLAG_REMOVING_FROM_HIERARCHYProtectedPrivate0 methodorg.apache.wicket.Component.FLAG_REMOVING_FROM_HIERARCHY
ADDED_AT_KEYPublicInternal4 methodsorg.apache.wicket.Component.ADDED_AT_KEY
CONSTRUCTED_AT_KEYPublicInternal4 methodsorg.apache.wicket.Component.CONSTRUCTED_AT_KEY
generatedMarkupIdPublicPrivate7 methodsorg.apache.wicket.Component.generatedMarkupId
dataPublicPrivate28 methodsorg.apache.wicket.Component.data
applicationProtectedPrivate5 methodsorg.apache.wicket.DefaultPageManagerProvider.application
indexPublicPrivate6 methodsorg.apache.wicket.MarkupContainer$1.index
keyPublicInternal4 methodsorg.apache.wicket.MetaDataEntry.key
objectPublicInternal5 methodsorg.apache.wicket.MetaDataEntry.object
listenerInterfaceClassPublicPrivate2 methodsorg.apache.wicket.RequestListenerInterface.listenerInterfaceClass
MAPPERPublicInternal2 methodsorg.apache.wicket.RestartResponseAtInterceptPageException.MAPPER
SESSION_ATTRIBUTE_NAMEPublicPrivate0 methodorg.apache.wicket.Session.SESSION_ATTRIBUTE_NAME
ESCPublicPrivate0 methodorg.apache.wicket.application.WildcardMatcherHelper.ESC
PATHSEPPublicPrivate0 methodorg.apache.wicket.application.WildcardMatcherHelper.PATHSEP
STARPublicPrivate0 methodorg.apache.wicket.application.WildcardMatcherHelper.STAR
UNDEFINEDPublicPrivate0 methodorg.apache.wicket.feedback.FeedbackMessage.UNDEFINED
DEBUGPublicPrivate0 methodorg.apache.wicket.feedback.FeedbackMessage.DEBUG
INFOPublicPrivate0 methodorg.apache.wicket.feedback.FeedbackMessage.INFO
SUCCESSPublicPrivate0 methodorg.apache.wicket.feedback.FeedbackMessage.SUCCESS
WARNINGPublicPrivate0 methodorg.apache.wicket.feedback.FeedbackMessage.WARNING
ERRORPublicPrivate0 methodorg.apache.wicket.feedback.FeedbackMessage.ERROR
FATALPublicPrivate0 methodorg.apache.wicket.feedback.FeedbackMessage.FATAL
headerProtectedPrivate8 methodsorg.apache.wicket.ajax.AbstractAjaxResponse.header
domReadyJavaScriptsProtectedPrivate6 methodsorg.apache.wicket.ajax.AbstractAjaxResponse.domReadyJavaScripts
prependJavaScriptsProtectedPrivate6 methodsorg.apache.wicket.ajax.AbstractAjaxResponse.prependJavaScripts
appendJavaScriptsProtectedPrivate6 methodsorg.apache.wicket.ajax.AbstractAjaxResponse.appendJavaScripts
componentsFrozenProtectedPrivate2 methodsorg.apache.wicket.ajax.AbstractAjaxResponse.componentsFrozen
INDICATORPublicPrivate1 methodorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior.INDICATOR
listenersFrozenProtectedPrivate4 methodsorg.apache.wicket.ajax.AjaxRequestHandler.listenersFrozen
respondersFrozenProtectedPrivate2 methodsorg.apache.wicket.ajax.AjaxRequestHandler.respondersFrozen
START_ROOT_ELEMENTPublicPrivate0 methodorg.apache.wicket.ajax.XmlAjaxResponse.START_ROOT_ELEMENT
END_ROOT_ELEMENTPublicPrivate0 methodorg.apache.wicket.ajax.XmlAjaxResponse.END_ROOT_ELEMENT
XML_DATA_TYPEPublicPrivate0 methodorg.apache.wicket.ajax.attributes.AjaxRequestAttributes.XML_DATA_TYPE
EVENT_NAMEPublicPrivate0 methodorg.apache.wicket.ajax.form.OnChangeAjaxBehavior.EVENT_NAME
CRLFPublicPrivate0 methodorg.apache.wicket.ajax.json.HTTP.CRLF
NULLPublicInternal11 methodsorg.apache.wicket.ajax.json.JSONObject.NULL
LTPublicInternal8 methodsorg.apache.wicket.ajax.json.XML.LT
SLASHPublicInternal7 methodsorg.apache.wicket.ajax.json.XML.SLASH
GTPublicInternal12 methodsorg.apache.wicket.ajax.json.XML.GT
BANGPublicInternal5 methodsorg.apache.wicket.ajax.json.XML.BANG
QUESTPublicInternal5 methodsorg.apache.wicket.ajax.json.XML.QUEST
EQPublicInternal5 methodsorg.apache.wicket.ajax.json.XML.EQ
AMPPublicInternal2 methodsorg.apache.wicket.ajax.json.XML.AMP
APOSPublicInternal2 methodsorg.apache.wicket.ajax.json.XML.APOS
QUOTPublicInternal2 methodsorg.apache.wicket.ajax.json.XML.QUOT
entityPublicPrivate7 methodsorg.apache.wicket.ajax.json.XMLTokener.entity
RENDERPublicPrivate0 methodorg.apache.wicket.authorization.Action.RENDER
ENABLEPublicPrivate0 methodorg.apache.wicket.authorization.Action.ENABLE
pageParametersEncoderProtectedPrivate3 methodsorg.apache.wicket.core.request.mapper.BasicResourceReferenceMapper .pageParametersEncoder
cachingStrategyProtectedPrivate2 methodsorg.apache.wicket.core.request.mapper.BasicResourceReferenceMapper .cachingStrategy
SUCCESSPublicInternal6 methodsorg.apache.wicket.core.util.objects.checker.IObjectChecker$Result .SUCCESS
statusPublicInternal3 methodsorg.apache.wicket.core.util.objects.checker.IObjectChecker$Result .status
reasonPublicInternal3 methodsorg.apache.wicket.core.util.objects.checker.IObjectChecker$Result .reason
causePublicInternal2 methodsorg.apache.wicket.core.util.objects.checker.IObjectChecker$Result .cause
inPublicPrivate4 methodsorg.apache.wicket.core.util.resource.WebExternalResourceStream.in
INSTANCEPublicInternal2 methodsorg.apache.wicket.core.util.resource.locator.caching .NullResourceStreamReference.INSTANCE
INLINE_OPEN_TAGPublicPrivate0 methodorg.apache.wicket.core.util.string.CssUtils.INLINE_OPEN_TAG
INLINE_CLOSE_TAGPublicPrivate0 methodorg.apache.wicket.core.util.string.CssUtils.INLINE_CLOSE_TAG
SCRIPT_CONTENT_PREFIXPublicPrivate0 methodorg.apache.wicket.core.util.string.JavaScriptUtils .SCRIPT_CONTENT_PREFIX
SCRIPT_CONTENT_SUFFIXPublicPrivate0 methodorg.apache.wicket.core.util.string.JavaScriptUtils .SCRIPT_CONTENT_SUFFIX
SCRIPT_OPEN_TAGPublicPrivate0 methodorg.apache.wicket.core.util.string.JavaScriptUtils.SCRIPT_OPEN_TAG
SCRIPT_CLOSE_TAGPublicPrivate0 methodorg.apache.wicket.core.util.string.JavaScriptUtils.SCRIPT_CLOSE_TAG
CONDITIONAL_COMMENT_OPENINGPublicPrivate2 methodsorg.apache.wicket.markup.AbstractMarkupParser .CONDITIONAL_COMMENT_OPENING
RENDER_RAWPublicPrivate0 methodorg.apache.wicket.markup.ComponentTag.RENDER_RAW
xmlTagProtectedPrivate11 methodsorg.apache.wicket.markup.HtmlSpecialTag.xmlTag
NO_MARKUPPublicInternal10 methodsorg.apache.wicket.markup.Markup.NO_MARKUP
WICKETPublicPrivate0 methodorg.apache.wicket.markup.MarkupParser.WICKET
WICKET_XHTML_DTDPublicPrivate0 methodorg.apache.wicket.markup.MarkupResourceStream.WICKET_XHTML_DTD
HTML_MARKUP_TYPEPublicInternal2 methodsorg.apache.wicket.markup.MarkupType.HTML_MARKUP_TYPE
XML_MIMEPublicPrivate0 methodorg.apache.wicket.markup.MarkupType.XML_MIME
HTML_MIMEPublicPrivate0 methodorg.apache.wicket.markup.MarkupType.HTML_MIME
ATTRIBUTES_SEPARATORSPublicPrivate5 methodsorg.apache.wicket.markup.TagUtils.ATTRIBUTES_SEPARATORS
autoEnablePublicPrivate2 methodsorg.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkBookmarkablePageLink.autoEnable
FRAGMENTPublicPrivate0 methodorg.apache.wicket.markup.resolver.FragmentResolver.FRAGMENT
HEADPublicPrivate0 methodorg.apache.wicket.markup.resolver.HtmlHeaderResolver.HEAD
CHILDPublicPrivate0 methodorg.apache.wicket.markup.resolver.MarkupInheritanceResolver.CHILD
EXTENDPublicPrivate0 methodorg.apache.wicket.markup.resolver.MarkupInheritanceResolver.EXTEND
CONTAINERPublicPrivate0 methodorg.apache.wicket.markup.resolver.WicketContainerResolver.CONTAINER
MESSAGEPublicPrivate0 methodorg.apache.wicket.markup.resolver.WicketMessageResolver.MESSAGE
HEADER_FILTER_NAMEPublicPrivate0 methodorg.apache.wicket.markup.head.filter .JavaScriptFilteredIntoFooterHeaderResponse.HEADER_FILTER_NAME
renderingProtectedPrivate4 methodsorg.apache.wicket.markup.html.border.Border$BorderBodyContainer .rendering
BODYPublicPrivate0 methodorg.apache.wicket.markup.html.border.Border.BODY
BORDERPublicPrivate0 methodorg.apache.wicket.markup.html.border.Border.BORDER
pathPublicInternal4 methodsorg.apache.wicket.markup.html.debug.PageView$ComponentData.path
sizePublicInternal2 methodsorg.apache.wicket.markup.html.debug.PageView$ComponentData.size

Statistics

Stat   Visibility   CouldBeDeclared   MethodsUsingMe
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Fields should be declared as private
// <Name>Fields should be declared as private</Name>
warnif count > 0 from f in Application.Fields where 
 
!f.IsPrivate && 

 
// These conditions filter cases where fields 
 // doesn't represent state that should be encapsulated. 
 !f.IsGeneratedByCompiler && 
 
!f.IsSpecialName && 
 
!f.IsInitOnly && 
 
!f.IsLiteral && 
 
!f.IsEnumValue
select new { f, f.SizeOfInst }

33 fields matched

fieldsSize of instanceFull Name
generatedMarkupId4org.apache.wicket.Component.generatedMarkupId
data4org.apache.wicket.Component.data
index4org.apache.wicket.MarkupContainer$1.index
object4org.apache.wicket.MetaDataEntry.object
MAPPERN/Aorg.apache.wicket.RestartResponseAtInterceptPageException.MAPPER
clientInfo4org.apache.wicket.Session.clientInfo
header4org.apache.wicket.ajax.AbstractAjaxResponse.header
componentsFrozen4org.apache.wicket.ajax.AbstractAjaxResponse.componentsFrozen
listenersFrozen4org.apache.wicket.ajax.AjaxRequestHandler.listenersFrozen
respondersFrozen4org.apache.wicket.ajax.AjaxRequestHandler.respondersFrozen
mode4org.apache.wicket.ajax.json.JSONWriter.mode
writer4org.apache.wicket.ajax.json.JSONWriter.writer
in4org.apache.wicket.core.util.resource.WebExternalResourceStream.in
autoEnableN/Aorg.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkBookmarkablePageLink.autoEnable
rendering4org.apache.wicket.markup.html.border.Border$BorderBodyContainer .rendering
value4org.apache.wicket.markup.html.debug.PageView$ComponentData.value
parameters4org.apache.wicket.markup.html.link.BookmarkablePageLink.parameters
RETAIN_DISABLED_META_KEYN/Aorg.apache.wicket.markup.html.form.ListMultipleChoice .RETAIN_DISABLED_META_KEY
pageable4org.apache.wicket.markup.html.navigation.paging.PagingNavigation .pageable
labelProvider4org.apache.wicket.markup.html.navigation.paging.PagingNavigation .labelProvider
name4org.apache.wicket.markup.parser.XmlTag.name
namespace4org.apache.wicket.markup.parser.XmlTag.namespace
text4org.apache.wicket.markup.parser.XmlTag.text
type4org.apache.wicket.markup.parser.XmlTag.type
wicketFilter4org.apache.wicket.protocol.http.WicketServlet.wicketFilter
SHOW_EXCEPTION_PAGE0org.apache.wicket.settings.def.ExceptionSettings.SHOW_EXCEPTION_PAGE
component4org.apache.wicket.util.tester.ComponentInPage.component
isInstantiated4org.apache.wicket.util.tester.ComponentInPage.isInstantiated
count4org.apache.wicket.util.tester .FormTester$ChoiceSelector$SearchOptionByIndexVisitor.count
path4org.apache.wicket.util.tester.WicketTesterHelper$ComponentData.path
type4org.apache.wicket.util.tester.WicketTesterHelper$ComponentData.type
value4org.apache.wicket.util.tester.WicketTesterHelper$ComponentData.value
defaultSchemes4org.apache.wicket.validation.validator.UrlValidator.defaultSchemes

Statistics

Stat   Size of instance
Sum:116
Average:3.87
Minimum:0
Maximum:4
Standard deviation:0.72
Variance:0.52
warningCritical    Rule warning: Constructors of abstract classes should be declared as protected or private
// <Name>Constructors of abstract classes should be declared as protected or private</Name>
// Constructors of an abstract class can only be accessed from this class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.

warnif count > 0
from t in Application.Types where 
  
t.IsClass && 
  
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }

// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.

107 types matched

typesctorsFull Name
Application1 methodorg.apache.wicket.Application
Component2 methodsorg.apache.wicket.Component
MarkupContainer2 methodsorg.apache.wicket.MarkupContainer
MetaDataKey<T>1 methodorg.apache.wicket.MetaDataKey
Session1 methodorg.apache.wicket.Session
AbstractClassResolver1 methodorg.apache.wicket.application.AbstractClassResolver
AbstractAjaxBehavior1 methodorg.apache.wicket.behavior.AbstractAjaxBehavior
Behavior1 methodorg.apache.wicket.behavior.Behavior
AbstractPageManager1 methodorg.apache.wicket.page.AbstractPageManager
RequestAdapter1 methodorg.apache.wicket.page.RequestAdapter
AbstractAjaxResponse1 methodorg.apache.wicket.ajax.AbstractAjaxResponse
AbstractAjaxTimerBehavior1 methodorg.apache.wicket.ajax.AbstractAjaxTimerBehavior
AbstractDefaultAjaxBehavior1 methodorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior
AjaxEventBehavior1 methodorg.apache.wicket.ajax.AjaxEventBehavior
AjaxNewWindowNotifyingBehavior2 methodsorg.apache.wicket.ajax.AjaxNewWindowNotifyingBehavior
XmlAjaxResponse1 methodorg.apache.wicket.ajax.XmlAjaxResponse
AjaxFormChoiceComponentUpdatingBehavior1 methodorg.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior
AjaxFormComponentUpdatingBehavior1 methodorg.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior
AjaxFormSubmitBehavior2 methodsorg.apache.wicket.ajax.form.AjaxFormSubmitBehavior
OnChangeAjaxBehavior1 methodorg.apache.wicket.ajax.form.OnChangeAjaxBehavior
AjaxFallbackLink<T>2 methodsorg.apache.wicket.ajax.markup.html.AjaxFallbackLink
AjaxLink<T>2 methodsorg.apache.wicket.ajax.markup.html.AjaxLink
AjaxButton4 methodsorg.apache.wicket.ajax.markup.html.form.AjaxButton
AjaxCheckBox2 methodsorg.apache.wicket.ajax.markup.html.form.AjaxCheckBox
AjaxFallbackButton2 methodsorg.apache.wicket.ajax.markup.html.form.AjaxFallbackButton
AjaxSubmitLink2 methodsorg.apache.wicket.ajax.markup.html.form.AjaxSubmitLink
AuthorizationException4 methodsorg.apache.wicket.authorization.AuthorizationException
AbstractPageAuthorizationStrategy1 methodorg.apache.wicket.authorization.strategies.page .AbstractPageAuthorizationStrategy
SimplePageAuthorizationStrategy1 methodorg.apache.wicket.authorization.strategies.page .SimplePageAuthorizationStrategy
ClientInfo1 methodorg.apache.wicket.core.request.ClientInfo
AbstractBookmarkableMapper1 methodorg.apache.wicket.core.request.mapper.AbstractBookmarkableMapper
AbstractComponentMapper1 methodorg.apache.wicket.core.request.mapper.AbstractComponentMapper
AbstractResourceReferenceMapper1 methodorg.apache.wicket.core.request.mapper.AbstractResourceReferenceMapper
PropertyResolver$AbstractGetAndSet1 methodorg.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet
CheckingObjectOutputStream$ObjectOutputAdaptor1 methodorg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$ObjectOutputAdaptor
AbstractResourceStreamReference1 methodorg.apache.wicket.core.util.resource.locator.caching .AbstractResourceStreamReference
AbstractMarkupParser3 methodsorg.apache.wicket.markup.AbstractMarkupParser
MarkupElement1 methodorg.apache.wicket.markup.MarkupElement
AbstractHeaderRenderStrategy1 methodorg.apache.wicket.markup.renderStrategy.AbstractHeaderRenderStrategy
DeepChildFirstVisitor1 methodorg.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor
AutoLinkResolver$AbstractAutolinkResolverDelegate1 methodorg.apache.wicket.markup.resolver .AutoLinkResolver$AbstractAutolinkResolverDelegate
AbstractOutputTransformerContainer2 methodsorg.apache.wicket.markup.transformer .AbstractOutputTransformerContainer
AbstractTransformerBehavior1 methodorg.apache.wicket.markup.transformer.AbstractTransformerBehavior
HeaderItem1 methodorg.apache.wicket.markup.head.HeaderItem
AbstractHeaderResponseFilter1 methodorg.apache.wicket.markup.head.filter.AbstractHeaderResponseFilter
HeaderResponse1 methodorg.apache.wicket.markup.head.internal.HeaderResponse
DecoratingHeaderResponse1 methodorg.apache.wicket.markup.html.DecoratingHeaderResponse
Border2 methodsorg.apache.wicket.markup.html.border.Border
BorderPanel2 methodsorg.apache.wicket.markup.html.border.BorderPanel
ResponseBufferZone1 methodorg.apache.wicket.markup.html.internal.ResponseBufferZone
AbstractLink2 methodsorg.apache.wicket.markup.html.link.AbstractLink
Link<T>2 methodsorg.apache.wicket.markup.html.link.Link
StatelessLink<T>1 methodorg.apache.wicket.markup.html.link.StatelessLink
ListView<T>3 methodsorg.apache.wicket.markup.html.list.ListView
Loop2 methodsorg.apache.wicket.markup.html.list.Loop
PageableListView<T>2 methodsorg.apache.wicket.markup.html.list.PageableListView
PropertyListView<T>3 methodsorg.apache.wicket.markup.html.list.PropertyListView
AbstractMarkupSourcingStrategy1 methodorg.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy
AssociatedMarkupSourcingStrategy1 methodorg.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy
Panel2 methodsorg.apache.wicket.markup.html.panel.Panel
AbstractCheckSelector1 methodorg.apache.wicket.markup.html.form.AbstractCheckSelector
AbstractChoice<T,E>9 methodsorg.apache.wicket.markup.html.form.AbstractChoice
AbstractSingleSelectChoice<T>9 methodsorg.apache.wicket.markup.html.form.AbstractSingleSelectChoice
AbstractSubmitLink4 methodsorg.apache.wicket.markup.html.form.AbstractSubmitLink
AbstractTextComponent<T>2 methodsorg.apache.wicket.markup.html.form.AbstractTextComponent
Form$ValidationVisitor1 methodorg.apache.wicket.markup.html.form.Form$ValidationVisitor
FormComponent<T>2 methodsorg.apache.wicket.markup.html.form.FormComponent
FormComponentPanel<T>2 methodsorg.apache.wicket.markup.html.form.FormComponentPanel
LabeledWebMarkupContainer2 methodsorg.apache.wicket.markup.html.form.LabeledWebMarkupContainer
AbstractFormValidator1 methodorg.apache.wicket.markup.html.form.validation.AbstractFormValidator
BlobImageResource2 methodsorg.apache.wicket.markup.html.image.resource.BlobImageResource
RenderedDynamicImageResource2 methodsorg.apache.wicket.markup.html.image.resource .RenderedDynamicImageResource
AbstractMarkupFilter2 methodsorg.apache.wicket.markup.parser.AbstractMarkupFilter
AbstractPageableView<T>2 methodsorg.apache.wicket.markup.repeater.AbstractPageableView
AbstractRepeater2 methodsorg.apache.wicket.markup.repeater.AbstractRepeater
RefreshingView<T>2 methodsorg.apache.wicket.markup.repeater.RefreshingView
DataViewBase<T>1 methodorg.apache.wicket.markup.repeater.data.DataViewBase
GridView<T>1 methodorg.apache.wicket.markup.repeater.data.GridView
ArrayIteratorAdapter<T>1 methodorg.apache.wicket.markup.repeater.util.ArrayIteratorAdapter
ModelIteratorAdapter<T>1 methodorg.apache.wicket.markup.repeater.util.ModelIteratorAdapter
AbstractPropertyModel<T>1 methodorg.apache.wicket.model.AbstractPropertyModel
AbstractReadOnlyModel<T>1 methodorg.apache.wicket.model.AbstractReadOnlyModel
AbstractWrapModel<T>1 methodorg.apache.wicket.model.AbstractWrapModel
ChainingModel<T>1 methodorg.apache.wicket.model.ChainingModel
LoadableDetachableModel<T>2 methodsorg.apache.wicket.model.LoadableDetachableModel
GenericBaseModel<T>1 methodorg.apache.wicket.model.util.GenericBaseModel
AbstractRequestLogger1 methodorg.apache.wicket.protocol.http.AbstractRequestLogger
BufferedWebResponse$Action1 methodorg.apache.wicket.protocol.http.BufferedWebResponse$Action
BufferedWebResponse$MetaDataAction1 methodorg.apache.wicket.protocol.http.BufferedWebResponse$MetaDataAction
WebApplication1 methodorg.apache.wicket.protocol.http.WebApplication
AbstractRequestWrapperFactory1 methodorg.apache.wicket.protocol.http.servlet.AbstractRequestWrapperFactory
MultipartServletWebRequest2 methodsorg.apache.wicket.protocol.http.servlet.MultipartServletWebRequest
AbstractRequestCycleListener1 methodorg.apache.wicket.request.cycle.AbstractRequestCycleListener
PageRenderer1 methodorg.apache.wicket.request.handler.render.PageRenderer
ResourceLogData1 methodorg.apache.wicket.request.handler.resource.ResourceLogData
AbstractResource$WriteCallback1 methodorg.apache.wicket.request.resource.AbstractResource$WriteCallback
AbstractResource1 methodorg.apache.wicket.request.resource.AbstractResource
ClassScanner1 methodorg.apache.wicket.request.resource.ClassScanner
DynamicImageResource2 methodsorg.apache.wicket.request.resource.DynamicImageResource
ResourceReference4 methodsorg.apache.wicket.request.resource.ResourceReference

Statistics

Stat   ctors
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

130
Purity - Immutability - Side-Effects  

warningCritical    Rule warning: Fields should be marked as ReadOnly when possible
// <Name>Fields should be marked as ReadOnly when possible</Name>
warnif count > 0 
from f in JustMyCode.Fields where 
   
f.IsImmutable && 
  
!f.IsInitOnly &&
  
!f.IsGeneratedByCompiler 
select new { f, f.SizeOfInst } 

// A field that matches the condition IsImmutable 
// is a field that is assigned only by constructors 
// of its class.
// For an instance field, this means its value 
// will remain constant throught the lifetime 
// of the object.
// For a static field, this means its value will 
// remain constant throught the lifetime of the 
// program.
// In both cases, such field can safely be marked 



68 fields matched

fieldsSize of instanceFull Name
method4org.apache.wicket.RequestListenerInterface.method
reporter4org.apache.wicket.feedback.FeedbackMessage.reporter
cookies4org.apache.wicket.mock.MockWebRequest.cookies
headers4org.apache.wicket.mock.MockWebRequest.headers
postRequestParameters4org.apache.wicket.mock.MockWebRequest.postRequestParameters
functionParameterName4org.apache.wicket.ajax.attributes.CallbackParameter .functionParameterName
ajaxParameterName4org.apache.wicket.ajax.attributes.CallbackParameter.ajaxParameterName
ajaxParameterCode4org.apache.wicket.ajax.attributes.CallbackParameter.ajaxParameterCode
cause4org.apache.wicket.ajax.json.JSONException.cause
reader4org.apache.wicket.ajax.json.JSONTokener.reader
loggerN/Aorg.apache.wicket.core.request.mapper.AbstractBookmarkableMapper .logger
characters4org.apache.wicket.core.request.mapper .CryptoMapper$HashedSegmentGenerator.characters
segmentIndex4org.apache.wicket.core.request.mapper.MountedMapper$MountPathSegment .segmentIndex
behaviorClass4org.apache.wicket.core.request.handler.logger.ListenerInterfaceLogData .behaviorClass
submittingComponentClass4org.apache.wicket.core.request.handler.logger.ListenerInterfaceLogData .submittingComponentClass
submittingComponentPath4org.apache.wicket.core.request.handler.logger.ListenerInterfaceLogData .submittingComponentPath
KEYN/Aorg.apache.wicket.core.util.crypt.KeyInSessionSunJceCryptFactory.KEY
availableN/Aorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .available
LOOKUP_METHODN/Aorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .LOOKUP_METHOD
GET_CLASS_DATA_LAYOUT_METHODN/Aorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .GET_CLASS_DATA_LAYOUT_METHOD
GET_NUM_OBJ_FIELDS_METHODN/Aorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .GET_NUM_OBJ_FIELDS_METHOD
GET_OBJ_FIELD_VALUES_METHODN/Aorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .GET_OBJ_FIELD_VALUES_METHOD
GET_FIELD_METHODN/Aorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .GET_FIELD_METHOD
HAS_WRITE_REPLACE_METHOD_METHODN/Aorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .HAS_WRITE_REPLACE_METHOD_METHOD
INVOKE_WRITE_REPLACE_METHODN/Aorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .INVOKE_WRITE_REPLACE_METHOD
resourceStream4org.apache.wicket.core.util.resource.PackageResourceStream .resourceStream
locator4org.apache.wicket.core.util.string.interpolator .ConvertingPropertyVariableInterpolator.locator
locale4org.apache.wicket.core.util.string.interpolator .ConvertingPropertyVariableInterpolator.locale
wrapped4org.apache.wicket.markup.head.PriorityHeaderItem.wrapped
wrapped4org.apache.wicket.markup.head.filter.FilteredHeaderItem.wrapped
filterName4org.apache.wicket.markup.head.filter.FilteredHeaderItem.filterName
areas4org.apache.wicket.markup.html.link.ClientSideImageMap.areas
fileNameModel4org.apache.wicket.markup.html.link.DownloadLink.fileNameModel
displayFlags4org.apache.wicket.markup.html.link.PopupSettings.displayFlags
instanceN/Aorg.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy .instance
markupId4org.apache.wicket.markup.html.panel.FragmentMarkupSourcingStrategy .markupId
form4org.apache.wicket.markup.html.form.AbstractSubmitLink.form
httpTagType4org.apache.wicket.markup.parser.XmlTag.httpTagType
queue4org.apache.wicket.markup.parser.filter.ConditionalCommentFilter.queue
skipByLevelMap4org.apache.wicket.markup.parser.filter.ConditionalCommentFilter .skipByLevelMap
level4org.apache.wicket.markup.parser.filter.ConditionalCommentFilter.level
SAFE_CHILD_ID_PATTERNN/Aorg.apache.wicket.markup.repeater.AbstractRepeater .SAFE_CHILD_ID_PATTERN
instanceN/Aorg.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy.instance
INSTANCEN/Aorg.apache.wicket.markup.repeater.data.EmptyDataProvider.INSTANCE
REQUEST_DATAN/Aorg.apache.wicket.protocol.http.AbstractRequestLogger.REQUEST_DATA
SESSION_DATAN/Aorg.apache.wicket.protocol.http.AbstractRequestLogger.SESSION_DATA
DAYSN/Aorg.apache.wicket.protocol.http.mock.MockHttpServletResponse.DAYS
MONTHSN/Aorg.apache.wicket.protocol.http.mock.MockHttpServletResponse.MONTHS
webappRoot4org.apache.wicket.protocol.http.mock.MockServletContext.webappRoot
totalBytes4org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl .totalBytes
timeStarted4org.apache.wicket.protocol.http.servlet.UploadInfo.timeStarted
totalBytes4org.apache.wicket.protocol.http.servlet.UploadInfo.totalBytes
dateFormats4org.apache.wicket.protocol.http.servlet.XForwardedRequestWrapper .dateFormats
headers4org.apache.wicket.protocol.http.servlet.XForwardedRequestWrapper .headers
array4org.apache.wicket.request.resource.ByteArrayResource.array
scanner4org.apache.wicket.request.resource.ResourceReferenceRegistry.scanner
stream4org.apache.wicket.request.resource.ResourceStreamResource.stream
parameters4org.apache.wicket.request.resource.caching.ResourceUrl.parameters
initializers4org.apache.wicket.resource.loader.InitializerStringResourceLoader .initializers
original4org.apache.wicket.response.ByteArrayResponse.original
logN/Aorg.apache.wicket.response.filter.AjaxServerAndClientTimeFilter.log
stack4org.apache.wicket.util.iterator.AbstractHierarchyIterator.stack
cookies4org.apache.wicket.util.tester .BaseWicketTester$WicketTesterServletWebResponse.cookies
httpSession4org.apache.wicket.util.tester.BaseWicketTester.httpSession
originalFeedbackMessageCleanupFilter4org.apache.wicket.util.tester.BaseWicketTester .originalFeedbackMessageCleanupFilter
failOnUnknown4org.apache.wicket.validation.validator.CreditCardValidator .failOnUnknown
format4org.apache.wicket.validation.validator.DateValidator.format
options4org.apache.wicket.validation.validator.UrlValidator.options

Statistics

Stat   Size of instance
Sum:196
Average:4
Minimum:4
Maximum:4
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid static fields with a mutable field type
// <Name>Avoid static fields with a mutable field type</Name>
warnif count > 0
from f in Application.Fields
where f.IsStatic && !f.IsEnumValue && !f.IsGeneratedByCompiler && !f.IsLiteral
let fieldType = f.FieldType
where fieldType != null && 
     
!fieldType.IsThirdParty && 
     
!fieldType.IsInterface && 
     
!fieldType.IsImmutable
select new { f, 
             
mutableFieldType = fieldType , 
             
isFieldImmutable = f.IsImmutable, 
             
isFieldIsReadOnly = f.IsInitOnly }


// static fields should be used to hold only constant and immutable states.

52 fields matched

fieldsmutableFieldTypeisFieldImmutableisFieldIsReadOnlyFull Name
ENABLEActionTrueTrueorg.apache.wicket.Component.ENABLE
RENDERActionTrueTrueorg.apache.wicket.Component.RENDER
MARKUP_ID_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.Component.MARKUP_ID_KEY
FEEDBACK_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.Component.FEEDBACK_KEY
ADDED_AT_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.Component.ADDED_AT_KEY
CONSTRUCTED_AT_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.Component.CONSTRUCTED_AT_KEY
FEEDBACK_LISTMetaDataKey<T>TrueTrueorg.apache.wicket.Component.FEEDBACK_LIST
INTERFACERequestListenerInterfaceTrueTrueorg.apache.wicket.IRedirectListener.INTERFACE
INTERFACERequestListenerInterfaceTrueTrueorg.apache.wicket.IResourceListener.INTERFACE
keyMetaDataKey<T>TrueTrueorg.apache.wicket .RestartResponseAtInterceptPageException$InterceptData.key
INTERFACERequestListenerInterfaceTrueTrueorg.apache.wicket.behavior.IBehaviorListener.INTERFACE
FENCE_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.feedback.FencedFeedbackPanel.FENCE_KEY
INDICATORResourceReferenceTrueTrueorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior.INDICATOR
INSTANCEWicketAjaxDebugJQueryResourceReferenceTrueTrueorg.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference.INSTANCE
INSTANCEWicketAjaxJQueryResourceReferenceTrueTrueorg.apache.wicket.ajax.WicketAjaxJQueryResourceReference.INSTANCE
INSTANCEWicketEventJQueryResourceReferenceTrueTrueorg.apache.wicket.ajax.WicketEventJQueryResourceReference.INSTANCE
CHOICE_JSResourceReferenceTrueTrueorg.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior .CHOICE_JS
instanceEmptyAjaxRequestHandlerTrueTrueorg.apache.wicket.core.request.handler.EmptyAjaxRequestHandler .instance
KEYMetaDataKey<T>TrueFalseorg.apache.wicket.core.util.crypt.KeyInSessionSunJceCryptFactory.KEY
DUMMY_OUTPUT_STREAMCheckingObjectOutputStream$NoopOutputStreamTrueTrueorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream .DUMMY_OUTPUT_STREAM
SUCCESSIObjectChecker$ResultTrueTrueorg.apache.wicket.core.util.objects.checker.IObjectChecker$Result .SUCCESS
INSTANCENullResourceStreamReferenceTrueTrueorg.apache.wicket.core.util.resource.locator.caching .NullResourceStreamReference.INSTANCE
NO_MARKUPMarkupTrueTrueorg.apache.wicket.markup.Markup.NO_MARKUP
HTML_MARKUP_TYPEMarkupTypeTrueTrueorg.apache.wicket.markup.MarkupType.HTML_MARKUP_TYPE
DEFAULT_ATTRIBUTE_RESOLVERAutoLinkResolver$TagReferenceResolverTrueTrueorg.apache.wicket.markup.resolver.AutoLinkResolver .DEFAULT_ATTRIBUTE_RESOLVER
INSTANCENoHeaderItemTrueTrueorg.apache.wicket.markup.head.NoHeaderItem.INSTANCE
RESPONSE_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.markup.head.filter.FilteringHeaderResponse .RESPONSE_KEY
RENDER_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.markup.html.debug.PageView.RENDER_KEY
INTERFACERequestListenerInterfaceTrueTrueorg.apache.wicket.markup.html.link.ILinkListener.INTERFACE
instanceDefaultMarkupSourcingStrategyTrueFalseorg.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy .instance
JSResourceReferenceTrueTrueorg.apache.wicket.markup.html.form.AbstractCheckSelector.JS
INTERFACERequestListenerInterfaceTrueTrueorg.apache.wicket.markup.html.form.IFormSubmitListener.INTERFACE
INTERFACERequestListenerInterfaceTrueTrueorg.apache.wicket.markup.html.form.IOnChangeListener.INTERFACE
RETAIN_DISABLED_META_KEYMetaDataKey<T>FalseFalseorg.apache.wicket.markup.html.form.ListMultipleChoice .RETAIN_DISABLED_META_KEY
JSResourceReferenceTrueTrueorg.apache.wicket.markup.html.form.upload.MultiFileUploadField.JS
RELATIVE_PATH_BEHAVIORBehaviorTrueTrueorg.apache.wicket.markup.parser.filter.RelativePathPrefixHandler .RELATIVE_PATH_BEHAVIOR
INSTANCEEmptyDataProvider<T>TrueFalseorg.apache.wicket.markup.repeater.data.EmptyDataProvider.INSTANCE
REQUEST_DATAMetaDataKey<T>TrueFalseorg.apache.wicket.protocol.http.AbstractRequestLogger.REQUEST_DATA
SESSION_DATAMetaDataKey<T>TrueFalseorg.apache.wicket.protocol.http.AbstractRequestLogger.SESSION_DATA
BROWSER_WAS_POLLED_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.protocol.http.WebSession.BROWSER_WAS_POLLED_KEY
FIRST_HANDLER_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.request.cycle.PageRequestHandlerTracker .FIRST_HANDLER_KEY
LAST_HANDLER_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.request.cycle.PageRequestHandlerTracker .LAST_HANDLER_KEY
CACHE_KEYMetaDataKey<T>TrueTrueorg.apache.wicket.request.resource.caching.version .RequestCycleCachedResourceVersion.CACHE_KEY
INSTANCEJQueryResourceReferenceTrueTrueorg.apache.wicket.resource.JQueryResourceReference.INSTANCE
EMPTY_PROPERTIESPropertiesTrueTrueorg.apache.wicket.resource.Properties.EMPTY_PROPERTIES
instanceNullResponseTrueTrueorg.apache.wicket.response.NullResponse.instance
INSTANCEEmptySrcAttributeCheckFilterTrueTrueorg.apache.wicket.response.filter.EmptySrcAttributeCheckFilter .INSTANCE
SHOW_EXCEPTION_PAGEIExceptionSettings$UnexpectedExceptionDisplayTrueTrueorg.apache.wicket.settings.IExceptionSettings.SHOW_EXCEPTION_PAGE
SHOW_INTERNAL_ERROR_PAGEIExceptionSettings$UnexpectedExceptionDisplayTrueTrueorg.apache.wicket.settings.IExceptionSettings.SHOW_INTERNAL_ERROR_PAGE
SHOW_NO_EXCEPTION_PAGEIExceptionSettings$UnexpectedExceptionDisplayTrueTrueorg.apache.wicket.settings.IExceptionSettings.SHOW_NO_EXCEPTION_PAGE
PASSResultTrueTrueorg.apache.wicket.util.tester.Result.PASS
INSTANCEEmailAddressValidatorTrueTrueorg.apache.wicket.validation.validator.EmailAddressValidator.INSTANCE

Statistics

Stat   mutableFieldType   isFieldImmutable   isFieldIsReadOnly
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: A field must not be assigned from outside its parent hierarchy types
// <Name>A field must not be assigned from outside its parent hierarchy types</Name>
warnif count > 0
from f in JustMyCode.Fields.Where(f => 
      
!f.IsPrivate && !f.IsGeneratedByCompiler && 
      
!f.IsImmutable && !f.IsEnumValue)

let methodsAssignerOutsideOfMyType = f.MethodsAssigningMe.Where(
        
m =>!m.IsGeneratedByCompiler &&
             
m.ParentType != f.ParentType && 
            
!m.ParentType.DeriveFrom(f.ParentType) )

where methodsAssignerOutsideOfMyType.Count() > 0
select new { f, methodsAssignerOutsideOfMyType }

10 fields matched

fieldsmethodsAssignerOutsideOfMyTypeFull Name
object1 methodorg.apache.wicket.MetaDataEntry.object
listenersFrozen3 methodsorg.apache.wicket.ajax.AjaxRequestHandler.listenersFrozen
value2 methodsorg.apache.wicket.markup.html.debug.PageView$ComponentData.value
name1 methodorg.apache.wicket.markup.parser.XmlTag.name
namespace1 methodorg.apache.wicket.markup.parser.XmlTag.namespace
component2 methodsorg.apache.wicket.util.tester.ComponentInPage.component
isInstantiated1 methodorg.apache.wicket.util.tester.ComponentInPage.isInstantiated
path1 methodorg.apache.wicket.util.tester.WicketTesterHelper$ComponentData.path
type1 methodorg.apache.wicket.util.tester.WicketTesterHelper$ComponentData.type
value2 methodsorg.apache.wicket.util.tester.WicketTesterHelper$ComponentData.value

Statistics

Stat   methodsAssignerOutsideOfMyType
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

551
Naming Conventions  

warningCritical    Rule warning: Instance fields should begin with a lower character
// <Name>Instance fields should begin with a lower character </Name>
warnif count > 0 from f in Application.Fields where 
  
!f.NameLike (@"^[a-z]")  && 
  
!f.IsStatic && 
  
!f.IsLiteral && 
  
!f.IsGeneratedByCompiler  && 
  
!f.IsSpecialName 
select new { f, f.SizeOfInst } 

// This naming convention provokes debate.
// Don't hesitate to customize the regex of 
// NameLike to your preference.

3 fields matched

fieldsSize of instanceFull Name
__form4org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.__form
VALUE_SEPARATOR4org.apache.wicket.authentication.strategy .DefaultAuthenticationStrategy.VALUE_SEPARATOR
SHOW_EXCEPTION_PAGE0org.apache.wicket.settings.def.ExceptionSettings.SHOW_EXCEPTION_PAGE

Statistics

Stat   Size of instance
Sum:8
Average:2.67
Minimum:0
Maximum:4
Standard deviation:1.89
Variance:3.56
warningCritical    Rule warning: Methods name should begin with an lower character
// <Name>Methods name should begin with an lower character</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
!m.NameLike (@"^[a-z]") && 
  
!m.IsSpecialName && 
  
!m.IsGeneratedByCompiler && !m.IsConstructor
select m

// The name of a regular method should 
// begin with an Upper letter.

48 methods matched

methodsFull Name
MetaDataKey()org.apache.wicket.MetaDataKey.MetaDataKey()
AutoLinkResolver$AutolinkBookmarkablePageLink(String,Class ,PageParameters,String)org.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkBookmarkablePageLink .AutoLinkResolver$AutolinkBookmarkablePageLink(String,Class ,PageParameters,String)
Link(String,IModel)org.apache.wicket.markup.html.link.Link.Link(String,IModel)
Link(String)org.apache.wicket.markup.html.link.Link.Link(String)
ListView(String,List)org.apache.wicket.markup.html.list.ListView.ListView(String,List)
ChoiceRenderer()org.apache.wicket.markup.html.form.ChoiceRenderer.ChoiceRenderer()
FormComponent(String)org.apache.wicket.markup.html.form.FormComponent.FormComponent(String)
FormComponent(String,IModel)org.apache.wicket.markup.html.form.FormComponent.FormComponent(String ,IModel)
ListMultipleChoice(String)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String)
ListMultipleChoice(String,List)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,List)
ListMultipleChoice(String,List,IChoiceRenderer)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,List,IChoiceRenderer)
ListMultipleChoice(String,IModel,List)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,List)
ListMultipleChoice(String,IModel,List,IChoiceRenderer)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,List,IChoiceRenderer)
ListMultipleChoice(String,IModel)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel)
ListMultipleChoice(String,IModel,IModel)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,IModel)
ListMultipleChoice(String,IModel,IChoiceRenderer)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,IChoiceRenderer)
ListMultipleChoice(String,IModel,IModel,IChoiceRenderer)org.apache.wicket.markup.html.form.ListMultipleChoice .ListMultipleChoice(String,IModel,IModel,IChoiceRenderer)
TextField(String,IModel,Class)org.apache.wicket.markup.html.form.TextField.TextField(String,IModel ,Class)
TextField(String)org.apache.wicket.markup.html.form.TextField.TextField(String)
TextField(String,Class)org.apache.wicket.markup.html.form.TextField.TextField(String,Class)
TextField(String,IModel)org.apache.wicket.markup.html.form.TextField.TextField(String,IModel)
PagingNavigationIncrementLink(String,IPageable,int)org.apache.wicket.markup.html.navigation.paging .PagingNavigationIncrementLink.PagingNavigationIncrementLink(String ,IPageable,int)
PagingNavigationLink(String,IPageable,long)org.apache.wicket.markup.html.navigation.paging.PagingNavigationLink .PagingNavigationLink(String,IPageable,long)
Item(String,int,IModel)org.apache.wicket.markup.repeater.Item.Item(String,int,IModel)
RefreshingView(String,IModel)org.apache.wicket.markup.repeater.RefreshingView.RefreshingView(String ,IModel)
RefreshingView(String)org.apache.wicket.markup.repeater.RefreshingView.RefreshingView(String )
DataViewBase(String,IDataProvider)org.apache.wicket.markup.repeater.data.DataViewBase.DataViewBase (String,IDataProvider)
AbstractReadOnlyModel()org.apache.wicket.model.AbstractReadOnlyModel.AbstractReadOnlyModel()
ChainingModel(Object)org.apache.wicket.model.ChainingModel.ChainingModel(Object)
CompoundPropertyModel(IModel)org.apache.wicket.model.CompoundPropertyModel.CompoundPropertyModel (IModel)
CompoundPropertyModel(Object)org.apache.wicket.model.CompoundPropertyModel.CompoundPropertyModel (Object)
LoadableDetachableModel()org.apache.wicket.model.LoadableDetachableModel .LoadableDetachableModel()
Model(Serializable)org.apache.wicket.model.Model.Model(Serializable)
Model()org.apache.wicket.model.Model.Model()
PropertyModel(Object,String)org.apache.wicket.model.PropertyModel.PropertyModel(Object,String)
CollectionModel(Collection)org.apache.wicket.model.util.CollectionModel.CollectionModel (Collection)
GenericBaseModel()org.apache.wicket.model.util.GenericBaseModel.GenericBaseModel()
MapModel(Map)org.apache.wicket.model.util.MapModel.MapModel(Map)
WildcardCollectionModel(Collection)org.apache.wicket.model.util.WildcardCollectionModel .WildcardCollectionModel(Collection)
WildcardListModel(List)org.apache.wicket.model.util.WildcardListModel.WildcardListModel(List)
WildcardSetModel(Set)org.apache.wicket.model.util.WildcardSetModel.WildcardSetModel(Set)
_registerResourceReference(ResourceReference)org.apache.wicket.request.resource.ResourceReferenceRegistry ._registerResourceReference(ResourceReference)
_getResourceReference(String,String,Locale,String,String,boolean)org.apache.wicket.request.resource.ResourceReferenceRegistry ._getResourceReference(String,String,Locale,String,String,boolean)
IteratorFilter()org.apache.wicket.util.iterator.IteratorFilter.IteratorFilter()
ClassReference(Class)org.apache.wicket.util.reference.ClassReference.ClassReference(Class)
ValidatorAdapter(IValidator)org.apache.wicket.validation.ValidatorAdapter.ValidatorAdapter (IValidator)
RangeValidator(Comparable,Comparable)org.apache.wicket.validation.validator.RangeValidator.RangeValidator (Comparable,Comparable)
RangeValidator()org.apache.wicket.validation.validator.RangeValidator.RangeValidator()

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Avoid types with name too long
// <Name>Avoid types with name too long</Name>
warnif count > 0 from t in Application.Types 
where !t.IsGeneratedByCompiler

where t.SimpleName.Length > 35 
select new { t, t.SimpleName }

      

125 types matched

typesSimpleNameFull Name
Application$DefaultExceptionMapperProviderApplication$DefaultExceptionMapperProviderorg.apache.wicket.Application$DefaultExceptionMapperProvider
Application$DefaultRequestCycleProviderApplication$DefaultRequestCycleProviderorg.apache.wicket.Application$DefaultRequestCycleProvider
BehaviorInstantiationListenerCollection$1BehaviorInstantiationListenerCollection$1org.apache.wicket.BehaviorInstantiationListenerCollection$1
BehaviorInstantiationListenerCollectionBehaviorInstantiationListenerCollectionorg.apache.wicket.BehaviorInstantiationListenerCollection
ComponentEventSender$ComponentEventVisitor<T>ComponentEventSender$ComponentEventVisitororg.apache.wicket.ComponentEventSender$ComponentEventVisitor
RestartResponseAtInterceptPageException$1RestartResponseAtInterceptPageException$1org.apache.wicket.RestartResponseAtInterceptPageException$1
RestartResponseAtInterceptPageException$InterceptData$1RestartResponseAtInterceptPageException$InterceptData$1org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData$1
RestartResponseAtInterceptPageException$InterceptDataRestartResponseAtInterceptPageException$InterceptDataorg.apache.wicket .RestartResponseAtInterceptPageException$InterceptData
RestartResponseAtInterceptPageExceptionRestartResponseAtInterceptPageExceptionorg.apache.wicket.RestartResponseAtInterceptPageException
Session$PageAccessSynchronizerProviderSession$PageAccessSynchronizerProviderorg.apache.wicket.Session$PageAccessSynchronizerProvider
SharedResources$AutoResourceReferenceSharedResources$AutoResourceReferenceorg.apache.wicket.SharedResources$AutoResourceReference
SystemMapper$ParentFolderPlaceholderProviderSystemMapper$ParentFolderPlaceholderProviderorg.apache.wicket.SystemMapper$ParentFolderPlaceholderProvider
ComponentInitializationListenerCollection$1ComponentInitializationListenerCollection$1org.apache.wicket.application .ComponentInitializationListenerCollection$1
ComponentInitializationListenerCollectionComponentInitializationListenerCollectionorg.apache.wicket.application .ComponentInitializationListenerCollection
ComponentInstantiationListenerCollection$1ComponentInstantiationListenerCollection$1org.apache.wicket.application .ComponentInstantiationListenerCollection$1
ComponentInstantiationListenerCollectionComponentInstantiationListenerCollectionorg.apache.wicket.application.ComponentInstantiationListenerCollection
ComponentOnAfterRenderListenerCollection$1ComponentOnAfterRenderListenerCollection$1org.apache.wicket.application .ComponentOnAfterRenderListenerCollection$1
ComponentOnAfterRenderListenerCollectionComponentOnAfterRenderListenerCollectionorg.apache.wicket.application.ComponentOnAfterRenderListenerCollection
ComponentOnBeforeRenderListenerCollection$1ComponentOnBeforeRenderListenerCollection$1org.apache.wicket.application .ComponentOnBeforeRenderListenerCollection$1
ComponentOnBeforeRenderListenerCollectionComponentOnBeforeRenderListenerCollectionorg.apache.wicket.application .ComponentOnBeforeRenderListenerCollection
HeaderContributorListenerCollection$1HeaderContributorListenerCollection$1org.apache.wicket.application.HeaderContributorListenerCollection$1
MockApplication$MockPageManagerProviderMockApplication$MockPageManagerProviderorg.apache.wicket.mock.MockApplication$MockPageManagerProvider
MockApplication$MockSessionStoreProviderMockApplication$MockSessionStoreProviderorg.apache.wicket.mock.MockApplication$MockSessionStoreProvider
PageStoreManager$PersistentRequestAdapterPageStoreManager$PersistentRequestAdapterorg.apache.wicket.page.PageStoreManager$PersistentRequestAdapter
HttpSessionStore$SessionBindingListenerHttpSessionStore$SessionBindingListenerorg.apache.wicket.session.HttpSessionStore$SessionBindingListener
AbstractAjaxResponse$AjaxHeaderResponseAbstractAjaxResponse$AjaxHeaderResponseorg.apache.wicket.ajax.AbstractAjaxResponse$AjaxHeaderResponse
AbstractAjaxResponse$AjaxHtmlHeaderContainerAbstractAjaxResponse$AjaxHtmlHeaderContainerorg.apache.wicket.ajax.AbstractAjaxResponse$AjaxHtmlHeaderContainer
AjaxRequestTarget$IJavaScriptResponseAjaxRequestTarget$IJavaScriptResponseorg.apache.wicket.ajax.AjaxRequestTarget$IJavaScriptResponse
AjaxRequestTarget$ITargetRespondListenerAjaxRequestTarget$ITargetRespondListenerorg.apache.wicket.ajax.AjaxRequestTarget$ITargetRespondListener
WicketAjaxDebugJQueryResourceReferenceWicketAjaxDebugJQueryResourceReferenceorg.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference
AjaxFormChoiceComponentUpdatingBehavior$1AjaxFormChoiceComponentUpdatingBehavior$1org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior$1
AjaxFormChoiceComponentUpdatingBehaviorAjaxFormChoiceComponentUpdatingBehaviororg.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior
AjaxFormValidatingBehavior$FormValidateVisitor$1AjaxFormValidatingBehavior$FormValidateVisitor$1org.apache.wicket.ajax.form .AjaxFormValidatingBehavior$FormValidateVisitor$1
AjaxFormValidatingBehavior$FormValidateVisitorAjaxFormValidatingBehavior$FormValidateVisitororg.apache.wicket.ajax.form .AjaxFormValidatingBehavior$FormValidateVisitor
IUnauthorizedComponentInstantiationListenerIUnauthorizedComponentInstantiationListenerorg.apache.wicket.authorization .IUnauthorizedComponentInstantiationListener
CryptoMapper$ApplicationCryptProviderCryptoMapper$ApplicationCryptProviderorg.apache.wicket.core.request.mapper .CryptoMapper$ApplicationCryptProvider
BookmarkableListenerInterfaceRequestHandlerBookmarkableListenerInterfaceRequestHandlerorg.apache.wicket.core.request.handler .BookmarkableListenerInterfaceRequestHandler
ListenerInvocationNotAllowedExceptionListenerInvocationNotAllowedExceptionorg.apache.wicket.core.request.handler .ListenerInvocationNotAllowedException
RenderPageRequestHandler$RedirectPolicyRenderPageRequestHandler$RedirectPolicyorg.apache.wicket.core.request.handler .RenderPageRequestHandler$RedirectPolicy
SerializableChecker$ObjectSerializationCheckerSerializableChecker$ObjectSerializationCheckerorg.apache.wicket.core.util.io .SerializableChecker$ObjectSerializationChecker
SerializableChecker$WicketNotSerializableExceptionSerializableChecker$WicketNotSerializableExceptionorg.apache.wicket.core.util.io .SerializableChecker$WicketNotSerializableException
PropertyResolver$ArrayPropertyGetSetPropertyResolver$ArrayPropertyGetSetorg.apache.wicket.core.util.lang.PropertyResolver$ArrayPropertyGetSet
WicketObjects$ReplaceObjectInputStreamWicketObjects$ReplaceObjectInputStreamorg.apache.wicket.core.util.lang .WicketObjects$ReplaceObjectInputStream
WicketObjects$ReplaceObjectOutputStreamWicketObjects$ReplaceObjectOutputStreamorg.apache.wicket.core.util.lang .WicketObjects$ReplaceObjectOutputStream
WicketObjects$SerializingObjectSizeOfStrategyWicketObjects$SerializingObjectSizeOfStrategyorg.apache.wicket.core.util.lang .WicketObjects$SerializingObjectSizeOfStrategy
CheckingObjectOutputStream$1InterceptingObjectOutputStreamCheckingObjectOutputStream$1InterceptingObjectOutputStreamorg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$1InterceptingObjectOutputStream
CheckingObjectOutputStream$NoopOutputStreamCheckingObjectOutputStream$NoopOutputStreamorg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$NoopOutputStream
CheckingObjectOutputStream$ObjectCheckExceptionCheckingObjectOutputStream$ObjectCheckExceptionorg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$ObjectCheckException
CheckingObjectOutputStream$ObjectOutputAdaptorCheckingObjectOutputStream$ObjectOutputAdaptororg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$ObjectOutputAdaptor
CheckingObjectOutputStream$TraceSlotCheckingObjectOutputStream$TraceSlotorg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$TraceSlot
StyleAndVariationResourceNameIteratorStyleAndVariationResourceNameIteratororg.apache.wicket.core.util.resource.locator .StyleAndVariationResourceNameIterator
ConvertingPropertyVariableInterpolatorConvertingPropertyVariableInterpolatororg.apache.wicket.core.util.string.interpolator .ConvertingPropertyVariableInterpolator
MarkupCache$DefaultCacheImplementation<K,V>MarkupCache$DefaultCacheImplementationorg.apache.wicket.markup.MarkupCache$DefaultCacheImplementation
AutoLinkResolver$AbstractAutolinkResolverDelegateAutoLinkResolver$AbstractAutolinkResolverDelegateorg.apache.wicket.markup.resolver .AutoLinkResolver$AbstractAutolinkResolverDelegate
AutoLinkResolver$AnchorResolverDelegateAutoLinkResolver$AnchorResolverDelegateorg.apache.wicket.markup.resolver .AutoLinkResolver$AnchorResolverDelegate
AutoLinkResolver$AutolinkBookmarkablePageLink<T>AutoLinkResolver$AutolinkBookmarkablePageLinkorg.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkBookmarkablePageLink
AutoLinkResolver$AutolinkExternalLinkAutoLinkResolver$AutolinkExternalLinkorg.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkExternalLink
AutoLinkResolver$IAutolinkResolverDelegateAutoLinkResolver$IAutolinkResolverDelegateorg.apache.wicket.markup.resolver .AutoLinkResolver$IAutolinkResolverDelegate
AutoLinkResolver$ITagReferenceResolverAutoLinkResolver$ITagReferenceResolverorg.apache.wicket.markup.resolver .AutoLinkResolver$ITagReferenceResolver
AutoLinkResolver$ResourceReferenceAutolinkAutoLinkResolver$ResourceReferenceAutolinkorg.apache.wicket.markup.resolver .AutoLinkResolver$ResourceReferenceAutolink
AutoLinkResolver$ResourceReferenceResolverDelegateAutoLinkResolver$ResourceReferenceResolverDelegateorg.apache.wicket.markup.resolver .AutoLinkResolver$ResourceReferenceResolverDelegate
AutoLinkResolver$TagReferenceResolverAutoLinkResolver$TagReferenceResolverorg.apache.wicket.markup.resolver .AutoLinkResolver$TagReferenceResolver
WicketMessageResolver$MessageContainer$1WicketMessageResolver$MessageContainer$1org.apache.wicket.markup.resolver .WicketMessageResolver$MessageContainer$1
WicketMessageResolver$MessageContainerWicketMessageResolver$MessageContainerorg.apache.wicket.markup.resolver .WicketMessageResolver$MessageContainer
AbstractOutputTransformerContainer$1AbstractOutputTransformerContainer$1org.apache.wicket.markup.transformer .AbstractOutputTransformerContainer$1
AbstractOutputTransformerContainer$2AbstractOutputTransformerContainer$2org.apache.wicket.markup.transformer .AbstractOutputTransformerContainer$2
PriorityFirstComparator$HeaderItemTypePriorityFirstComparator$HeaderItemTypeorg.apache.wicket.markup.head.PriorityFirstComparator$HeaderItemType
ResourceAggregator$RecordedHeaderItemResourceAggregator$RecordedHeaderItemorg.apache.wicket.markup.head.ResourceAggregator$RecordedHeaderItem
ResourceAggregator$RecordedHeaderItemLocationResourceAggregator$RecordedHeaderItemLocationorg.apache.wicket.markup.head .ResourceAggregator$RecordedHeaderItemLocation
CssAndPageAcceptingHeaderResponseFilterCssAndPageAcceptingHeaderResponseFilterorg.apache.wicket.markup.head.filter .CssAndPageAcceptingHeaderResponseFilter
FilteringHeaderResponse$IHeaderResponseFilterFilteringHeaderResponse$IHeaderResponseFilterorg.apache.wicket.markup.head.filter .FilteringHeaderResponse$IHeaderResponseFilter
JavaScriptAcceptingHeaderResponseFilterJavaScriptAcceptingHeaderResponseFilterorg.apache.wicket.markup.head.filter .JavaScriptAcceptingHeaderResponseFilter
JavaScriptFilteredIntoFooterHeaderResponseJavaScriptFilteredIntoFooterHeaderResponseorg.apache.wicket.markup.head.filter .JavaScriptFilteredIntoFooterHeaderResponse
SecurePackageResourceGuard$SearchPatternSecurePackageResourceGuard$SearchPatternorg.apache.wicket.markup.html.SecurePackageResourceGuard$SearchPattern
SecurePackageResourceGuard$SimpleCacheSecurePackageResourceGuard$SimpleCacheorg.apache.wicket.markup.html.SecurePackageResourceGuard$SimpleCache
HtmlHeaderContainer$HeaderStreamStateHtmlHeaderContainer$HeaderStreamStateorg.apache.wicket.markup.html.internal .HtmlHeaderContainer$HeaderStreamState
BrowserInfoForm$ClientPropertiesBeanBrowserInfoForm$ClientPropertiesBeanorg.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean
AbstractTextComponent$ITextFormatProviderAbstractTextComponent$ITextFormatProviderorg.apache.wicket.markup.html.form .AbstractTextComponent$ITextFormatProvider
FormComponentFeedbackBorder$ErrorIndicatorFormComponentFeedbackBorder$ErrorIndicatororg.apache.wicket.markup.html.form.validation .FormComponentFeedbackBorder$ErrorIndicator
DefaultButtonImageResourceFactory$ParserDefaultButtonImageResourceFactory$Parserorg.apache.wicket.markup.html.image.resource .DefaultButtonImageResourceFactory$Parser
LocalizedImageResource$ImageValueParserLocalizedImageResource$ImageValueParserorg.apache.wicket.markup.html.image.resource .LocalizedImageResource$ImageValueParser
LocalizedImageResource$SimpleStaticResourceReferenceLocalizedImageResource$SimpleStaticResourceReferenceorg.apache.wicket.markup.html.image.resource .LocalizedImageResource$SimpleStaticResourceReference
WicketMessageTagHandler$AttributeLocalizerWicketMessageTagHandler$AttributeLocalizerorg.apache.wicket.markup.parser.filter .WicketMessageTagHandler$AttributeLocalizer
AbstractPageableView$CappedIteratorAdapter<T>AbstractPageableView$CappedIteratorAdapterorg.apache.wicket.markup.repeater .AbstractPageableView$CappedIteratorAdapter
ComponentPropertyModel$AssignmentWrapper<P>ComponentPropertyModel$AssignmentWrapperorg.apache.wicket.model.ComponentPropertyModel$AssignmentWrapper
CompoundPropertyModel$AttachedCompoundPropertyModel<C>CompoundPropertyModel$AttachedCompoundPropertyModelorg.apache.wicket.model .CompoundPropertyModel$AttachedCompoundPropertyModel
StringResourceModel$AssignmentWrapperStringResourceModel$AssignmentWrapperorg.apache.wicket.model.StringResourceModel$AssignmentWrapper
AsynchronousDataStore$PageSavingRunnableAsynchronousDataStore$PageSavingRunnableorg.apache.wicket.pageStore.AsynchronousDataStore$PageSavingRunnable
DefaultPageStore$SerializedPagesCacheDefaultPageStore$SerializedPagesCacheorg.apache.wicket.pageStore.DefaultPageStore$SerializedPagesCache
PageWindowManager$PageWindowInternalPageWindowManager$PageWindowInternalorg.apache.wicket.pageStore.PageWindowManager$PageWindowInternal
BufferedWebResponse$ClearCookieActionBufferedWebResponse$ClearCookieActionorg.apache.wicket.protocol.http.BufferedWebResponse$ClearCookieAction
BufferedWebResponse$SendRedirectActionBufferedWebResponse$SendRedirectActionorg.apache.wicket.protocol.http.BufferedWebResponse$SendRedirectAction
BufferedWebResponse$SetContentLengthActionBufferedWebResponse$SetContentLengthActionorg.apache.wicket.protocol.http .BufferedWebResponse$SetContentLengthAction
BufferedWebResponse$SetContentTypeActionBufferedWebResponse$SetContentTypeActionorg.apache.wicket.protocol.http .BufferedWebResponse$SetContentTypeAction
BufferedWebResponse$SetDateHeaderActionBufferedWebResponse$SetDateHeaderActionorg.apache.wicket.protocol.http .BufferedWebResponse$SetDateHeaderAction
BufferedWebResponse$WriteCharSequenceActionBufferedWebResponse$WriteCharSequenceActionorg.apache.wicket.protocol.http .BufferedWebResponse$WriteCharSequenceAction
WebApplication$DefaultAjaxRequestTargetProviderWebApplication$DefaultAjaxRequestTargetProviderorg.apache.wicket.protocol.http .WebApplication$DefaultAjaxRequestTargetProvider
WebApplication$WebPageRendererProviderWebApplication$WebPageRendererProviderorg.apache.wicket.protocol.http.WebApplication$WebPageRendererProvider
WebApplication$WebSessionStoreProviderWebApplication$WebSessionStoreProviderorg.apache.wicket.protocol.http.WebApplication$WebSessionStoreProvider
WebApplicationFactoryCreationExceptionWebApplicationFactoryCreationExceptionorg.apache.wicket.protocol.http.WebApplicationFactoryCreationException

Statistics

Stat   SimpleName
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
error    Query error: Avoid methods with name too long
1 query syntax error: Missing close parenthesis ')' {(}

Content of the Rule or Query

// <Name>Avoid methods with name too long</Name>
warnif count > 0 from m in Application.Methods where 
  
!m.IsGeneratedByCompiler &&
 
((!m.IsSpecialName && m.SimpleName.Length > 35)

select new { m, m.SimpleName }

// The regex matches methods with name longer 
// than 35 characters.
// Method Name doesn't contain the type and package 
// prefix, FullName does.
// The regex computes the method name length from 
// the beginning until the first open parenthesis 
// or first lower than (for generic methods).
// Explicit Interface Implementation methods are 
// discarded because their names are prefixed 
// with the interface name.
      
warningCritical    Rule warning: Avoid fields with name too long
// <Name>Avoid fields with name too long</Name>
warnif count > 0 from f in Application.Fields where
 
!f.IsGeneratedByCompiler &&
  
f.Name.Length > 35
select f

// The regex matches fields with name longer 
// than 35 characters.
// Field Name doesn't contain the type and 
// package prefix, FullName does.
      

16 fields matched

fieldsFull Name
componentPostOnBeforeRenderListenersorg.apache.wicket.Application.componentPostOnBeforeRenderListeners
RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIEDorg.apache.wicket.Component.RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIED
RFLAG_INITIALIZE_SUPER_CALL_VERIFIEDorg.apache.wicket.Component.RFLAG_INITIALIZE_SUPER_CALL_VERIFIED
BEFORE_SEND_HANDLER_FUNCTION_TEMPLATEorg.apache.wicket.ajax.AbstractDefaultAjaxBehavior .BEFORE_SEND_HANDLER_FUNCTION_TEMPLATE
FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULLorg.apache.wicket.markup.html.form.FormComponent .FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL
WICKET_RELATIVE_PATH_PREFIX_CONTAINER_IDorg.apache.wicket.markup.parser.filter.RelativePathPrefixHandler .WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID
proprietaryIECssExpressionsSupportedorg.apache.wicket.protocol.http.ClientProperties .proprietaryIECssExpressionsSupported
quirkCssBackgroundAttachmentUseFixedorg.apache.wicket.protocol.http.ClientProperties .quirkCssBackgroundAttachmentUseFixed
quirkIETablePercentWidthScrollbarErrororg.apache.wicket.protocol.http.ClientProperties .quirkIETablePercentWidthScrollbarError
quirkMozillaPerformanceLargeDomRemoveorg.apache.wicket.protocol.http.ClientProperties .quirkMozillaPerformanceLargeDomRemove
linePreciseReportingOnAddComponentEnabledorg.apache.wicket.settings.def.DebugSettings .linePreciseReportingOnAddComponentEnabled
linePreciseReportingOnNewComponentEnabledorg.apache.wicket.settings.def.DebugSettings .linePreciseReportingOnNewComponentEnabled
errorHandlingStrategyDuringAjaxRequestsorg.apache.wicket.settings.def.ExceptionSettings .errorHandlingStrategyDuringAjaxRequests
throwExceptionOnMissingXmlDeclarationorg.apache.wicket.settings.def.MarkupSettings .throwExceptionOnMissingXmlDeclaration
unauthorizedComponentInstantiationListenerorg.apache.wicket.settings.def.SecuritySettings .unauthorizedComponentInstantiationListener
originalFeedbackMessageCleanupFilterorg.apache.wicket.util.tester.BaseWicketTester .originalFeedbackMessageCleanupFilter

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Avoid having different types with same name
 // <Name>Avoid having different types with same name</Name>
// Such practice typically creates confusion, 
// and type naming collision inside a source file.

warnif count > 0

// This rule matches also collisions between 
// application and third-party types sharing a same name.
let groups = JustMyCode.Types.Union(ThirdParty.Types)
                 
// Discard nested types, whose name is 
                 // prefixed with the parent type name.
                 .Where(t => !t.IsNested)
                 
                 
// Group types by name.
                 .GroupBy(t => t.Name)

from @group in groups 
   
where @group.Count() > 1

   
// Let's see if types with the same name are declared
   // in different packages.
   // (t.FullName is {packageName}.{typeName} )
   let groupsFullName = @group.GroupBy(t => t.FullName)
   
where groupsFullName.Count() > 1

   
// If several types with same name are declared in different packages
   // eliminate the case where all types are declared in third-party projects.
   let types= groupsFullName.SelectMany(g => g)
   
where types.Any(t => !t.IsThirdParty)
        
// Uncomment this line, to only gets naming collision involving
        // both application adn third-party types.
        //         && types.Any(t => t.IsThirdParty)

orderby types.Count() descending 

select new { t = types.First(),
             
// In the 'types' column, make sure to group matched types 
             // by parent projects and parent packages.
             types
            
}

3 types matched

typestypesFull Name
Cookie2 typesorg.apache.wicket.ajax.json.Cookie
UrlUtils2 typesorg.apache.wicket.core.util.string.UrlUtils
Properties2 typesorg.apache.wicket.resource.Properties

Statistics

Stat   types
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

410
Source Files Organization  

warningCritical    Rule warning: Avoid defining multiple types in a source file
// <Name>Avoid defining multiple types in a source file</Name>
warnif count > 0 

// Build a lookup indexed by source files, values being a sequence of types defined in the source file.
let lookup = Application.Types.Where(t => 
                                
t.SourceFileDeclAvailable && 
                               
// except nested types and types generated by compilers!
                               !t.IsGeneratedByCompiler &&                               
                               
!t.IsNested)                                
                         
// It could make sense to not apply this rule for enumerations.
                         // && !t.IsEnumeration)

            
// We use multi-key, since a type can be declared in multiple source files.
           .ToMultiKeyLookup(t => t.SourceDecls.Select(d => d.SourceFile))
 
from @group in lookup where @group.Count() > 1
   
let sourceFile = @group.Key

   
// CQLinq doesn't let indexing result with sourceFile 
   // so we choose a typeIndex in types, 
   // preferably the type that has the file name.
   let typeWithSourceFileName = @group.FirstOrDefault(t => t.SimpleName == sourceFile.FileNameWithoutExtension)
   
let typeIndex = typeWithSourceFileName ?? @group.First()

select new { typeIndex, 
             
types = @group as IEnumerable<IType>, 
             
sourceFile.FilePathString }

58 types matched

typestypesFilePathStringFull Name
Application3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\Application.javaorg.apache.wicket.Application
Behaviors2 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\Behaviors.javaorg.apache.wicket.Behaviors
ComponentEventSender3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\ComponentEventSender.javaorg.apache.wicket.ComponentEventSender
ConverterLocator4 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\ConverterLocator.javaorg.apache.wicket.ConverterLocator
Localizer2 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\Localizer.javaorg.apache.wicket.Localizer
MarkupContainer9 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\MarkupContainer.javaorg.apache.wicket.MarkupContainer
Session2 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\Session.javaorg.apache.wicket.Session
SharedResources3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\SharedResources.javaorg.apache.wicket.SharedResources
SystemMapper5 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\SystemMapper.javaorg.apache.wicket.SystemMapper
WildcardMatcherHelper9 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\application\WildcardMatcherHelper.javaorg.apache.wicket.application.WildcardMatcherHelper
MockApplication3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\mock\MockApplication.javaorg.apache.wicket.mock.MockApplication
PageStoreManager7 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\page\PageStoreManager.javaorg.apache.wicket.page.PageStoreManager
HttpSessionStore5 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\session\HttpSessionStore.javaorg.apache.wicket.session.HttpSessionStore
AbstractAjaxResponse14 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\ajax\AbstractAjaxResponse.javaorg.apache.wicket.ajax.AbstractAjaxResponse
JSONObject4 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\ajax\json\JSONObject.javaorg.apache.wicket.ajax.json.JSONObject
AbstractBookmarkableMapper6 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\core\request\mapper\AbstractBookmarkableMapper.javaorg.apache.wicket.core.request.mapper.AbstractBookmarkableMapper
CryptoMapper6 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\core\request\mapper\CryptoMapper.javaorg.apache.wicket.core.request.mapper.CryptoMapper
MountedMapper12 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\core\request\mapper\MountedMapper.javaorg.apache.wicket.core.request.mapper.MountedMapper
SerializableChecker5 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\core\util\io\SerializableChecker.javaorg.apache.wicket.core.util.io.SerializableChecker
PropertyResolver53 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\core\util\lang\PropertyResolver.javaorg.apache.wicket.core.util.lang.PropertyResolver
WicketObjects8 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\core\util\lang\WicketObjects.javaorg.apache.wicket.core.util.lang.WicketObjects
CheckingObjectOutputStream4 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\core\util\objects\checker\CheckingObjectOutputStream.javaorg.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream
MarkupCache11 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\MarkupCache.javaorg.apache.wicket.markup.MarkupCache
MarkupParser5 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\MarkupParser.javaorg.apache.wicket.markup.MarkupParser
AutoLinkResolver11 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\resolver\AutoLinkResolver.javaorg.apache.wicket.markup.resolver.AutoLinkResolver
SecurePackageResourceGuard14 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\SecurePackageResourceGuard.javaorg.apache.wicket.markup.html.SecurePackageResourceGuard
Border8 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\border\Border.javaorg.apache.wicket.markup.html.border.Border
HtmlHeaderContainer4 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\internal\HtmlHeaderContainer.javaorg.apache.wicket.markup.html.internal.HtmlHeaderContainer
ClientSideImageMap4 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\link\ClientSideImageMap.javaorg.apache.wicket.markup.html.link.ClientSideImageMap
AutoLabelResolver4 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\form\AutoLabelResolver.javaorg.apache.wicket.markup.html.form.AutoLabelResolver
CheckBox4 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\form\CheckBox.javaorg.apache.wicket.markup.html.form.CheckBox
MultiFileUploadField2 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\form\upload\MultiFileUploadField.javaorg.apache.wicket.markup.html.form.upload.MultiFileUploadField
FormComponentFeedbackBorder3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\form\validation\FormComponentFeedbackBorder.javaorg.apache.wicket.markup.html.form.validation .FormComponentFeedbackBorder
DefaultButtonImageResourceFactory5 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\image\resource\DefaultButtonImageResourceFactory.javaorg.apache.wicket.markup.html.image.resource .DefaultButtonImageResourceFactory
LocalizedImageResource7 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\image\resource\LocalizedImageResource.javaorg.apache.wicket.markup.html.image.resource.LocalizedImageResource
PagingNavigation3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\navigation\paging\PagingNavigation.javaorg.apache.wicket.markup.html.navigation.paging.PagingNavigation
PagingNavigator3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\html\navigation\paging\PagingNavigator.javaorg.apache.wicket.markup.html.navigation.paging.PagingNavigator
WicketMessageTagHandler3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\markup\parser\filter\WicketMessageTagHandler.javaorg.apache.wicket.markup.parser.filter.WicketMessageTagHandler
ResourceModel5 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\model\ResourceModel.javaorg.apache.wicket.model.ResourceModel
StringResourceModel7 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\model\StringResourceModel.javaorg.apache.wicket.model.StringResourceModel
AsynchronousDataStore7 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\pageStore\AsynchronousDataStore.javaorg.apache.wicket.pageStore.AsynchronousDataStore
DefaultPageStore12 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\pageStore\DefaultPageStore.javaorg.apache.wicket.pageStore.DefaultPageStore
DiskDataStore12 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\pageStore\DiskDataStore.javaorg.apache.wicket.pageStore.DiskDataStore
HttpsMapper5 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\protocol\https\HttpsMapper.javaorg.apache.wicket.protocol.https.HttpsMapper
BufferedWebResponse35 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\protocol\http\BufferedWebResponse.javaorg.apache.wicket.protocol.http.BufferedWebResponse
WebApplication4 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\protocol\http\WebApplication.javaorg.apache.wicket.protocol.http.WebApplication
MockHttpServletRequest8 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\protocol\http\mock\MockHttpServletRequest.javaorg.apache.wicket.protocol.http.mock.MockHttpServletRequest
SecuredRemoteAddressRequestWrapperFactory2 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\protocol\http\servlet\SecuredRemoteAddressRequestWrapperFactory.javaorg.apache.wicket.protocol.http.servlet .SecuredRemoteAddressRequestWrapperFactory
XForwardedRequestWrapperFactory11 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\protocol\http\servlet\XForwardedRequestWrapperFactory.javaorg.apache.wicket.protocol.http.servlet .XForwardedRequestWrapperFactory
RequestCycle3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\request\cycle\RequestCycle.javaorg.apache.wicket.request.cycle.RequestCycle
AbstractResource30 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\request\resource\AbstractResource.javaorg.apache.wicket.request.resource.AbstractResource
PackageResource6 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\request\resource\PackageResource.javaorg.apache.wicket.request.resource.PackageResource
ResourceReferenceRegistry2 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\request\resource\ResourceReferenceRegistry.javaorg.apache.wicket.request.resource.ResourceReferenceRegistry
JavaSerializer7 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\serialize\java\JavaSerializer.javaorg.apache.wicket.serialize.java.JavaSerializer
BaseWicketTester19 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\util\tester\BaseWicketTester.javaorg.apache.wicket.util.tester.BaseWicketTester
DummyHomePage3 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\util\tester\DummyHomePage.javaorg.apache.wicket.util.tester.DummyHomePage
FormTester7 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\util\tester\FormTester.javaorg.apache.wicket.util.tester.FormTester
CreditCardValidator2 typesC:\Users\issam\Downloads\apache-wicket-6.6.0\apache-wicket-6.6.0\wicket-core\src\main\java\org\apache\wicket\validation\validator\CreditCardValidator.javaorg.apache.wicket.validation.validator.CreditCardValidator

Statistics

Stat   types   FilePathString
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00

Object Oriented Design

Base class should not use derivatives
// <Name>Base class should not use derivatives</Name>
warnif count > 0 
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }

10 types matched

typesderivedClassesUsedFull Name
AttributeModifier2 typesorg.apache.wicket.AttributeModifier
Component3 typesorg.apache.wicket.Component
MarkupContainer1 typeorg.apache.wicket.MarkupContainer
AjaxFormComponentUpdatingBehavior1 typeorg.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior
CheckingObjectOutputStream$ObjectOutputAdaptor1 typeorg.apache.wicket.core.util.objects.checker .CheckingObjectOutputStream$ObjectOutputAdaptor
AbstractHeaderRenderStrategy1 typeorg.apache.wicket.markup.renderStrategy.AbstractHeaderRenderStrategy
CssHeaderItem3 typesorg.apache.wicket.markup.head.CssHeaderItem
JavaScriptHeaderItem3 typesorg.apache.wicket.markup.head.JavaScriptHeaderItem
MultipartServletWebRequest1 typeorg.apache.wicket.protocol.http.servlet.MultipartServletWebRequest
ServletWebRequest3 typesorg.apache.wicket.protocol.http.servlet.ServletWebRequest

Statistics

Stat   derivedClassesUsed
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
Class shouldn't be too deep in inheritance tree
// <Name>Class shouldn't be too deep in inheritance tree</Name>
warnif count > 0 from t in JustMyCode.Types 
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()

// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes 
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3

select new { t, baseClasses, 
                
// The metric value DepthOfInheritance takes account
                // of third-party base classes
                t.DepthOfInheritance } 

// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here 
// http://www.jarchitect.com/Metrics.aspx#DIT

168 types matched

typesbaseClassesDepth of inheritanceFull Name
AttributeModifier$13 types4org.apache.wicket.AttributeModifier$1
FencedFeedbackPanel5 types6org.apache.wicket.feedback.FencedFeedbackPanel
MockHomePage4 types5org.apache.wicket.mock.MockHomePage
AbstractAjaxResponse$AjaxHtmlHeaderContainer5 types6org.apache.wicket.ajax.AbstractAjaxResponse$AjaxHtmlHeaderContainer
AbstractAjaxTimerBehavior3 types4org.apache.wicket.ajax.AbstractAjaxTimerBehavior
AjaxEventBehavior3 types4org.apache.wicket.ajax.AjaxEventBehavior
AjaxNewWindowNotifyingBehavior3 types4org.apache.wicket.ajax.AjaxNewWindowNotifyingBehavior
AjaxSelfUpdatingTimerBehavior4 types5org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior
WicketAjaxDebugJQueryResourceReference3 types4org.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference
WicketAjaxJQueryResourceReference3 types4org.apache.wicket.ajax.WicketAjaxJQueryResourceReference
WicketEventJQueryResourceReference3 types4org.apache.wicket.ajax.WicketEventJQueryResourceReference
AjaxFormChoiceComponentUpdatingBehavior5 types6org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior
AjaxFormComponentUpdatingBehavior4 types5org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior
AjaxFormSubmitBehavior4 types5org.apache.wicket.ajax.form.AjaxFormSubmitBehavior
AjaxFormValidatingBehavior$FormValidateVisitor$16 types7org.apache.wicket.ajax.form .AjaxFormValidatingBehavior$FormValidateVisitor$1
AjaxFormValidatingBehavior5 types6org.apache.wicket.ajax.form.AjaxFormValidatingBehavior
OnChangeAjaxBehavior5 types6org.apache.wicket.ajax.form.OnChangeAjaxBehavior
AjaxFallbackLink$14 types5org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1
AjaxFallbackLink<T>5 types6org.apache.wicket.ajax.markup.html.AjaxFallbackLink
AjaxLink$14 types5org.apache.wicket.ajax.markup.html.AjaxLink$1
AjaxLink<T>4 types5org.apache.wicket.ajax.markup.html.AjaxLink
AjaxButton$15 types6org.apache.wicket.ajax.markup.html.form.AjaxButton$1
AjaxButton6 types7org.apache.wicket.ajax.markup.html.form.AjaxButton
AjaxCheckBox$15 types6org.apache.wicket.ajax.markup.html.form.AjaxCheckBox$1
AjaxCheckBox6 types7org.apache.wicket.ajax.markup.html.form.AjaxCheckBox
AjaxFallbackButton$15 types6org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1
AjaxFallbackButton6 types7org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton
AjaxSubmitLink$15 types6org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1
AjaxSubmitLink5 types6org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink
AjaxPagingNavigation6 types7org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigation
AjaxPagingNavigationBehavior4 types5org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationBehavior
AjaxPagingNavigationIncrementLink$15 types6org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationIncrementLink$1
AjaxPagingNavigationIncrementLink6 types7org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationIncrementLink
AjaxPagingNavigationLink$15 types6org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationLink$1
AjaxPagingNavigationLink6 types7org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationLink
AjaxPagingNavigator5 types6org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigator
HomePageMapper3 types5org.apache.wicket.core.request.mapper.HomePageMapper
AutoLinkResolver$AutolinkBookmarkablePageLink<T>6 types7org.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkBookmarkablePageLink
AutoLinkResolver$AutolinkExternalLink5 types6org.apache.wicket.markup.resolver .AutoLinkResolver$AutolinkExternalLink
AutoLinkResolver$ResourceReferenceAutolink3 types4org.apache.wicket.markup.resolver .AutoLinkResolver$ResourceReferenceAutolink
NoopOutputTransformerContainer3 types4org.apache.wicket.markup.transformer.NoopOutputTransformerContainer
XsltOutputTransformerContainer3 types4org.apache.wicket.markup.transformer.XsltOutputTransformerContainer
HeaderResponseContainer3 types4org.apache.wicket.markup.head.filter.HeaderResponseContainer
GenericWebPage<T>4 types5org.apache.wicket.markup.html.GenericWebPage
HeaderPartContainer3 types4org.apache.wicket.markup.html.HeaderPartContainer
TransparentWebMarkupContainer3 types4org.apache.wicket.markup.html.TransparentWebMarkupContainer
WebPage3 types4org.apache.wicket.markup.html.WebPage
EnclosureContainer3 types4org.apache.wicket.markup.html.basic.EnclosureContainer
Body3 types4org.apache.wicket.markup.html.border.Body
Border$BorderBodyContainer3 types4org.apache.wicket.markup.html.border.Border$BorderBodyContainer
Border3 types4org.apache.wicket.markup.html.border.Border
BorderPanel4 types5org.apache.wicket.markup.html.border.BorderPanel
BoxBorder4 types5org.apache.wicket.markup.html.border.BoxBorder
PageView$35 types6org.apache.wicket.markup.html.debug.PageView$3
PageView4 types5org.apache.wicket.markup.html.debug.PageView
Enclosure3 types4org.apache.wicket.markup.html.internal.Enclosure
HtmlHeaderContainer4 types5org.apache.wicket.markup.html.internal.HtmlHeaderContainer
InlineEnclosure4 types5org.apache.wicket.markup.html.internal.InlineEnclosure
AbstractLink3 types4org.apache.wicket.markup.html.link.AbstractLink
BookmarkablePageLink<T>5 types6org.apache.wicket.markup.html.link.BookmarkablePageLink
ClientSideImageMap4 types5org.apache.wicket.markup.html.link.ClientSideImageMap
DownloadLink5 types6org.apache.wicket.markup.html.link.DownloadLink
ExternalLink4 types5org.apache.wicket.markup.html.link.ExternalLink
InlineFrame3 types4org.apache.wicket.markup.html.link.InlineFrame
Link<T>4 types5org.apache.wicket.markup.html.link.Link
PopupCloseLink$ClosePopupPage4 types5org.apache.wicket.markup.html.link.PopupCloseLink$ClosePopupPage
PopupCloseLink<T>5 types6org.apache.wicket.markup.html.link.PopupCloseLink
ResourceLink<T>5 types6org.apache.wicket.markup.html.link.ResourceLink
StatelessLink<T>5 types6org.apache.wicket.markup.html.link.StatelessLink
AbstractItem3 types4org.apache.wicket.markup.html.list.AbstractItem
ListItem<T>5 types6org.apache.wicket.markup.html.list.ListItem
ListView$15 types6org.apache.wicket.markup.html.list.ListView$1
ListView$25 types6org.apache.wicket.markup.html.list.ListView$2
ListView$35 types6org.apache.wicket.markup.html.list.ListView$3
ListView<T>4 types5org.apache.wicket.markup.html.list.ListView
Loop4 types5org.apache.wicket.markup.html.list.Loop
LoopItem4 types5org.apache.wicket.markup.html.list.LoopItem
OddEvenListItem<T>6 types7org.apache.wicket.markup.html.list.OddEvenListItem
PageableListView<T>5 types6org.apache.wicket.markup.html.list.PageableListView
PropertyListView<T>5 types6org.apache.wicket.markup.html.list.PropertyListView
AbstractErrorPage4 types5org.apache.wicket.markup.html.pages.AbstractErrorPage
AccessDeniedPage5 types6org.apache.wicket.markup.html.pages.AccessDeniedPage
BrowserInfoForm$14 types5org.apache.wicket.markup.html.pages.BrowserInfoForm$1
BrowserInfoForm4 types5org.apache.wicket.markup.html.pages.BrowserInfoForm
BrowserInfoPage$35 types6org.apache.wicket.markup.html.pages.BrowserInfoPage$3
BrowserInfoPage4 types5org.apache.wicket.markup.html.pages.BrowserInfoPage
ExceptionErrorPage$15 types6org.apache.wicket.markup.html.pages.ExceptionErrorPage$1
ExceptionErrorPage5 types6org.apache.wicket.markup.html.pages.ExceptionErrorPage
InternalErrorPage5 types6org.apache.wicket.markup.html.pages.InternalErrorPage
PageExpiredErrorPage5 types6org.apache.wicket.markup.html.pages.PageExpiredErrorPage
RedirectPage4 types5org.apache.wicket.markup.html.pages.RedirectPage
ComponentFeedbackPanel5 types6org.apache.wicket.markup.html.panel.ComponentFeedbackPanel
EmptyPanel4 types5org.apache.wicket.markup.html.panel.EmptyPanel
FeedbackPanel$13 types4org.apache.wicket.markup.html.panel.FeedbackPanel$1
FeedbackPanel$MessageListView5 types6org.apache.wicket.markup.html.panel.FeedbackPanel$MessageListView
FeedbackPanel4 types5org.apache.wicket.markup.html.panel.FeedbackPanel
Fragment3 types4org.apache.wicket.markup.html.panel.Fragment
GenericPanel<T>4 types5org.apache.wicket.markup.html.panel.GenericPanel
Panel3 types4org.apache.wicket.markup.html.panel.Panel
AbstractCheckSelector$13 types4org.apache.wicket.markup.html.form.AbstractCheckSelector$1

Statistics

Stat   baseClasses   Depth of inheritance
Sum:0936
Average:05.57
Minimum:04
Maximum:09
Standard deviation:01.26
Variance:01.59
Class with no descendant should be final if possible
// <Name>Class with no descendant should be final if possible</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsClass && 
  
t.NbChildren ==0 && 
 
!t.IsFinal && 
 
!t.IsStatic 
  
// && !t.IsPublic <-- You might want to add this condition 
  //                    if you are developping a framework
  //                    with classes that are intended to be 
  //                    sub-classed by your clients.
  orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode }

728 types matched

types# lines of code (LOC)Full Name
JSONObject481org.apache.wicket.ajax.json.JSONObject
MockHttpServletRequest335org.apache.wicket.protocol.http.mock.MockHttpServletRequest
XML254org.apache.wicket.ajax.json.XML
JSONML231org.apache.wicket.ajax.json.JSONML
JSONArray184org.apache.wicket.ajax.json.JSONArray
XMLTokener184org.apache.wicket.ajax.json.XMLTokener
HtmlDocumentValidator182org.apache.wicket.protocol.http.documentvalidation .HtmlDocumentValidator
ClientProperties169org.apache.wicket.protocol.http.ClientProperties
MockHttpServletResponse162org.apache.wicket.protocol.http.mock.MockHttpServletResponse
RequestCycle159org.apache.wicket.request.cycle.RequestCycle
MergedMarkup145org.apache.wicket.markup.MergedMarkup
TagTester144org.apache.wicket.util.tester.TagTester
MarkupCache142org.apache.wicket.markup.MarkupCache
BufferedHttpServletResponse137org.apache.wicket.protocol.http.BufferedHttpServletResponse
UrlValidator130org.apache.wicket.validation.validator.UrlValidator
CreditCardValidator126org.apache.wicket.validation.validator.CreditCardValidator
Localizer124org.apache.wicket.Localizer
FormTester122org.apache.wicket.util.tester.FormTester
PageWindowManager118org.apache.wicket.pageStore.PageWindowManager
MockServletContext115org.apache.wicket.protocol.http.mock.MockServletContext
CheckBoxMultipleChoice<T>113org.apache.wicket.markup.html.form.CheckBoxMultipleChoice
MarkupStream112org.apache.wicket.markup.MarkupStream
RadioChoice<T>109org.apache.wicket.markup.html.form.RadioChoice
XmlTag108org.apache.wicket.markup.parser.XmlTag
WicketTester107org.apache.wicket.util.tester.WicketTester
AjaxRequestHandler99org.apache.wicket.ajax.AjaxRequestHandler
DiskDataStore99org.apache.wicket.pageStore.DiskDataStore
MultipartServletWebRequestImpl98org.apache.wicket.protocol.http.servlet.MultipartServletWebRequestImpl
DefaultPageStore94org.apache.wicket.pageStore.DefaultPageStore
WildcardMatcherHelper$Matcher93org.apache.wicket.application.WildcardMatcherHelper$Matcher
CDL91org.apache.wicket.ajax.json.CDL
ReloadingClassLoader89org.apache.wicket.application.ReloadingClassLoader
JavaScriptStripper89org.apache.wicket.core.util.string.JavaScriptStripper
StringResourceModel89org.apache.wicket.model.StringResourceModel
ConcatBundleResource88org.apache.wicket.resource.bundles.ConcatBundleResource
ResourceAggregator87org.apache.wicket.markup.head.ResourceAggregator
HtmlDocumentParser87org.apache.wicket.protocol.http.documentvalidation.HtmlDocumentParser
HttpSessionStore85org.apache.wicket.session.HttpSessionStore
BufferedWebResponse85org.apache.wicket.protocol.http.BufferedWebResponse
BasicResourceReferenceMapper84org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper
ExceptionErrorPage80org.apache.wicket.markup.html.pages.ExceptionErrorPage
WebClientInfo78org.apache.wicket.protocol.http.request.WebClientInfo
XForwardedRequestWrapperFactory77org.apache.wicket.protocol.http.servlet .XForwardedRequestWrapperFactory
PageAccessSynchronizer76org.apache.wicket.page.PageAccessSynchronizer
BorderBehavior76org.apache.wicket.markup.html.border.BorderBehavior
MockWebResponse75org.apache.wicket.mock.MockWebResponse
WicketObjects74org.apache.wicket.core.util.lang.WicketObjects
ResourceSettings74org.apache.wicket.settings.def.ResourceSettings
CookieUtils74org.apache.wicket.util.cookies.CookieUtils
WicketMessageResolver$MessageContainer73org.apache.wicket.markup.resolver .WicketMessageResolver$MessageContainer
MarkupFactory71org.apache.wicket.markup.MarkupFactory
ResourceReferenceRegistry71org.apache.wicket.request.resource.ResourceReferenceRegistry
PropertiesFactory71org.apache.wicket.resource.PropertiesFactory
DiskDataStore$SessionEntry70org.apache.wicket.pageStore.DiskDataStore$SessionEntry
WebPageRenderer68org.apache.wicket.request.handler.render.WebPageRenderer
Cookie65org.apache.wicket.ajax.json.Cookie
ListenerInterfaceLogData65org.apache.wicket.core.request.handler.logger.ListenerInterfaceLogData
Check<T>65org.apache.wicket.markup.html.form.Check
MarkupFragment64org.apache.wicket.markup.MarkupFragment
XForwardedRequestWrapper62org.apache.wicket.protocol.http.servlet.XForwardedRequestWrapper
MockWebRequest61org.apache.wicket.mock.MockWebRequest
ResourceMapper61org.apache.wicket.core.request.mapper.ResourceMapper
TagStack61org.apache.wicket.markup.parser.TagStack
DefaultExceptionMapper60org.apache.wicket.DefaultExceptionMapper
CryptoMapper60org.apache.wicket.core.request.mapper.CryptoMapper
ClientSideImageMap60org.apache.wicket.markup.html.link.ClientSideImageMap
MultiFileUploadField60org.apache.wicket.markup.html.form.upload.MultiFileUploadField
Radio<T>58org.apache.wicket.markup.html.form.Radio
RequestLogger57org.apache.wicket.protocol.http.RequestLogger
MarkupResourceStream56org.apache.wicket.markup.MarkupResourceStream
HttpsMapper56org.apache.wicket.protocol.https.HttpsMapper
RequestListenerInterface55org.apache.wicket.RequestListenerInterface
PageStoreManager$SessionEntry55org.apache.wicket.page.PageStoreManager$SessionEntry
BrowserInfoForm$ClientPropertiesBean55org.apache.wicket.markup.html.pages .BrowserInfoForm$ClientPropertiesBean
WicketTesterHelper54org.apache.wicket.util.tester.WicketTesterHelper
ListenerInterfaceRequestHandler53org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler
DefaultButtonImageResource53org.apache.wicket.markup.html.image.resource .DefaultButtonImageResource
AsynchronousDataStore53org.apache.wicket.pageStore.AsynchronousDataStore
UrlResourceStream52org.apache.wicket.core.util.resource.UrlResourceStream
GridView<T>52org.apache.wicket.markup.repeater.data.GridView
AbstractResource$ResourceResponse51org.apache.wicket.request.resource.AbstractResource$ResourceResponse
HTTP50org.apache.wicket.ajax.json.HTTP
PopupSettings48org.apache.wicket.markup.html.link.PopupSettings
DefaultPageStore$SerializedPagesCache48org.apache.wicket.pageStore.DefaultPageStore$SerializedPagesCache
PageInstanceMapper47org.apache.wicket.core.request.mapper.PageInstanceMapper
ComponentHierarchyIterator47org.apache.wicket.util.iterator.ComponentHierarchyIterator
FormComponent$MessageSource46org.apache.wicket.markup.html.form.FormComponent$MessageSource
WicketLinkTagHandler46org.apache.wicket.markup.parser.filter.WicketLinkTagHandler
FileUpload45org.apache.wicket.markup.html.form.upload.FileUpload
SecurePackageResourceGuard43org.apache.wicket.markup.html.SecurePackageResourceGuard
ContextRelativeResource42org.apache.wicket.request.resource.ContextRelativeResource
MarkupContainer$ChildList41org.apache.wicket.MarkupContainer$ChildList
PackageMapper41org.apache.wicket.core.request.mapper.PackageMapper
TagUtils41org.apache.wicket.markup.TagUtils
FileUploadField41org.apache.wicket.markup.html.form.upload.FileUploadField
PageAndComponentProvider39org.apache.wicket.core.request.handler.PageAndComponentProvider
AutoLabelTextResolver$TextLabel39org.apache.wicket.markup.html.form.AutoLabelTextResolver$TextLabel
Border$BorderBodyContainer38org.apache.wicket.markup.html.border.Border$BorderBodyContainer
CheckGroup<T>38org.apache.wicket.markup.html.form.CheckGroup
PackageResource$CacheKey38org.apache.wicket.request.resource.PackageResource$CacheKey

Statistics

Stat   # lines of code (LOC)
Sum:15 472
Average:21.25
Minimum:0
Maximum:481
Standard deviation:36.82
Variance:1 355
Avoid the Singleton pattern
//<Name>Avoid the Singleton pattern</Name>
warnif count > 0
from t in Application.Types
where !t.IsStatic && !t.IsAbstract && t.IsClass 

// All ctors of a singleton are private
where t.Constructors.Where(ctor => !ctor.IsPrivate).Count() == 0

// A singleton contains one static field of its parent type, to reference the unique instance
let staticFieldInstances = t.StaticFields.WithFieldType(t)
where staticFieldInstances.Count() == 1
select new { t, staticFieldInstance = staticFieldInstances.First() }

// The Singleton pattern consists in syntactically enforcing that a class 
// has just one unique instance.
// At first glance, this pattern looks appealing and it is widely used.
// However, we discourage you from using singleton classes because experience
// shows that singletons often result in less testable and less maintainable code.
// More details available in these discussions:
//  http://adamschepis.com/blog/2011/05/02/im-adam-and-im-a-recovering-singleton-addict/

8 types matched

typesstaticFieldInstanceFull Name
WicketAjaxDebugJQueryResourceReferenceINSTANCEorg.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference
WicketAjaxJQueryResourceReferenceINSTANCEorg.apache.wicket.ajax.WicketAjaxJQueryResourceReference
WicketEventJQueryResourceReferenceINSTANCEorg.apache.wicket.ajax.WicketEventJQueryResourceReference
EmptyAjaxRequestHandlerinstanceorg.apache.wicket.core.request.handler.EmptyAjaxRequestHandler
DefaultMarkupSourcingStrategyinstanceorg.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy
JQueryResourceReferenceINSTANCEorg.apache.wicket.resource.JQueryResourceReference
NullResponseinstanceorg.apache.wicket.response.NullResponse
ResultPASSorg.apache.wicket.util.tester.Result

Statistics

Stat   staticFieldInstance
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
Don't assign static fields from instance methods
// <Name>Don't assign static fields from instance methods</Name>
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where 
  
f.IsStatic &&
 
!f.IsLiteral &&
 
!f.IsInitOnly &&
 
!f.IsGeneratedByCompiler &&
  
// Contract API define such a insideContractEvaluation static field
  f.Name != "insideContractEvaluation"
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }

1 fields matched

fieldassignedByFull Name
META_INF_RESOURCES_SUPPORTED1 methodorg.apache.wicket.request.resource.MetaInfStaticResourceReference .META_INF_RESOURCES_SUPPORTED

Statistics

Stat   assignedBy
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
Avoid empty interfaces
// <Name>Avoid empty interfaces</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsInterface && 
  
t.NbMethods == 0
select new { t, t.TypesThatImplementMe }

// Interfaces define members that provide a behavior 
// or usage contract. The functionality described by 
// the interface can be adopted by any type, 
// regardless of where the type appears in the 
// inheritance hierarchy. A type implements an 
// interface by providing implementations for the 
// interface's members. An empty interface does not 
// define any members, and as such, does not define 
// a contract that can be implemented.

// If your design includes empty interfaces that 
// types are expected to implement, you are probably 
// using an interface as a marker, or a way of 
// identifying a group of types. If this identification 
// will occur at runtime, the correct way to accomplish
// this is to use a custom attribute. Use the presence 
// or absence of the attribute, or the attribute's 
// properties, to identify the target types. If the 
// identification must occurs at compile time, then using 
// an empty interface is acceptable.

4 types matched

typesTypesThatImplementMeFull Name
IRequestListener19 typesorg.apache.wicket.IRequestListener
IFeedback3 typesorg.apache.wicket.feedback.IFeedback
DocumentElement3 typesorg.apache.wicket.protocol.http.documentvalidation.DocumentElement
INullAcceptingValidator<T>1 typeorg.apache.wicket.validation.INullAcceptingValidator

Statistics

Stat   TypesThatImplementMe
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

API Breaking Changes

API Breaking Changes: Types
// <Name>API Breaking Changes: Types</Name>
// This rule warns if a publicly visible type is 
// not publicly visible anymore or if it has been removed.
// Such type can break the code of your clients.

warnif count > 0 from t in codeBase.OlderVersion().Application.Types
where t.IsPubliclyVisible && 

     
// The type has been removed and its parent project hasn't been removed ...
     ( (t.WasRemoved() && !t.ParentProject.WasRemoved()) ||

     
// ... or the type is not publicly visible anymore
       !t.WasRemoved() && !t.NewerVersion().IsPubliclyVisible)

select new { t,
             
NewVisibility = (t.WasRemoved() ? " " : t.NewerVersion().Visibility.ToString()) }

No types matched

API Breaking Changes: Methods
// <Name>API Breaking Changes: Methods</Name>
// This rule warns if a publicly visible method is 
// not publicly visible anymore or if it has been removed.
// Such method can break the code of your clients.

warnif count > 0 from m in codeBase.OlderVersion().Application.Methods
where m.IsPubliclyVisible && 

     
// The method has been removed and its parent type hasn't been removed ...
     ( (m.WasRemoved() && !m.ParentType.WasRemoved()) ||

     
// ... or the method is not publicly visible anymore
       !m.WasRemoved() && !m.NewerVersion().IsPubliclyVisible)

select new { m,
             
NewVisibility = (m.WasRemoved() ? " " : m.NewerVersion().Visibility.ToString()) }

No methods matched

API Breaking Changes: Fields
// <Name>API Breaking Changes: Fields</Name>
// This rule warns if a publicly visible field is 
// not publicly visible anymore or if it has been removed.
// Such field can break the code of your clients.

warnif count > 0 from f in codeBase.OlderVersion().Application.Fields
where f.IsPubliclyVisible &&

     
// The field has been removed and its parent type hasn't been removed ...
     ( (f.WasRemoved() && !f.ParentType.WasRemoved()) ||

     
// ... or the field is not publicly visible anymore
       !f.WasRemoved() && !f.NewerVersion().IsPubliclyVisible)

select new { f,
             
NewVisibility = (f.WasRemoved() ? " " : f.NewerVersion().Visibility.ToString()) }

No fields matched

API Breaking Changes: Interfaces and Abstract Classes
// <Name>API Breaking Changes: Interfaces and Abstract Classes</Name>
// This rule warns if a publicly visible interface or abstract class 
// has been changed and contains new abstract methods or 
// if some abstract methods have been removed.
// This can break the code of clients 
// that implement such interface or derive from such abstract class.

warnif count > 0 from tNewer in Application.Types where 
 
(tNewer.IsInterface || tNewer.IsClass && tNewer.IsAbstract) && 
  
tNewer.IsPubliclyVisible && 
  
tNewer.IsPresentInBothBuilds()

let tOlder = tNewer.OlderVersion() where tOlder.IsPubliclyVisible

let methodsRemoved = tOlder.Methods.Where(m => m.IsAbstract && m.WasRemoved())
let methodsAdded = tNewer.Methods.Where(m => m.IsAbstract && m.WasAdded())

where methodsAdded.Count() > 0 || methodsRemoved.Count() > 0
select new { tNewer, methodsAdded, methodsRemoved }

No types matched

Avoid transforming immutable types into mutable types
// <Name>Avoid transforming immutable types into mutable types</Name>

// Immutability is a strong property on a type.
// Breaking immutability can result in serious problem for an algorithm consummer
// that has been written taking account of the type immutability.

// To visualize changes in code, right-click a matched type and select:
//  - Compare older and newer versions of source file.

warnif count > 0 
from t in Application.Types where
  
t.IsPresentInBothBuilds() &&
 
!t.IsStatic &&
 
!t.IsImmutable && 
  
t.OlderVersion().IsImmutable

let mutableFields = from f in t.InstanceFields where !f.IsImmutable select f

select new { t, mutableFields }

No types matched

API: New publicly visible types
// <Name>API: New publicly visible types</Name>
// List types that are new in the public surface of your projects

from t in Application.Types
where t.IsPubliclyVisible && 

     
// The type has been removed and its parent project hasn't been removed ...
     ( (t.WasAdded() && !t.ParentProject.WasAdded()) ||

     
// ... or the type existed but was not publicly visible
       !t.WasAdded() && !t.OlderVersion().IsPubliclyVisible)

select new { t,
             
OldVisibility = (t.WasAdded() ? " " : t.OlderVersion().Visibility.ToString()) }

No types matched

API: New publicly visible methods
// <Name>API: New publicly visible methods</Name>
// List methods that are new in the public surface of your projects

from m in Application.Methods
where m.IsPubliclyVisible && 

     
// The method has been removed and its parent project hasn'm been removed ...
     ( (m.WasAdded() && !m.ParentType.WasAdded()) ||

     
// ... or the t existed but was not publicly visible
       !m.WasAdded() && !m.OlderVersion().IsPubliclyVisible)

select new { m,
             
OldVisibility = (m.WasAdded() ? " " : m.OlderVersion().Visibility.ToString()) }

No methods matched

API: New publicly visible fields
// <Name>API: New publicly visible fields</Name>
// List fields that are new in the public surface of your projects

from f in Application.Fields
where f.IsPubliclyVisible && 

     
// The method has been removed and its parent project hasn'f been removed ...
     ( (f.WasAdded() && !f.ParentType.WasAdded()) ||

     
// ... or the t existed but was not publicly visible
       !f.WasAdded() && !f.OlderVersion().IsPubliclyVisible)

select new { f,
             
OldVisibility = (f.WasAdded() ? " " : f.OlderVersion().Visibility.ToString()) }

No fields matched

Code Diff Summary

New projects
// <Name>New projects</Name>
from a in Application.Projects where a.WasAdded()
select new { a, a.NbLinesOfCode }

No projects matched

Projects removed
// <Name>Projects removed</Name>
from a in codeBase.OlderVersion().Application.Projects where a.WasRemoved()
select new { a, a.NbLinesOfCode }

No projects matched

Projects where code was changed
// <Name>Projects where code was changed</Name>
from a in Application.Projects where a.CodeWasChanged()
select new { a, a.NbLinesOfCode, 
             
oldNbLinesOfCode = a.OlderVersion().NbLinesOfCode.GetValueOrDefault() ,
             
delta = (int) a.NbLinesOfCode.GetValueOrDefault() - a.OlderVersion().NbLinesOfCode.GetValueOrDefault() }

No projects matched

New packages
// <Name>New packages</Name>
from n in Application.Packages where 
 
!n.ParentProject.WasAdded() &&
  
n.WasAdded()
select new { n, n.NbLinesOfCode }

No packages matched

Packages removed
// <Name>Packages removed</Name>
from n in codeBase.OlderVersion().Application.Packages where 
 
!n.ParentProject.WasRemoved() &&
  
n.WasRemoved()
select new { n, n.NbLinesOfCode }

No packages matched

Packages where code was changed
// <Name>Packages where code was changed</Name>
from n in Application.Packages where n.CodeWasChanged()
select new { n, n.NbLinesOfCode, 
             
oldNbLinesOfCode = n.OlderVersion().NbLinesOfCode.GetValueOrDefault() ,
             
delta = (int) n.NbLinesOfCode.GetValueOrDefault() - n.OlderVersion().NbLinesOfCode.GetValueOrDefault() }

No packages matched

New types
// <Name>New types</Name>
from t in Application.Types where 
 
!t.ParentPackage.WasAdded() &&
  
t.WasAdded()
select new { t, t.NbLinesOfCode }

No types matched

Types removed
// <Name>Types removed</Name>
from t in codeBase.OlderVersion().Application.Types where 
 
!t.ParentPackage.WasRemoved() &&
  
t.WasRemoved()
select new { t, t.NbLinesOfCode }

No types matched

Types where code was changed
// <Name>Types where code was changed</Name>
// To visualize changes in code, right-click a matched type and select:
//  - Compare older and newer versions of source file

from t in Application.Types where t.CodeWasChanged() 
//select new { t, t.NbLinesOfCode }
select new { t, t.NbLinesOfCode, 
             
oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
             
delta = (int?) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode } 
/*from t in Application.Types where t.CodeWasChanged() && t.IsPresentInBothBuild
select new { t, t.NbLinesOfCode, 
             oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
             delta = (int) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode }*/

No types matched

Heuristic to find types moved from one package or project to another
// <Name>Heuristic to find types moved from one package or project to another</Name>
let typesRemoved = codeBase.OlderVersion().Types.Where(t => t.WasRemoved())
let typesAdded = Types.Where(t => t.WasAdded())

from tMoved in typesAdded.Join(
   
typesRemoved,
   
t => t.Name,
   
t => t.Name,
   
(tNewer, tOlder) => new { tNewer, 
                             
OlderParentpackage = tOlder.ParentPackage,
                             
OlderParentproject = tOlder.ParentProject  } ) 
select tMoved

No types matched

Types directly using one or several types changed
// <Name>Types directly using one or several types changed</Name>
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()

from t in JustMyCode.Types.UsingAny(typesChanged) where
  
!t.CodeWasChanged() && 
  
!t.WasAdded()
let typesChangedUsed = t.TypesUsed.Intersect(typesChanged) 
select new { t, typesChangedUsed }

No types matched

Types indirectly using one or several types changed
// <Name>Types indirectly using one or several types changed</Name>
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()

// 'depth' represents a code metric defined on types using
// directly or indirectly any type where code was changed.
let depth = JustMyCode.Types.DepthOfIsUsingAny(typesChanged) 

from t in depth.DefinitionDomain where
  
!t.CodeWasChanged() && 
  
!t.WasAdded()

let typesChangedDirectlyUsed = t.TypesUsed.Intersect(typesChanged) 
let depthOfUsingTypesChanged = depth[t]
orderby depthOfUsingTypesChanged 

select new { t, depthOfUsingTypesChanged, typesChangedDirectlyUsed }

No types matched

New methods
// <Name>New methods</Name>
from m in Application.Methods where 
 
!m.ParentType.WasAdded() &&
  
m.WasAdded()
select new { m, m.NbLinesOfCode }

No methods matched

Methods removed
// <Name>Methods removed</Name>
from m in codeBase.OlderVersion().Application.Methods where 
 
!m.ParentType.WasRemoved() &&
  
m.WasRemoved()
select new { m, m.NbLinesOfCode }

No methods matched

Methods where code was changed
// <Name>Methods where code was changed</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file


from m in Application.Methods where m.CodeWasChanged()
select new { m, m.NbLinesOfCode, 
             
oldNbLinesOfCode = m.OlderVersion().NbLinesOfCode ,
             
delta = (int?) m.NbLinesOfCode - m.OlderVersion().NbLinesOfCode }

No methods matched

Methods directly calling one or several methods changed
// <Name>Methods directly calling one or several methods changed</Name>
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()

from m in JustMyCode.Methods.UsingAny(methodsChanged ) where
  
!m.CodeWasChanged() && 
  
!m.WasAdded()
let methodsChangedCalled = m.MethodsCalled.Intersect(methodsChanged) 
select new { m, methodsChangedCalled }

No methods matched

Methods indirectly calling one or several methods changed
// <Name>Methods indirectly calling one or several methods changed</Name>
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()

// 'depth' represents a code metric defined on methods using
// directly or indirectly any method where code was changed.
let depth = JustMyCode.Methods.DepthOfIsUsingAny(methodsChanged) 

from m in depth.DefinitionDomain where
  
!m.CodeWasChanged() && 
  
!m.WasAdded()

let methodsChangedDirectlyUsed = m.MethodsCalled.Intersect(methodsChanged) 
let depthOfUsingMethodsChanged = depth[m]
orderby depthOfUsingMethodsChanged 

select new { m, depthOfUsingMethodsChanged, methodsChangedDirectlyUsed }

No methods matched

New fields
// <Name>New fields</Name>
from f in Application.Fields where 
 
!f.ParentType.WasAdded() &&
  
f.WasAdded()
select new { f }

No fields matched

Fields removed
// <Name>Fields removed</Name>
from f in codeBase.OlderVersion().Application.Fields where 
 
!f.ParentType.WasRemoved() &&
  
f.WasRemoved()
select new { f }

No fields matched

Third party types that were not used and that are now used
// <Name>Third party types that were not used and that are now used</Name>
from t in ThirdParty.Types where t.IsUsedRecently()
select new { t, t.Methods, t.Fields, t.TypesUsingMe }

No types matched

Third party types that were used and that are not used anymore
// <Name>Third party types that were used and that are not used anymore</Name>
from t in codeBase.OlderVersion().Types where t.IsNotUsedAnymore()
select new { t, t.Methods, t.Fields, TypesThatUsedMe = t.TypesUsingMe }

No types matched

Third party methods that were not used and that are now used
// <Name>Third party methods that were not used and that are now used</Name>
from m in ThirdParty.Methods where 
  
m.IsUsedRecently() &&
 
!m.ParentType.IsUsedRecently()
select new { m, m.MethodsCallingMe }

No methods matched

Third party methods that were used and that are not used anymore
// <Name>Third party methods that were used and that are not used anymore</Name>
from m in codeBase.OlderVersion().Methods where 
  
m.IsNotUsedAnymore() &&
 
!m.ParentType.IsNotUsedAnymore()
select new { m, MethodsThatCalledMe = m.MethodsCallingMe}

No methods matched

Third party fields that were not used and that are now used
// <Name>Third party fields that were not used and that are now used</Name>
from f in ThirdParty.Fields where 
  
f.IsUsedRecently() &&
 
!f.ParentType.IsUsedRecently()
select new { f, f.MethodsUsingMe }

No fields matched

Third party fields that were used and that are not used anymore
// <Name>Third party fields that were used and that are not used anymore</Name>
from f in codeBase.OlderVersion().Fields where 
  
f.IsNotUsedAnymore() &&
 
!f.ParentType.IsNotUsedAnymore()
select new { f, MethodsThatUsedMe = f.MethodsUsingMe }

No fields matched

Dead Code

Potentially dead Types
// <Name>Potentially dead Types</Name>
warnif count > 0
// Filter procedure for types that should'nt be considered as dead
let canTypeBeConsideredAsDeadProc = new Func<IType, bool>(
   
t => !t.IsPublic && //   Public types might be used by client applications of your projects.
         t.Name != "Program" && 
        
!t.IsGeneratedByCompiler 
        
)

// Select types unused
let typesUnused = 
   
from t in JustMyCode.Types where
   
t.NbTypesUsingMe == 0 && canTypeBeConsideredAsDeadProc(t)
   
select t

// Dead types = types used only by unused types (recursive)
let deadTypesMetric = typesUnused.FillIterative(
types => from t in codeBase.Application.Types.UsedByAny(types).Except(types)
         
where canTypeBeConsideredAsDeadProc(t) &&
               
t.TypesUsingMe.Intersect(types).Count() == t.NbTypesUsingMe
         
select t)

from t in deadTypesMetric.DefinitionDomain
select new { t, t.TypesUsingMe, depth = deadTypesMetric[t] }

2 types matched

typesTypesUsingMedepthFull Name
BufferedHttpServletResponse0 type0org.apache.wicket.protocol.http.BufferedHttpServletResponse
BufferedWebResponse$CloseAction0 type0org.apache.wicket.protocol.http.BufferedWebResponse$CloseAction

Statistics

Stat   TypesUsingMe   depth
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
Potentially dead Methods
// <Name>Potentially dead Methods</Name>
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
    
m => !m.IsPubliclyVisible &&       // Public methods might be used by client applications of your projects.
         !m.IsEntryPoint &&            // Main() method is not used by-design.
         !m.IsClassConstructor &&      // The BC code never explicitely calls class constructors.
         !(m.IsConstructor &&          // Don't take account of protected ctor that might be call by a derived ctors.
           m.IsProtected) &&
         
!m.IsGeneratedByCompiler)

// Get methods unused
let methodsUnused = 
   
from m in JustMyCode.Methods where 
   
m.NbMethodsCallingMe == 0 && 
   
canMethodBeConsideredAsDeadProc(m)
   
select m

// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
   
methods => // Unique loop, just to let a chance to build the hashset.
              from o in (new object()).ToEnumerable()
              
// Use a hashet to make Intersect calls much faster!
              let hashset = methods.ToHashSet()
              
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
              
where canMethodBeConsideredAsDeadProc(m) &&
                    
// Select methods called only by methods already considered as dead
                    hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
              
select m)

from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }

471 methods matched

methodsMethodsCallingMedepthFull Name
onInstantiation(Component)0 method0org.apache.wicket.Application$1.onInstantiation(Component)
onDetach(RequestCycle)0 method0org.apache.wicket.Application$2.onDetach(RequestCycle)
onEndRequest(RequestCycle)0 method0org.apache.wicket.Application$2.onEndRequest(RequestCycle)
newValue(String,String)0 method0org.apache.wicket.AttributeModifier$1.newValue(String,String)
compare(Component,Object)0 method0org.apache.wicket.Component$3.compare(Component,Object)
getSource()0 method0org.apache.wicket.ComponentEvent.getSource()
getType()0 method0org.apache.wicket.ComponentEvent.getType()
getPayload()0 method0org.apache.wicket.ComponentEvent.getPayload()
dontBroadcastDeeper()0 method0org.apache.wicket.ComponentEvent.dontBroadcastDeeper()
stop()0 method0org.apache.wicket.ComponentEvent.stop()
convertToObject(String,Locale)0 method0org.apache.wicket.ConverterLocator$DefaultConverter.convertToObject (String,Locale)
convertToString(Object,Locale)0 method0org.apache.wicket.ConverterLocator$DefaultConverter.convertToString (Object,Locale)
hasNext()0 method0org.apache.wicket.MarkupContainer$1.hasNext()
remove()0 method0org.apache.wicket.MarkupContainer$1.remove()
size()0 method0org.apache.wicket.MarkupContainer$ChildList.size()
add(int,Object)0 method0org.apache.wicket.MarkupContainer$ChildList.add(int,Object)
createAndAddComponentsForWicketTags()0 method0org.apache.wicket.MarkupContainer.createAndAddComponentsForWicketTags( )
getCompatibilityScore(Request)0 method0org.apache.wicket.RestartResponseAtInterceptPageException$1 .getCompatibilityScore(Request)
matchedData(Request)2 methods1org.apache.wicket.RestartResponseAtInterceptPageException$1 .matchedData(Request)
mapHandler(IRequestHandler)0 method0org.apache.wicket.RestartResponseAtInterceptPageException$1.mapHandler (IRequestHandler)
mapRequest(Request)0 method0org.apache.wicket.RestartResponseAtInterceptPageException$1.mapRequest (Request)
clear()1 method1org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData.clear()
getOriginalUrl()0 method0org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData.getOriginalUrl( )
getPostParameters()0 method0org.apache.wicket .RestartResponseAtInterceptPageException$InterceptData .getPostParameters()
getResource()0 method0org.apache.wicket.SharedResources$AutoResourceReference.getResource()
onChange()0 method0org.apache.wicket.application.ReloadingClassLoader$1.onChange()
FencedFeedbackPanel$2$1(FencedFeedbackPanel$2,Component)1 method1org.apache.wicket.feedback.FencedFeedbackPanel$2$1 .FencedFeedbackPanel$2$1(FencedFeedbackPanel$2,Component)
shouldRecurseInto(Component)0 method0org.apache.wicket.feedback.FencedFeedbackPanel$2$1.shouldRecurseInto (Component)
FencedFeedbackPanel$2$2(FencedFeedbackPanel$2,Component)1 method1org.apache.wicket.feedback.FencedFeedbackPanel$2$2 .FencedFeedbackPanel$2$2(FencedFeedbackPanel$2,Component)
shouldRecurseInto(Component)0 method0org.apache.wicket.feedback.FencedFeedbackPanel$2$2.shouldRecurseInto (Component)
collectMessages(Component,IFeedbackMessageFilter)0 method0org.apache.wicket.feedback.FencedFeedbackPanel$2.collectMessages (Component,IFeedbackMessageFilter)
accept(FeedbackMessage)0 method0org.apache.wicket.feedback.IFeedbackMessageFilter$1.accept (FeedbackMessage)
accept(FeedbackMessage)0 method0org.apache.wicket.feedback.IFeedbackMessageFilter$2.accept (FeedbackMessage)
getPage(int)0 method0org.apache.wicket.page.PageAccessSynchronizer$2.getPage(int)
touchPage(IManageablePage)0 method0org.apache.wicket.page.PageAccessSynchronizer$2.touchPage (IManageablePage)
commitRequest()0 method0org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest()
writeObject(ObjectOutputStream)0 method0org.apache.wicket.page.PageStoreManager$SessionEntry.writeObject (ObjectOutputStream)
readObject(ObjectInputStream)0 method0org.apache.wicket.page.PageStoreManager$SessionEntry.readObject (ObjectInputStream)
render(HeaderItem)0 method0org.apache.wicket.ajax.AbstractAjaxResponse$AjaxHeaderResponse.render (HeaderItem)
getRealResponse()0 method0org.apache.wicket.ajax.AbstractAjaxResponse$AjaxHeaderResponse .getRealResponse()
newHeaderResponse()0 method0org.apache.wicket.ajax.AbstractAjaxResponse$AjaxHtmlHeaderContainer .newHeaderResponse()
AjaxRequestHandler$1$1(AjaxRequestHandler$1,Response)1 method1org.apache.wicket.ajax.AjaxRequestHandler$1$1.AjaxRequestHandler$1$1 (AjaxRequestHandler$1,Response)
addJavaScript(String)0 method0org.apache.wicket.ajax.AjaxRequestHandler$1$1.addJavaScript(String)
fireOnAfterRespondListeners(Response)0 method0org.apache.wicket.ajax.AjaxRequestHandler$1 .fireOnAfterRespondListeners(Response)
fireOnBeforeRespondListeners()0 method0org.apache.wicket.ajax.AjaxRequestHandler$1 .fireOnBeforeRespondListeners()
WicketAjaxDebugJQueryResourceReference()0 method0org.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference .WicketAjaxDebugJQueryResourceReference()
WicketAjaxJQueryResourceReference()0 method0org.apache.wicket.ajax.WicketAjaxJQueryResourceReference .WicketAjaxJQueryResourceReference()
WicketEventJQueryResourceReference()0 method0org.apache.wicket.ajax.WicketEventJQueryResourceReference .WicketEventJQueryResourceReference()
getPrecondition(Component)0 method0org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior$1 .getPrecondition(Component)
getForm()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1.getForm()
getDefaultFormProcessing()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1 .getDefaultFormProcessing()
onError()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1.onError()
onSubmit()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1.onSubmit()
onAfterSubmit()0 method0org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$1.onAfterSubmit()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.form .AjaxFormValidatingBehavior$FormValidateVisitor$1.updateAjaxAttributes (AjaxRequestAttributes)
clone()0 method0org.apache.wicket.ajax.json.JSONObject$Null.clone()
equals(Object)0 method0org.apache.wicket.ajax.json.JSONObject$Null.equals(Object)
toString()0 method0org.apache.wicket.ajax.json.JSONObject$Null.toString()
JsonUtils()0 method0org.apache.wicket.ajax.json.JsonUtils.JsonUtils()
onEvent(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.onEvent (AjaxRequestTarget)
onComponentTag(ComponentTag)0 method0org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.onComponentTag (ComponentTag)
getChannel()0 method0org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1.getChannel()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.AjaxFallbackLink$1 .updateAjaxAttributes(AjaxRequestAttributes)
onEvent(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.AjaxLink$1.onEvent (AjaxRequestTarget)
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.AjaxLink$1.updateAjaxAttributes (AjaxRequestAttributes)
onSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit (AjaxRequestTarget)
onAfterSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onAfterSubmit (AjaxRequestTarget)
onError(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onError (AjaxRequestTarget)
getChannel()0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1.getChannel()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1 .updateAjaxAttributes(AjaxRequestAttributes)
getDefaultProcessing()0 method0org.apache.wicket.ajax.markup.html.form.AjaxButton$1 .getDefaultProcessing()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.form.AjaxCheckBox$1 .updateAjaxAttributes(AjaxRequestAttributes)
onUpdate(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxCheckBox$1.onUpdate (AjaxRequestTarget)
onSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1.onSubmit (AjaxRequestTarget)
onAfterSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .onAfterSubmit(AjaxRequestTarget)
onError(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1.onError (AjaxRequestTarget)
getChannel()0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .getChannel()
getDefaultProcessing()0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .getDefaultProcessing()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton$1 .updateAjaxAttributes(AjaxRequestAttributes)
onError(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onError (AjaxRequestTarget)
findForm()0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.findForm()
onComponentTag(ComponentTag)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1 .onComponentTag(ComponentTag)
getDefaultProcessing()0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1 .getDefaultProcessing()
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1 .updateAjaxAttributes(AjaxRequestAttributes)
onSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit (AjaxRequestTarget)
onAfterSubmit(AjaxRequestTarget)0 method0org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onAfterSubmit (AjaxRequestTarget)
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationIncrementLink$1.updateAjaxAttributes (AjaxRequestAttributes)
updateAjaxAttributes(AjaxRequestAttributes)0 method0org.apache.wicket.ajax.markup.html.navigation.paging .AjaxPagingNavigationLink$1.updateAjaxAttributes(AjaxRequestAttributes )
isInstantiationAuthorized(Class)0 method0org.apache.wicket.authorization.IAuthorizationStrategy$1 .isInstantiationAuthorized(Class)
isActionAuthorized(Component,Action)0 method0org.apache.wicket.authorization.IAuthorizationStrategy$1 .isActionAuthorized(Component,Action)
onUnauthorizedInstantiation(Component)0 method0org.apache.wicket.authorization.strategies.page .SimplePageAuthorizationStrategy$1.onUnauthorizedInstantiation (Component)
toString()0 method0org.apache.wicket.core.request.mapper.MountedMapper$MountPathSegment .toString()
EmptyAjaxRequestHandler()0 method0org.apache.wicket.core.request.handler.EmptyAjaxRequestHandler .EmptyAjaxRequestHandler()
SerializableChecker$WicketNotSerializableException(String,Throwable)0 method0org.apache.wicket.core.util.io .SerializableChecker$WicketNotSerializableException .SerializableChecker$WicketNotSerializableException(String,Throwable)
getField()0 method0org.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet .getField()
getGetter()0 method0org.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet .getGetter()
getSetter()0 method0org.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet .getSetter()
getTargetClass()0 method0org.apache.wicket.core.util.lang.PropertyResolver$AbstractGetAndSet .getTargetClass()
getValue(Object)0 method0org.apache.wicket.core.util.lang.PropertyResolver$ArrayGetSet.getValue (Object)
setValue(Object,Object,PropertyResolverConverter)0 method0org.apache.wicket.core.util.lang.PropertyResolver$ArrayGetSet.setValue (Object,Object,PropertyResolverConverter)

Statistics

Stat   MethodsCallingMe   depth
Sum:036
Average:00.076
Minimum:00
Maximum:02
Standard deviation:00.31
Variance:00.096
Potentially dead Fields
// <Name>Potentially dead Fields</Name>
warnif count > 0
from f in JustMyCode.Fields where
   
f.NbMethodsUsingMe == 0 && 
   
!f.IsPublic &&     // Although not recommended, public fields might be used by client applications of your projects.
   !f.IsLiteral &&    // The BC code never explicitely uses literal fields.
   !f.IsEnumValue  // The BC code never explicitely uses enumeration value.
    
   
select f

575 fields matched

fieldsFull Name
serialVersionUIDorg.apache.wicket.AttributeModifier$1.serialVersionUID
serialVersionUIDorg.apache.wicket.AttributeModifier.serialVersionUID
serialVersionUIDorg.apache.wicket.Behaviors$BehaviorIdList.serialVersionUID
serialVersionUIDorg.apache.wicket.Behaviors.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$1.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$2.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$3.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$4.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$5.serialVersionUID
serialVersionUIDorg.apache.wicket.Component$6.serialVersionUID
serialVersionUIDorg.apache.wicket.Component.serialVersionUID
FLAG_UNUSED0org.apache.wicket.Component.FLAG_UNUSED0
FLAG_UNUSED1org.apache.wicket.Component.FLAG_UNUSED1
FLAG_UNUSED2org.apache.wicket.Component.FLAG_UNUSED2
FLAG_UNUSED3org.apache.wicket.Component.FLAG_UNUSED3
FLAG_AUTOorg.apache.wicket.Component.FLAG_AUTO
FLAG_ESCAPE_MODEL_STRINGSorg.apache.wicket.Component.FLAG_ESCAPE_MODEL_STRINGS
FLAG_VERSIONEDorg.apache.wicket.Component.FLAG_VERSIONED
FLAG_VISIBLEorg.apache.wicket.Component.FLAG_VISIBLE
FLAG_RENDER_BODY_ONLYorg.apache.wicket.Component.FLAG_RENDER_BODY_ONLY
FLAG_IGNORE_ATTRIBUTE_MODIFIERorg.apache.wicket.Component.FLAG_IGNORE_ATTRIBUTE_MODIFIER
FLAG_ENABLEDorg.apache.wicket.Component.FLAG_ENABLED
FLAG_RESERVED1org.apache.wicket.Component.FLAG_RESERVED1
FLAG_RESERVED2org.apache.wicket.Component.FLAG_RESERVED2
FLAG_RESERVED3org.apache.wicket.Component.FLAG_RESERVED3
FLAG_RESERVED4org.apache.wicket.Component.FLAG_RESERVED4
FLAG_HAS_BEEN_RENDEREDorg.apache.wicket.Component.FLAG_HAS_BEEN_RENDERED
FLAG_IS_RENDER_ALLOWEDorg.apache.wicket.Component.FLAG_IS_RENDER_ALLOWED
FLAG_OUTPUT_MARKUP_IDorg.apache.wicket.Component.FLAG_OUTPUT_MARKUP_ID
FLAG_PLACEHOLDERorg.apache.wicket.Component.FLAG_PLACEHOLDER
FLAG_RESERVED5org.apache.wicket.Component.FLAG_RESERVED5
FLAG_INITIALIZEDorg.apache.wicket.Component.FLAG_INITIALIZED
FLAG_NOTUSED7org.apache.wicket.Component.FLAG_NOTUSED7
FLAG_RESERVED8org.apache.wicket.Component.FLAG_RESERVED8
FLAG_MODEL_SETorg.apache.wicket.Component.FLAG_MODEL_SET
FLAG_REMOVING_FROM_HIERARCHYorg.apache.wicket.Component.FLAG_REMOVING_FROM_HIERARCHY
FLAG_RENDERINGorg.apache.wicket.Component.FLAG_RENDERING
FLAG_PREPARED_FOR_RENDERorg.apache.wicket.Component.FLAG_PREPARED_FOR_RENDER
FLAG_AFTER_RENDERINGorg.apache.wicket.Component.FLAG_AFTER_RENDERING
FLAG_VISIBILITY_ALLOWEDorg.apache.wicket.Component.FLAG_VISIBILITY_ALLOWED
FLAG_DETACHINGorg.apache.wicket.Component.FLAG_DETACHING
MARKUP_ID_ATTR_NAMEorg.apache.wicket.Component.MARKUP_ID_ATTR_NAME
RFLAG_ENABLED_IN_HIERARCHY_VALUEorg.apache.wicket.Component.RFLAG_ENABLED_IN_HIERARCHY_VALUE
RFLAG_ENABLED_IN_HIERARCHY_SETorg.apache.wicket.Component.RFLAG_ENABLED_IN_HIERARCHY_SET
RFLAG_VISIBLE_IN_HIEARARCHY_VALUEorg.apache.wicket.Component.RFLAG_VISIBLE_IN_HIEARARCHY_VALUE
RFLAG_VISIBLE_IN_HIERARCHY_SETorg.apache.wicket.Component.RFLAG_VISIBLE_IN_HIERARCHY_SET
RFLAG_CONFIGUREDorg.apache.wicket.Component.RFLAG_CONFIGURED
RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIEDorg.apache.wicket.Component.RFLAG_BEFORE_RENDER_SUPER_CALL_VERIFIED
RFLAG_INITIALIZE_SUPER_CALL_VERIFIEDorg.apache.wicket.Component.RFLAG_INITIALIZE_SUPER_CALL_VERIFIED
serialVersionUIDorg.apache.wicket.ConverterLocator$DefaultConverter.serialVersionUID
serialVersionUIDorg.apache.wicket.ConverterLocator.serialVersionUID
NULL_VALUEorg.apache.wicket.Localizer.NULL_VALUE
serialVersionUIDorg.apache.wicket.MarkupContainer$ChildList.serialVersionUID
serialVersionUIDorg.apache.wicket.MarkupContainer.serialVersionUID
serialVersionUIDorg.apache.wicket.MetaDataEntry.serialVersionUID
serialVersionUIDorg.apache.wicket.MetaDataKey.serialVersionUID
serialVersionUIDorg.apache.wicket.NonResettingRestartException.serialVersionUID
FLAG_IS_DIRTYorg.apache.wicket.Page.FLAG_IS_DIRTY
FLAG_PREVENT_DIRTYorg.apache.wicket.Page.FLAG_PREVENT_DIRTY
FLAG_STATELESS_HINTorg.apache.wicket.Page.FLAG_STATELESS_HINT
FLAG_WAS_CREATED_BOOKMARKABLEorg.apache.wicket.Page.FLAG_WAS_CREATED_BOOKMARKABLE
serialVersionUIDorg.apache.wicket.Page.serialVersionUID
serialVersionUIDorg.apache.wicket.PageReference.serialVersionUID
serialVersionUIDorg.apache.wicket .RestartResponseAtInterceptPageException$InterceptData$1 .serialVersionUID
serialVersionUIDorg.apache.wicket .RestartResponseAtInterceptPageException$InterceptData .serialVersionUID
serialVersionUIDorg.apache.wicket.RestartResponseAtInterceptPageException .serialVersionUID
serialVersionUIDorg.apache.wicket.RestartResponseException.serialVersionUID
serialVersionUIDorg.apache.wicket.Session$PageAccessSynchronizerProvider .serialVersionUID
serialVersionUIDorg.apache.wicket.Session.serialVersionUID
serialVersionUIDorg.apache.wicket.SharedResources$AutoResourceReference .serialVersionUID
serialVersionUIDorg.apache.wicket.WicketRuntimeException.serialVersionUID
serialVersionUIDorg.apache.wicket.application .ComponentInitializationListenerCollection.serialVersionUID
serialVersionUIDorg.apache.wicket.application.ComponentInstantiationListenerCollection .serialVersionUID
serialVersionUIDorg.apache.wicket.application.ComponentOnAfterRenderListenerCollection .serialVersionUID
serialVersionUIDorg.apache.wicket.application .ComponentOnBeforeRenderListenerCollection.serialVersionUID
serialVersionUIDorg.apache.wicket.application.HeaderContributorListenerCollection .serialVersionUID
serialVersionUIDorg.apache.wicket.behavior.AbstractAjaxBehavior.serialVersionUID
serialVersionUIDorg.apache.wicket.behavior.AttributeAppender.serialVersionUID
serialVersionUIDorg.apache.wicket.behavior.Behavior.serialVersionUID
serialVersionUIDorg.apache.wicket.behavior.InvalidBehaviorIdException.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.ComponentFeedbackMessageFilter .serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.ContainerFeedbackMessageFilter .serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.DefaultCleanupFeedbackMessageFilter .serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.ErrorLevelFeedbackMessageFilter .serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FeedbackMessage.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FeedbackMessages.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FeedbackMessagesModel.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FencedFeedbackPanel$1.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FencedFeedbackPanel$2.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.FencedFeedbackPanel.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.IFeedbackMessageFilter$1.serialVersionUID
serialVersionUIDorg.apache.wicket.feedback.IFeedbackMessageFilter$2.serialVersionUID
serialVersionUIDorg.apache.wicket.mock.MockHomePage.serialVersionUID
serialVersionUIDorg.apache.wicket.page.CouldNotLockPageException.serialVersionUID
serialVersionUIDorg.apache.wicket.page.DefaultPageManagerContext$1.serialVersionUID
serialVersionUIDorg.apache.wicket.page.PageAccessSynchronizer$1.serialVersionUID
serialVersionUIDorg.apache.wicket.page.PageAccessSynchronizer.serialVersionUID
ATTRIBUTE_NAMEorg.apache.wicket.page.PageStoreManager$PersistentRequestAdapter .ATTRIBUTE_NAME
serialVersionUIDorg.apache.wicket.page.PageStoreManager$SessionEntry.serialVersionUID
serialVersionUIDorg.apache.wicket.session.HttpSessionStore$SessionBindingListener .serialVersionUID

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:

Trend Charts

Unfortunately, Google Terms of Service prohibit saving the Chart API on your machine for offline use as stated at https://developers.google.com/chart/interactive/faq#localdownload

We could not connect to https://www.google.com/jsapi to retrieve the script. We will display chart data in a table instead.

Please connect to the internet and reload the page to display the chart.

Projects Dependencies

Assembly Depends on Is referenced by
wicket-util-6.0.0 v1.0 - -
rt v1.0 - -
MISSING v1.0 - -
wicket-request-6.0.0 v1.0 - -
junit-3.8.1 v1.0 - -
wicket-core v1.0wicket-util-6.0.0 v1.0 ; rt v1.0 ; MISSING v1.0 ; wicket-request-6.0.0 v1.0 ; junit-3.8.1 v1.0 ; -

Projects Build Order

  1. wicket-core

Projects Build Order

  1. wicket-core

Analysis Log : Information and Warnings

Here are Logs emitted during JArchitect analysis.
The Warnings can reveal potential flaws concerning the health of the build process.
A particular warn can be disabled through the JArchitect interactive UI, panel Error List, tick the checkbox Disabled corresponding to the warn to disable.


Kind Message
Info11/17/2013 22:00:53 Begin full analysis with JArchitect v4.0.0.8041
InfoNo Baseline for Comparison loaded.
InfoBytecode parsing
InfoThird Party parsing
InfoParsing Source Files
InfoNo dependency cycle detected in assemblies referencement graph.
Info11/17/2013 22:01:42 Analyse dependencies of your application.
Info11/17/2013 22:01:42 Building the report (standard).
Warning9 critical rules are violated. - Types too big - critical - Methods too complex - critical - Prefer primitive types to boxed primitives - Always override hashcode when you override equals - Always override toString - Prefer interfaces to abstract classes - Use interfaces only to define types - Avoid using raw types - Do not raise generic exception
Info11/17/2013 22:01:48 Log trend metrics values.