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 assemblies are potentially painful to maintain (i.e concrete and stable) and which assemblies 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 \ Code Quality Regression
Main \ Rules \ Object Oriented Design
Main \ Rules \ Design
Main \ Rules \ Architecture and Layering
Main \ Rules \ API Breaking Changes
Main \ Rules \ Dead Code
Main \ Rules \ Visibility
Main \ Rules \ Purity - Immutability - Side-Effects
Main \ Rules \ Naming Conventions
Main \ Rules \ Source Files Organization
Main \ Rules \ .NET Framework Usage
Main \ Rules \ .NET Framework Usage \ System
Main \ Rules \ .NET Framework Usage \ System.Collection
Main \ Rules \ .NET Framework Usage \ System.Xml
Main \ Rules \ .NET Framework Usage \ System.Globalization
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 \ Assemblies Metrics
Main \ Metrics \ Namespaces Metrics
Main \ Metrics \ Types Metrics
Main \ Assemblies Dependencies
Main \ Namespaces Dependencies
Main \ Types Dependencies
Main \ Build Order
Main \ Analysis Log
Main \ Trend Charts
ndepend report summary application nameNHibernate 3.0.0.CR1report build date09/23/2013 15:42:44analysis duration00:07ndepend version 5.0.0.8041baseline for comparisonCompare with project {NHibernate 2.1.2.GA} most recent analysis (analysis made on 2012 May - 17 Thursday 19:39)code coverage data Loaded! Code Coverage metrics, Queries and Rules relative to code Coverage, can be used.
Get started.Quick tips.Back to NDepend. The present HTML report is a summary of data gathered by the analysis.
It is recommended to use the NDepend interactive UI capabilities
to make the most of NDepend by mastering all aspects of your code.

Diagrams

.NET Assemblies Dependency Graph
Dependency Graph
View as ?fullscaled
.NET Assemblies 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
62 914      +7.36% (58 599 +4 315)
13 945 (NotMyCode)
# Types
2 211      +25.55% (1 761 +450)
3   Assemblies      no diff
90   Namespaces      +16.88% (77 +13)
17 752   Methods      +16.37% (15 255 +2 497)
5 389   Fields      +4.56% (5 154 +235)
1 437   Source Files      +18.56% (1 212 +225)
Comment
37.1%      from 37.85%
37 113   Lines of Comment      +3.99% (35 689 +1 424)
Method Complexity
187   Max      no diff
2.03   Average      -4.61% (2.12 -0.098)
Code Coverage by Tests
75.93%      
   
47 771   Lines of Code Covered      
15 143   Lines of Code Not Covered      
Third-Party Usage
14   Assemblies used      +7.69% (13 +1)
62   Namespaces used      +29.17% (48 +14)
473   Types used      +26.13% (375 +98)
1 219   Methods used      +20.1% (1 015 +204)
97   Fields used      +5.43% (92 +5)

Rules summary

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

Summary of Rules violated

graphHelp Rules can be checked live at
development-time, from within Visual
Studio. Online documentation.
graphHelp NDepend 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
10 typesCode Quality
warningCritical   Methods too complex - critical
1 methodsCode Quality
warningCritical   Methods with too many parameters - critical
24 methodsCode Quality
warning   Quick summary of methods to refactor
588 methodsCode Quality
warning   Methods too big
169 methodsCode Quality
warning   Methods too complex
53 methodsCode Quality
warning   Methods potentially poorly commented
253 methodsCode Quality
warning   Methods with too many parameters
163 methodsCode Quality
warning   Methods with too many local variables
23 methodsCode Quality
warning   Methods with too many overloads
214 methodsCode Quality
warning   Types with too many methods
137 typesCode Quality
warning   Types with too many fields
33 typesCode Quality
warning   Types with poor cohesion
53 typesCode Quality
warning   From now, all methods added or refactored should respect basic quality principles
293 methodsCode Quality Regression
warning   From now, all types added or refactored should respect basic quality principles
111 typesCode Quality Regression
warning   From now, all types added or refactored should be 100% covered by tests
497 typesCode Quality Regression
warning   Avoid making complex methods even more complex (Source CC)
16 methodsCode Quality Regression
warning   Avoid making complex methods even more complex (IL CC)
14 methodsCode Quality Regression
warning   Avoid making large methods even larger
19 methodsCode Quality Regression
warning   Avoid adding methods to a type that already had many methods
71 typesCode Quality Regression
warning   Avoid transforming an immutable type into a mutable one
5 typesCode Quality Regression
warning   Avoid transforming an immutable field into a mutable one
4 fieldsCode Quality Regression
warning   Avoid adding instance fields to a type that already had many instance fields
11 typesCode Quality Regression
warning   Base class should not use derivatives
15 typesObject Oriented Design
warning   Class shouldn't be too deep in inheritance tree
161 typesObject Oriented Design
warning   Class with no descendant should be sealed if possible
1144 typesObject Oriented Design
warning   Overrides of Method() should call base.Method()
701 methodsObject Oriented Design
warning   A stateless class or structure might be turned into a static type
45 typesObject Oriented Design
warning   Non-static classes should be instantiated or turned to static
158 typesObject Oriented Design
warning   Methods should be declared static if possible
129 methodsObject Oriented Design
warning   Constructor should not call a virtual methods
51 methodsObject Oriented Design
warning   Avoid the Singleton pattern
2 typesObject Oriented Design
warning   Don't assign static fields from instance methods
6 fieldsObject Oriented Design
warning   Avoid empty interfaces
5 typesObject Oriented Design
warning   Avoid custom delegates
21 typesDesign
warning   Types with disposable instance fields must be disposable
57 typesDesign
warning   Classes that are candidate to be turned into structures
317 typesDesign
warning   Avoid namespaces with few types
18 namespacesDesign
warning   Nested types should not be visible
102 typesDesign
warning   Declare types in namespaces
1 namespacesDesign
warning   Instances size shouldn't be too big
73 typesDesign
warning   Attribute classes should be sealed
1 typesDesign
warning   Don't use obsolete types, methods or fields
1 methodsDesign
warning   Don't forget to implement methods that throw NotImplementedException
48 methodsDesign
warning   Avoid namespaces mutually dependent
137 namespacesArchitecture and Layering
warning   Avoid namespaces dependency cycles
1 namespacesArchitecture and Layering
warning   Assemblies with poor cohesion (RelationalCohesion)
1 assembliesArchitecture and Layering
warningCritical   API Breaking Changes: Types
13 typesAPI Breaking Changes
warningCritical   API Breaking Changes: Methods
203 methodsAPI Breaking Changes
warningCritical   API Breaking Changes: Fields
562 fieldsAPI Breaking Changes
warningCritical   API Breaking Changes: Interfaces and Abstract Classes
21 typesAPI Breaking Changes
warningCritical   Avoid transforming immutable types into mutable types
5 typesAPI Breaking Changes
warning   Potentially dead Methods
56 methodsDead Code
warning   Methods that could have a lower visibility
4729 methodsVisibility
warning   Types that could have a lower visibility
1387 typesVisibility
warning   Fields that could have a lower visibility
1200 fieldsVisibility
warning   Fields should be declared as private
1018 fieldsVisibility
warning   Constructors of abstract classes should be declared as protected or private
32 typesVisibility
warning   Avoid public methods not publicly visible
173 methodsVisibility
warning   Fields should be marked as ReadOnly when possible
126 fieldsPurity - Immutability - Side-Effects
warning   Structures should be immutable
1 typesPurity - Immutability - Side-Effects
warning   Property Getters should be immutable
31 methodsPurity - Immutability - Side-Effects
warning   Avoid static fields with a mutable field type
15 fieldsPurity - Immutability - Side-Effects
warning   A field must not be assigned from outside its parent hierarchy types
33 fieldsPurity - Immutability - Side-Effects
warning   Instance fields should be prefixed with a 'm_'
3962 fieldsNaming Conventions
warning   Static fields should be prefixed with a 's_'
1425 fieldsNaming Conventions
warning   Interface name should begin with a 'I'
1 typesNaming Conventions
warning   Abstract base class should be suffixed with 'Base'
67 typesNaming Conventions
warning   Exception class name should be suffixed with 'Exception'
2 typesNaming Conventions
warning   Methods name should begin with an Upper character
1 methodsNaming Conventions
warning   Avoid types with name too long
39 typesNaming Conventions
warning   Avoid methods with name too long
89 methodsNaming Conventions
warning   Avoid fields with name too long
435 fieldsNaming Conventions
warning   Avoid having different types with same name
17 typesNaming Conventions
warning   Avoid naming types and namespaces with the same identifier
7 typesNaming Conventions
warning   Methods prefixed with 'Try' should return a boolean
7 methodsNaming Conventions
warning   Avoid defining multiple types in a source file
84 typesSource Files Organization
warning   Namespace name should correspond to file location
5 typesSource Files Organization
warning   Types with source files stored in the same directory, should be declared in the same namespace
2 namespacesSource Files Organization
warning   Types declared in the same namespace, should have their source files stored in the same directory
1 namespacesSource Files Organization
warning   Mark assemblies with ComVisible
3 assembliesSystem
warning   Mark attributes with AttributeUsageAttribute
1 typesSystem
warning   Do not raise too general exception types
24 methodsSystem
warning   Do not raise reserved exception types
13 methodsSystem
warning   Uri fields should be of type System.Uri
1 fieldsSystem
warning   Types should not extend System.ApplicationException
50 typesSystem
warning   Don't use .NET 1.x HashTable and ArrayList
43 methodsSystem.Collection
warning   Method should not return concrete XmlNode
3 methodsSystem.Xml
warning   Float and Date Parsing must be culture aware
6 methodsSystem.Globalization

Application Statistics

Stat # Occurences Avg StdDev Max
Properties on interfaces 287 interfaces 2.054.8547 properties on NHibernate.Persister.Entity.IEntityPersister
Methods on interfaces 287 interfaces 6.8812.8789 methods on NHibernate.Persister.Entity.IEntityPersister
Arguments on methods on interfaces 1,975 methods 1.091.211 arguments on NHibernate.Engine.IPersistenceContext.AddEntry(Object,Status,Object[],Object,Object,Object,LockMode,Boolean,IEntityPersister,Boolean,Boolean)
Public properties on classes 1,866 Classes 1.985.7181 public properties on NHibernate.Persister.Entity.AbstractEntityPersister
Public methods on classes 1,866 classes 6.6412.89175 public methods on NHibernate.Persister.Entity.AbstractEntityPersister
Arguments on public methods on classes 12,398 methods 0.981.2414 arguments on NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary<String,TypedValue>,IDictionary<String,LockMode>,RowSelection,Boolean,Boolean,String,String,Object[],Object,String,Object,IResultTransformer)
IL instructions in non-abstract methods 16,006 methods 27.3786.294892 IL instructions in NHibernate.Hql.Ast.ANTLR.HqlParser..cctor()
Cyclomatic complexity on non abstract Methods 16,006 Methods 2.384.66 CC = 188 for NHibernate.Hql.Ast.ANTLR.HqlLexer.mTokens()

Assemblies Metrics

If you wish to define thresholds on assemblies' Code Metrics, consider writing some Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Assemblies # lines of code# IL instruction # Types # Abstract Types # lines of comment% Comment% CoverageAfferent CouplingEfferent CouplingRelational CohesionInstabilityAbstractnessDistance
NHibernate v3.0.0.300162852437579220440437061377574516.60.980.180.12
NHibernate.ByteCode.LinFu v3.0.0.300121156301134850301100
NHibernate.ByteCode.Castle v3.0.0.300141315404150900371100

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 Namespace

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

Namespaces Metrics

If you wish to define thresholds on namespaces' Code Metrics, consider writing some Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Namespaces # lines of code# IL instruction # Types # lines of comment% Comment% CoverageAfferent CouplingEfferent Coupling
01021---15
NHibernate510342971424189657631
NHibernate.Util1867128726279829696028
NHibernate.UserTypes007271100-29
NHibernate.Type262320040119237847685442
NHibernate.Properties39226645169764701313
NHibernate.Mapping20091406558166345791423
NHibernate.Exceptions15711351816451401715
NHibernate.Metadata00298100-75
NHibernate.Intercept64432731327089
NHibernate.Classic5384113952033
NHibernate.Param124866121104759410
NHibernate.Driver5293509319516447618
NHibernate.Action5513899141782480423
NHibernate.Impl42012937143108920782359
NHibernate.Transform7852910513982139
NHibernate.SqlCommand1589104033387935823418
NHibernate.Context1268141113551-212
NHibernate.Transaction215146291444067615
NHibernate.Stat33427611010724731213
NHibernate.Connection643705164717089
NHibernate.SqlTypes101766111435885229
NHibernate.DebugHelpers201044313-04
NHibernate.Tuple1571092102155788416
NHibernate.Tuple.Component1409586472578213
NHibernate.Tuple.Entity528377961512283421
NHibernate.Dialect20861372444220351392826
NHibernate.Dialect.Schema379277245104213648
NHibernate.Dialect.Function29419892222443771314
NHibernate.Dialect.Lock685603423830213
NHibernate.Loader102472721159536871329
NHibernate.Loader.Entity987968372793213
NHibernate.Loader.Collection154127510663092113
NHibernate.Loader.Criteria48032367711290319
NHibernate.Loader.Custom2761695171303292316
NHibernate.Loader.Custom.Sql29722777371192216
NHibernate.Persister37321114274019
NHibernate.Persister.Entity22941681323114133873233
NHibernate.Persister.Collection100574741235125812531
NHibernate.Criterion1850136378217504877424
NHibernate.Criterion.Lambda291223028307518928
NHibernate.Hql936071014560881118
NHibernate.Hql.Classic164810548224822260131
NHibernate.Hql.Util44270150534058
NHibernate.Hql.Ast2673062854173410
NHibernate.Hql.Ast.ANTLR150229268817834751879732
NHibernate.Hql.Ast.ANTLR.Loader15910381351896122
NHibernate.Hql.Ast.ANTLR.Util3572655191442873323
NHibernate.Hql.Ast.ANTLR.Tree2307158056611043276924
NHibernate.Hql.Ast.ANTLR.Exec2861973731980126
NHibernate.Proxy106833918263921511
NHibernate.Proxy.Map352693252217
NHibernate.Proxy.Poco433221344462210
NHibernate.Cache52837952561653721119
NHibernate.Cache.Entry865187101033610
NHibernate.Cache.Access0013100-30
NHibernate.Id39627663177166611521
NHibernate.Id.Insert543959765818315
NHibernate.Id.Enhanced201147613832939018
NHibernate.Event49633297036942791014
NHibernate.Event.Default14109848367963687129
NHibernate.Collection122780002770536731417
NHibernate.Collection.Generic30619655852156113
NHibernate.Cfg1760129153785232693852
NHibernate.Cfg.XmlHbmBinding176413189592151088119
NHibernate.Cfg.MappingSchema8441004616010795688216
NHibernate.Cfg.ConfigurationSchema311179310222416117
NHibernate.Cfg.Loquacious212158639782686012
NHibernate.Bytecode1227401632272612211
NHibernate.Bytecode.CodeDom7957223933-111
NHibernate.Bytecode.Lightweight1096838503198110
NHibernate.Linq286294126401288426
NHibernate.Linq.ReWriters8781763389116
NHibernate.Linq.GroupJoin675578272897115
NHibernate.Linq.ResultOperators10993008047
NHibernate.Linq.Functions1412585344262217
NHibernate.Linq.GroupBy1098337332385217
NHibernate.Linq.Expressions3630713008059
NHibernate.Linq.Visitors550432126991587633
NHibernate.Linq.Visitors.ResultOperatorProcessors12617522610785123
NHibernate.Engine21021422084195448826446
NHibernate.Engine.Transaction328241936635
NHibernate.Engine.Loading187142931694788318
NHibernate.Engine.Query4052861218517771022
NHibernate.Engine.Query.Sql69419776529156
NHibernate.AdoNet54936562525431641024
NHibernate.AdoNet.Util3392189720592510
NHibernate.Tool.hbm2ddl4973348141452268221
NHibernate.ByteCode.LinFu211563288509
NHibernate.ByteCode.Castle413154324390012

0130
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.NbILInstructions > 3000
   
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode, t.NbILInstructions,
                
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.ndepend.com/Metrics.aspx#NbLinesOfCode

// In average, a line of code is compiled to around
// 6 IL instructions. This is why the code metric
// NbILInstructions is used here, in case the 
// code metric NbLinesOfCode is un-available because
// of missing assemblies corresponding PDB files.
// See the definition of the NbILInstructions metric here 
// http://www.ndepend.com/Metrics.aspx#NbILInstructions

10 types matched

types# lines of code (LOC)# IL instructionsMethodsFieldsFull Name
HqlSqlWalker4 73127 627144 methods457 fieldsNHibernate.Hql.Ast.ANTLR.HqlSqlWalker
HqlParser4 45228 31296 methods470 fieldsNHibernate.Hql.Ast.ANTLR.HqlParser
SqlGenerator3 55122 15083 methods430 fieldsNHibernate.Hql.Ast.ANTLR.SqlGenerator
HqlLexer1 5058 960105 methods145 fieldsNHibernate.Hql.Ast.ANTLR.HqlLexer
AbstractEntityPersister1 41710 998311 methods88 fieldsNHibernate.Persister.Entity.AbstractEntityPersister
Configuration9746 172120 methods35 fieldsNHibernate.Cfg.Configuration
SessionImpl9317 204183 methods22 fieldsNHibernate.Impl.SessionImpl
AbstractCollectionPersister6874 970146 methods88 fieldsNHibernate.Persister.Collection.AbstractCollectionPersister
QueryTranslator6274 069104 methods49 fieldsNHibernate.Hql.Classic.QueryTranslator
Loader5033 57776 methods4 fieldsNHibernate.Loader.Loader

Statistics

Stat   # lines of code (LOC)   # IL instructions   Methods   Fields
Sum:19 378124 03900
Average:1 93712 40300
Minimum:5033 57700
Maximum:4 73128 31200
Standard deviation:1 5649 28500
Variance:2 446 80286 215 66400
warningCritical    Critical Rule warning: Methods too complex - critical
// <Name>Methods too complex - critical</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.ILCyclomaticComplexity > 40 && 
  
m.ILNestingDepth > 5
  
orderby m.ILCyclomaticComplexity descending,
          
m.ILNestingDepth descending
select new { m, m.ILCyclomaticComplexity, m.ILNestingDepth }

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

1 methods matched

methodIL Cyclomatic Complexity (ILCC)IL Nesting DepthFull Name
GenerateSchemaUpdateScript(Dialect,DatabaseMetadata)508NHibernate.Cfg.Configuration.GenerateSchemaUpdateScript(Dialect ,DatabaseMetadata)

Statistics

Stat   IL Cyclomatic Complexity (ILCC)   IL Nesting Depth
Sum:508
Average:508
Minimum:508
Maximum:508
Standard deviation:00
Variance:00
warningCritical    Critical Rule warning: Methods with too many parameters - critical
// <Name>Methods with too many parameters - critical</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbParameters > 8
  
orderby m.NbParameters descending
select new { m, m.NbParameters }

// Methods with more than 8 parameters 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 
// (for example see the class System.Diagnostics.ProcessStartInfo 
//  and the method System.Diagnostics.Process.Start(ProcessStartInfo))
//  See the definition of the NbParameters metric here 
// http://www.ndepend.com/Metrics.aspx#NbParameters

24 methods matched

methods# ParametersFull Name
.ctor(IDictionary<String,PersistentClass>,IDictionary<String ,Collection>,IDictionary<String,Table>,IDictionary<String ,NamedQueryDefinition>,IDictionary<String,NamedSQLQueryDefinition> ,IDictionary<String,ResultSetMappingDefinition>,IDictionary<String ,String>,IList<SecondPassCommand>,Queue<FilterSecondPassArgs>,IList <Mappings+PropertyReference>,INamingStrategy,IDictionary<String ,TypeDef>,IDictionary<String,FilterDefinition>,ISet<ExtendsQueueEntry> ,IList<IAuxiliaryDatabaseObject>,IDictionary<String ,Mappings+TableDescription>,IDictionary<Table,Mappings+ColumnNames> ,String,String,String,String,Dialect)22NHibernate.Cfg.Mappings..ctor(IDictionary<String,PersistentClass> ,IDictionary<String,Collection>,IDictionary<String,Table>,IDictionary <String,NamedQueryDefinition>,IDictionary<String ,NamedSQLQueryDefinition>,IDictionary<String ,ResultSetMappingDefinition>,IDictionary<String,String>,IList <SecondPassCommand>,Queue<FilterSecondPassArgs>,IList <Mappings+PropertyReference>,INamingStrategy,IDictionary<String ,TypeDef>,IDictionary<String,FilterDefinition>,ISet<ExtendsQueueEntry> ,IList<IAuxiliaryDatabaseObject>,IDictionary<String ,Mappings+TableDescription>,IDictionary<Table,Mappings+ColumnNames> ,String,String,String,String,Dialect)
.ctor(IType[],Object[],IDictionary<String,TypedValue>,IDictionary <String,LockMode>,RowSelection,Boolean,Boolean,String,String,Object[] ,Object,String,Object,IResultTransformer)14NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary <String,TypedValue>,IDictionary<String,LockMode>,RowSelection,Boolean ,Boolean,String,String,Object[],Object,String,Object ,IResultTransformer)
.ctor(String,String,IType,Boolean,Boolean,Boolean,Boolean,Boolean ,Boolean,Boolean,Boolean,CascadeStyle,Nullable<FetchMode>)13NHibernate.Tuple.StandardProperty..ctor(String,String,IType,Boolean ,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,CascadeStyle ,Nullable<FetchMode>)
.ctor(String,String,IType,Boolean,Boolean,Boolean,Boolean,Boolean ,Boolean,Boolean,Boolean,CascadeStyle,VersionValue)13NHibernate.Tuple.VersionProperty..ctor(String,String,IType,Boolean ,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,CascadeStyle ,VersionValue)
.ctor(String,INativeSQLQueryReturn[],IList<String>,Boolean,String ,Int32,Int32,FlushMode,Nullable<CacheMode>,Boolean,String,IDictionary <String,String>,Boolean)13NHibernate.Engine.NamedSQLQueryDefinition..ctor(String ,INativeSQLQueryReturn[],IList<String>,Boolean,String,Int32,Int32 ,FlushMode,Nullable<CacheMode>,Boolean,String,IDictionary<String ,String>,Boolean)
.ctor(String,String,IList<String>,Boolean,String,Int32,Int32,FlushMode ,Nullable<CacheMode>,Boolean,String,IDictionary<String,String>,Boolean )13NHibernate.Engine.NamedSQLQueryDefinition..ctor(String,String,IList <String>,Boolean,String,Int32,Int32,FlushMode,Nullable<CacheMode> ,Boolean,String,IDictionary<String,String>,Boolean)
AddEntry(Object,Status,Object[],Object,Object,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean)11NHibernate.Engine.IPersistenceContext.AddEntry(Object,Status,Object[] ,Object,Object,Object,LockMode,Boolean,IEntityPersister,Boolean ,Boolean)
AddEntry(Object,Status,Object[],Object,Object,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean)11NHibernate.Engine.StatefulPersistenceContext.AddEntry(Object,Status ,Object[],Object,Object,Object,LockMode,Boolean,IEntityPersister ,Boolean,Boolean)
.ctor(IType[],Object[],IDictionary<String,TypedValue>,IDictionary <String,LockMode>,RowSelection,Boolean,Boolean,String,String,Object[] ,IResultTransformer)11NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary <String,TypedValue>,IDictionary<String,LockMode>,RowSelection,Boolean ,Boolean,String,String,Object[],IResultTransformer)
.ctor(Status,Object[],Object,Object,Object,LockMode,Boolean ,IEntityPersister,EntityMode,Boolean,Boolean)11NHibernate.Engine.EntityEntry..ctor(Status,Object[],Object,Object ,Object,LockMode,Boolean,IEntityPersister,EntityMode,Boolean,Boolean)
.ctor(Object,Object[],Int32[],Boolean,Object[],Object,Object,Object ,IEntityPersister,ISessionImplementor)10NHibernate.Action.EntityUpdateAction..ctor(Object,Object[],Int32[] ,Boolean,Object[],Object,Object,Object,IEntityPersister ,ISessionImplementor)
InstanceNotYetLoaded(IDataReader,Int32,ILoadable,EntityKey,LockMode ,String,EntityKey,Object,IList,ISessionImplementor)10NHibernate.Loader.Loader.InstanceNotYetLoaded(IDataReader,Int32 ,ILoadable,EntityKey,LockMode,String,EntityKey,Object,IList ,ISessionImplementor)
UpdateOrInsert(Object,Object[],Object[],Object,Boolean[],Int32,Object ,Object,SqlCommandInfo,ISessionImplementor)10NHibernate.Persister.Entity.AbstractEntityPersister.UpdateOrInsert (Object,Object[],Object[],Object,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor)
Update(Object,Object[],Object[],Object,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor)10NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object ,Object[],Object[],Object,Boolean[],Int32,Object,Object,SqlCommandInfo ,ISessionImplementor)
AddEntity(Object,Status,Object[],EntityKey,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean)10NHibernate.Engine.IPersistenceContext.AddEntity(Object,Status,Object[] ,EntityKey,Object,LockMode,Boolean,IEntityPersister,Boolean,Boolean)
AddEntity(Object,Status,Object[],EntityKey,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean)10NHibernate.Engine.StatefulPersistenceContext.AddEntity(Object,Status ,Object[],EntityKey,Object,LockMode,Boolean,IEntityPersister,Boolean ,Boolean)
.ctor(IType[],Object[],IDictionary<String,LockMode>,RowSelection ,Boolean,String,String,Boolean,IResultTransformer,IDictionary<Int32 ,Int32>)10NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary <String,LockMode>,RowSelection,Boolean,String,String,Boolean ,IResultTransformer,IDictionary<Int32,Int32>)
.ctor(String,Boolean,String,Int32,Int32,FlushMode,Nullable<CacheMode> ,Boolean,String,IDictionary<String,String>)10NHibernate.Engine.NamedQueryDefinition..ctor(String,Boolean,String ,Int32,Int32,FlushMode,Nullable<CacheMode>,Boolean,String,IDictionary <String,String>)
.ctor(IDbConnection,SessionFactoryImpl,Boolean,Int64,IInterceptor ,EntityMode,Boolean,Boolean,ConnectionReleaseMode)9NHibernate.Impl.SessionImpl..ctor(IDbConnection,SessionFactoryImpl ,Boolean,Int64,IInterceptor,EntityMode,Boolean,Boolean ,ConnectionReleaseMode)
LoadFromResultSet(IDataReader,Int32,Object,String,EntityKey,String ,LockMode,ILoadable,ISessionImplementor)9NHibernate.Loader.Loader.LoadFromResultSet(IDataReader,Int32,Object ,String,EntityKey,String,LockMode,ILoadable,ISessionImplementor)
Update(Object,Object[],Int32[],Boolean,Object[],Object,Object,Object ,ISessionImplementor)9NHibernate.Persister.Entity.IEntityPersister.Update(Object,Object[] ,Int32[],Boolean,Object[],Object,Object,Object,ISessionImplementor)
Dehydrate(Object,Object[],Object,Boolean[],Boolean[][],Int32 ,IDbCommand,ISessionImplementor,Int32)9NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object ,Object[],Object,Boolean[],Boolean[][],Int32,IDbCommand ,ISessionImplementor,Int32)
Update(Object,Object[],Int32[],Boolean,Object[],Object,Object,Object ,ISessionImplementor)9NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object ,Object[],Int32[],Boolean,Object[],Object,Object,Object ,ISessionImplementor)
.ctor(String,Boolean,String,Int32,Int32,FlushMode,Boolean,String ,IDictionary<String,String>)9NHibernate.Engine.NamedQueryDefinition..ctor(String,Boolean,String ,Int32,Int32,FlushMode,Boolean,String,IDictionary<String,String>)

Statistics

Stat   # Parameters
Sum:266
Average:11.08
Minimum:9
Maximum:22
Standard deviation:2.72
Variance:7.41
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.ndepend.com/Metrics.aspx#NbLinesOfCode
  m.NbILInstructions > 200 ||       // http://www.ndepend.com/Metrics.aspx#NbILInstructions
  m.CyclomaticComplexity > 20 ||    // http://www.ndepend.com/Metrics.aspx#CC
  m.ILCyclomaticComplexity > 50 ||  // http://www.ndepend.com/Metrics.aspx#ILCC
  m.ILNestingDepth > 5 ||           // http://www.ndepend.com/Metrics.aspx#ILNestingDepth
  m.NbParameters > 5 ||             // http://www.ndepend.com/Metrics.aspx#NbParameters
  m.NbVariables > 8 ||              // http://www.ndepend.com/Metrics.aspx#NbVariables
  m.NbOverloads > 6                 // http://www.ndepend.com/Metrics.aspx#NbOverloads

select new { m, m.NbLinesOfCode, m.NbILInstructions, m.CyclomaticComplexity, 
             
m.ILCyclomaticComplexity, m.ILNestingDepth, 
             
m.NbParameters, m.NbVariables, m.NbOverloads } 

588 methods matched

methods# lines of code (LOC)# IL instructionsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting Depth# Parameters# Variables# OverloadsFull Name
.cctor()53139352031NHibernate.NHibernateUtil..cctor()
OnFlushDirty(Object,Object,Object[],Object[],String[],IType[])N/AN/AN/AN/AN/A6N/A1NHibernate.IInterceptor.OnFlushDirty(Object,Object,Object[],Object[] ,String[],IType[])
FindDirty(Object,Object,Object[],Object[],String[],IType[])N/AN/AN/AN/AN/A6N/A1NHibernate.IInterceptor.FindDirty(Object,Object,Object[],Object[] ,String[],IType[])
JoinQueryOver<U>(Expression<Func<TSubType,U>>)N/AN/AN/AN/AN/A1N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>)
JoinQueryOver<U>(Expression<Func<U>>)N/AN/AN/AN/AN/A1N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,Expression<Func<U>>)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<U>>,Expression<Func<U>>)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,JoinType)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,JoinType)
JoinQueryOver<U>(Expression<Func<U>>,JoinType)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,Expression<Func<U>> ,JoinType)N/AN/AN/AN/AN/A3N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<U>>,Expression<Func<U>>,JoinType)N/AN/AN/AN/AN/A3N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>)N/AN/AN/AN/AN/A1N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>)N/AN/AN/AN/AN/A1N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,Expression <Func<U>>)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,Expression<Func<U>>)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,JoinType)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,JoinType)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,JoinType)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,Expression <Func<U>>,JoinType)N/AN/AN/AN/AN/A3N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,Expression<Func<U>> ,JoinType)N/AN/AN/AN/AN/A3N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,Expression<Func<U>>,JoinType)
Add(Type,ICriteria)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add(Type,ICriteria)
Add<T>(ICriteria)N/AN/AN/AN/AN/A1N/A14NHibernate.IMultiCriteria.Add<T>(ICriteria)
Add<T>(String,ICriteria)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add<T>(String,ICriteria)
Add<T>(DetachedCriteria)N/AN/AN/AN/AN/A1N/A14NHibernate.IMultiCriteria.Add<T>(DetachedCriteria)
Add<T>(String,DetachedCriteria)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add<T>(String,DetachedCriteria)
Add(ICriteria)N/AN/AN/AN/AN/A1N/A14NHibernate.IMultiCriteria.Add(ICriteria)
Add(String,ICriteria)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add(String,ICriteria)
Add(DetachedCriteria)N/AN/AN/AN/AN/A1N/A14NHibernate.IMultiCriteria.Add(DetachedCriteria)
Add(String,DetachedCriteria)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add(String,DetachedCriteria)
Add(Type,IQueryOver)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add(Type,IQueryOver)
Add<T>(IQueryOver<T>)N/AN/AN/AN/AN/A1N/A14NHibernate.IMultiCriteria.Add<T>(IQueryOver<T>)
Add<U>(IQueryOver)N/AN/AN/AN/AN/A1N/A14NHibernate.IMultiCriteria.Add<U>(IQueryOver)
Add<T>(String,IQueryOver<T>)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add<T>(String,IQueryOver<T>)
Add<U>(String,IQueryOver)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add<U>(String,IQueryOver)
OnFlushDirty(Object,Object,Object[],Object[],String[],IType[])16110601NHibernate.EmptyInterceptor.OnFlushDirty(Object,Object,Object[] ,Object[],String[],IType[])
FindDirty(Object,Object,Object[],Object[],String[],IType[])16110601NHibernate.EmptyInterceptor.FindDirty(Object,Object,Object[],Object[] ,String[],IType[])
Load(Type,Object,LockMode)N/AN/AN/AN/AN/A3N/A7NHibernate.ISession.Load(Type,Object,LockMode)
Load(String,Object,LockMode)N/AN/AN/AN/AN/A3N/A7NHibernate.ISession.Load(String,Object,LockMode)
Load(Type,Object)N/AN/AN/AN/AN/A2N/A7NHibernate.ISession.Load(Type,Object)
Load<T>(Object,LockMode)N/AN/AN/AN/AN/A2N/A7NHibernate.ISession.Load<T>(Object,LockMode)
Load<T>(Object)N/AN/AN/AN/AN/A1N/A7NHibernate.ISession.Load<T>(Object)
Load(String,Object)N/AN/AN/AN/AN/A2N/A7NHibernate.ISession.Load(String,Object)
Load(Object,Object)N/AN/AN/AN/AN/A2N/A7NHibernate.ISession.Load(Object,Object)
Add(Type,IQuery)N/AN/AN/AN/AN/A2N/A9NHibernate.IMultiQuery.Add(Type,IQuery)
Add<T>(IQuery)N/AN/AN/AN/AN/A1N/A9NHibernate.IMultiQuery.Add<T>(IQuery)
Add<T>(String,IQuery)N/AN/AN/AN/AN/A2N/A9NHibernate.IMultiQuery.Add<T>(String,IQuery)
Add<T>(String,String)N/AN/AN/AN/AN/A2N/A9NHibernate.IMultiQuery.Add<T>(String,String)
Add<T>(String)N/AN/AN/AN/AN/A1N/A9NHibernate.IMultiQuery.Add<T>(String)
Add(String,IQuery)N/AN/AN/AN/AN/A2N/A9NHibernate.IMultiQuery.Add(String,IQuery)
Add(IQuery)N/AN/AN/AN/AN/A1N/A9NHibernate.IMultiQuery.Add(IQuery)
Add(String,String)N/AN/AN/AN/AN/A2N/A9NHibernate.IMultiQuery.Add(String,String)
Add(String)N/AN/AN/AN/AN/A1N/A9NHibernate.IMultiQuery.Add(String)
ParseTypeName(String)3023891421121NHibernate.Util.TypeNameParser.ParseTypeName(String)
MoveNext()2824511224001NHibernate.Util.TypeNameParser+<GenericTypesArguments>d__0.MoveNext()
TypeFromAssembly(AssemblyQualifiedTypeName,Boolean)24130996242NHibernate.Util.ReflectHelper.TypeFromAssembly (AssemblyQualifiedTypeName,Boolean)
ReplaceElements(Object,Object,ICollectionPersister,Object,IDictionary ,ISessionImplementor)N/AN/AN/AN/AN/A6N/A1NHibernate.UserTypes.IUserCollectionType.ReplaceElements(Object,Object ,ICollectionPersister,Object,IDictionary,ISessionImplementor)
Replace(Object,Object,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection)N/AN/AN/AN/AN/A6N/A2NHibernate.Type.IType.Replace(Object,Object,ISessionImplementor,Object ,IDictionary,ForeignKeyDirection)
Replace(Object,Object,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection)540351622NHibernate.Type.AbstractType.Replace(Object,Object,ISessionImplementor ,Object,IDictionary,ForeignKeyDirection)
Replace(Object,Object,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection)751341632NHibernate.Type.ComponentType.Replace(Object,Object ,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
.ctor(String,ForeignKeyDirection,String,Boolean,Boolean,Boolean,String ,String)422110801NHibernate.Type.OneToOneType..ctor(String,ForeignKeyDirection,String ,Boolean,Boolean,Boolean,String,String)
Replace(Object[],Object[],IType[],ISessionImplementor,Object ,IDictionary)644231622NHibernate.Type.TypeHelper.Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary)
Replace(Object[],Object[],IType[],ISessionImplementor,Object ,IDictionary,ForeignKeyDirection)871472722NHibernate.Type.TypeHelper.Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
ReplaceAssociations(Object[],Object[],IType[],ISessionImplementor ,Object,IDictionary,ForeignKeyDirection)1917810163771NHibernate.Type.TypeHelper.ReplaceAssociations(Object[],Object[] ,IType[],ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
FindDirty(StandardProperty[],Object[],Object[],Boolean[][],Boolean ,ISessionImplementor)16105693661NHibernate.Type.TypeHelper.FindDirty(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean,ISessionImplementor)
FindModified(StandardProperty[],Object[],Object[],Boolean[][],Boolean ,ISessionImplementor)16105693661NHibernate.Type.TypeHelper.FindModified(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean,ISessionImplementor)
.ctor(String,String,Boolean,Boolean,Boolean,Boolean)216110603NHibernate.Type.ManyToOneType..ctor(String,String,Boolean,Boolean ,Boolean,Boolean)
.ctor(String,ForeignKeyDirection,String,Boolean,Boolean,String,String)114110701NHibernate.Type.SpecialOneToOneType..ctor(String,ForeignKeyDirection ,String,Boolean,Boolean,String,String)
RegisterDefaultNetTypes()25404171001NHibernate.Type.TypeFactory.RegisterDefaultNetTypes()
HeuristicType(String,IDictionary<String,String>)3025915184252NHibernate.Type.TypeFactory.HeuristicType(String,IDictionary<String ,String>)
OneToOne(String,ForeignKeyDirection,String,Boolean,Boolean,Boolean ,String,String)114110801NHibernate.Type.TypeFactory.OneToOne(String,ForeignKeyDirection,String ,Boolean,Boolean,Boolean,String,String)
ManyToOne(String,String,Boolean,Boolean,Boolean,Boolean)112110603NHibernate.Type.TypeFactory.ManyToOne(String,String,Boolean,Boolean ,Boolean,Boolean)
SqlCreateString(Dialect,IMapping,String,String)5542223423471NHibernate.Mapping.Table.SqlCreateString(Dialect,IMapping,String ,String)
BuildSqlCreateIndexString(Dialect,String,Table,IEnumerable<Column> ,Boolean,String,String)12875102731NHibernate.Mapping.Index.BuildSqlCreateIndexString(Dialect,String ,Table,IEnumerable<Column>,Boolean,String,String)
Convert(ISQLExceptionConverter,Exception,String,SqlString,Object[] ,IDictionary<String,TypedValue>)429231614NHibernate.Exceptions.ADOExceptionHelper.Convert (ISQLExceptionConverter,Exception,String,SqlString,Object[] ,IDictionary<String,TypedValue>)
InjectFieldInterceptor(Object,String,Type,ISet<String>,ISet<String> ,ISessionImplementor)630231621NHibernate.Intercept.FieldInterceptionHelper.InjectFieldInterceptor (Object,String,Type,ISet<String>,ISet<String>,ISessionImplementor)
.ctor(Object,Object[],Int32[],Boolean,Object[],Object,Object,Object ,IEntityPersister,ISessionImplementor)7281101001NHibernate.Action.EntityUpdateAction..ctor(Object,Object[],Int32[] ,Boolean,Object[],Object,Object,Object,IEntityPersister ,ISessionImplementor)
Execute()40302172230121NHibernate.Action.EntityUpdateAction.Execute()
.ctor(Object,Object[],Object,Object,IEntityPersister,Boolean ,ISessionImplementor)419110701NHibernate.Action.EntityDeleteAction..ctor(Object,Object[],Object ,Object,IEntityPersister,Boolean,ISessionImplementor)
Execute()32181101310121NHibernate.Action.EntityDeleteAction.Execute()
Execute()3118211132071NHibernate.Action.CollectionUpdateAction.Execute()
.ctor(Object,Object[],Object,Object,IEntityPersister ,ISessionImplementor)316110601NHibernate.Action.EntityInsertAction..ctor(Object,Object[],Object ,Object,IEntityPersister,ISessionImplementor)
Execute()32215111330121NHibernate.Action.EntityInsertAction.Execute()
.ctor(ISessionImplementor,ISet<String>)251336103292NHibernate.Action.BulkOperationCleanupAction..ctor(ISessionImplementor ,ISet<String>)
InfoString(Type,Object)11643512110NHibernate.Impl.MessageHelper.InfoString(Type,Object)
InfoString(IEntityPersister,Object,ISessionFactoryImplementor)11643513110NHibernate.Impl.MessageHelper.InfoString(IEntityPersister,Object ,ISessionFactoryImplementor)
InfoString(IEntityPersister,Object,IType,ISessionFactoryImplementor)11673514110NHibernate.Impl.MessageHelper.InfoString(IEntityPersister,Object,IType ,ISessionFactoryImplementor)
InfoString(IEntityPersister,Object[],ISessionFactoryImplementor)14904623210NHibernate.Impl.MessageHelper.InfoString(IEntityPersister,Object[] ,ISessionFactoryImplementor)
InfoString(IEntityPersister,Object)11643512110NHibernate.Impl.MessageHelper.InfoString(IEntityPersister,Object)
InfoString(IEntityPersister)7392311110NHibernate.Impl.MessageHelper.InfoString(IEntityPersister)
InfoString(ICollectionPersister,Object)11643512110NHibernate.Impl.MessageHelper.InfoString(ICollectionPersister,Object)
InfoString(String,String,Object)2272213110NHibernate.Impl.MessageHelper.InfoString(String,String,Object)
InfoString(ICollectionPersister,Object,ISessionFactoryImplementor)11693513110NHibernate.Impl.MessageHelper.InfoString(ICollectionPersister,Object ,ISessionFactoryImplementor)
InfoString(String,Object)2273312110NHibernate.Impl.MessageHelper.InfoString(String,Object)
VerifyParameters(Boolean)2020812163142NHibernate.Impl.AbstractQueryImpl.VerifyParameters(Boolean)
ExpandParameterList(String,String,TypedValue,IDictionary<String ,TypedValue>)211466122491NHibernate.Impl.AbstractQueryImpl.ExpandParameterList(String,String ,TypedValue,IDictionary<String,TypedValue>)
.ctor(String,IList<INativeSQLQueryReturn>,ICollection<String> ,FlushMode,Boolean,ISessionImplementor,ParameterMetadata)419110705NHibernate.Impl.SqlQueryImpl..ctor(String,IList<INativeSQLQueryReturn> ,ICollection<String>,FlushMode,Boolean,ISessionImplementor ,ParameterMetadata)
.ctor(String,String[],Type[],LockMode[],ISessionImplementor ,ICollection<String>,FlushMode,ParameterMetadata)960352825NHibernate.Impl.SqlQueryImpl..ctor(String,String[],Type[],LockMode[] ,ISessionImplementor,ICollection<String>,FlushMode,ParameterMetadata)
SetQueryProperties(IQuery)5233314312191NHibernate.Impl.AbstractDetachedQuery.SetQueryProperties(IQuery)
SetParametersTo(IDetachedQuery)352168232171NHibernate.Impl.AbstractDetachedQuery.SetParametersTo(IDetachedQuery)
.ctor(IDataReader,IDbCommand,ISessionImplementor,IType[],String[][] ,RowSelection,HolderInstantiator)1038110701NHibernate.Impl.EnumerableImpl..ctor(IDataReader,IDbCommand ,ISessionImplementor,IType[],String[][],RowSelection ,HolderInstantiator)
.ctor(CriteriaImpl,ICriteria,String,String,JoinType,ICriterion)1149221603NHibernate.Impl.CriteriaImpl+Subcriteria..ctor(CriteriaImpl,ICriteria ,String,String,JoinType,ICriterion)

Statistics

Stat   # lines of code (LOC)   # IL instructions   Cyclomatic Complexity (CC)   IL Cyclomatic Complexity (ILCC)   IL Nesting Depth   # Parameters   # Variables   # Overloads
Sum:11 36881 2193 4004 8388291 9072 1732 948
Average:22.42160.26.719.541.643.244.295.01
Minimum:13110001
Maximum:4014 89264809224616
Standard deviation:33.82315.478.5812.251.692.796.155.33
Variance:1 14399 52073.64150.182.877.7937.8828.39
warningCritical    Rule warning: Methods too big
// <Name>Methods too big</Name>
warnif count > 0 from m in JustMyCode.Methods where 
   
m.NbLinesOfCode > 30 ||
   
m.NbILInstructions > 200
   
orderby m.NbLinesOfCode descending,
           
m.NbILInstructions descending
select new { m, m.NbLinesOfCode, m.NbILInstructions }

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

169 methods matched

methods# lines of code (LOC)# IL instructionsFull Name
.cctor()4014 892NHibernate.Hql.Ast.ANTLR.HqlParser..cctor()
.cctor()2823 853NHibernate.Hql.Ast.ANTLR.HqlSqlWalker..cctor()
.ctor(Collection,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor)2211 279NHibernate.Persister.Collection.AbstractCollectionPersister..ctor (Collection,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)2121 311NHibernate.Persister.Entity.SingleTableEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor)189948NHibernate.Persister.Entity.AbstractEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)162993NHibernate.Persister.Entity.JoinedSubclassEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
BuildSettings(IDictionary<String,String>)136768NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary<String,String >)
.ctor(Configuration,IMapping,Settings,EventListeners)135820NHibernate.Impl.SessionFactoryImpl..ctor(Configuration,IMapping ,Settings,EventListeners)
.ctor(PersistentClass,ISessionFactoryImplementor)131842NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass ,ISessionFactoryImplementor)
Token(String,QueryTranslator)105624NHibernate.Hql.Classic.FromParser.Token(String,QueryTranslator)
.ctor(ICustomQuery,ISessionFactoryImplementor)105514NHibernate.Loader.Custom.CustomLoader..ctor(ICustomQuery ,ISessionFactoryImplementor)
Token(String,QueryTranslator)102687NHibernate.Hql.Classic.SelectParser.Token(String,QueryTranslator)
.ctor()96618NHibernate.Dialect.FirebirdDialect..ctor()
.ctor()91584NHibernate.Dialect.DB2Dialect..ctor()
MoveNext()86684NHibernate.Dialect .Dialect+QuotedAndParenthesisStringTokenizer+GetEnumerator>d__0 .MoveNext()
RenderSql()85548NHibernate.Hql.Classic.QueryTranslator.RenderSql()
.ctor()85525NHibernate.Dialect.MsSql2000Dialect..ctor()
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)83566NHibernate.Persister.Entity.UnionSubclassEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
PrepareParameterTypes(SqlString,ISessionFactoryImplementor ,QueryParameters+GetNamedParameterLocations,Int32,Boolean,Boolean)79472NHibernate.Engine.QueryParameters.PrepareParameterTypes(SqlString ,ISessionFactoryImplementor,QueryParameters+GetNamedParameterLocations ,Int32,Boolean,Boolean)
BindPropertyResults(String,HbmReturnDiscriminator,HbmReturnProperty[] ,PersistentClass)77426NHibernate.Cfg.XmlHbmBinding.ResultSetMappingBinder .BindPropertyResults(String,HbmReturnDiscriminator,HbmReturnProperty[] ,PersistentClass)
Create(IToken)75190NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerTreeAdaptor.Create(IToken)
Bind(IEnumerable<IEntityPropertyMapping>,Table,IDictionary<String ,MetaAttribute>,Action<Property>,Action<Property>)73556NHibernate.Cfg.XmlHbmBinding.PropertiesBinder.Bind(IEnumerable <IEntityPropertyMapping>,Table,IDictionary<String,MetaAttribute> ,Action<Property>,Action<Property>)
SetListeners(ListenerType,Object[])73270NHibernate.Cfg.Configuration.SetListeners(ListenerType,Object[])
DoList()72503NHibernate.Impl.MultiQueryImpl.DoList()
AppendListeners(ListenerType,Object[])71392NHibernate.Cfg.Configuration.AppendListeners(ListenerType,Object[])
.cctor()71305NHibernate.Hql.Classic.WhereParser..cctor()
ClearListeners(ListenerType)71256NHibernate.Cfg.Configuration.ClearListeners(ListenerType)
DoUpdateRows(Object,IPersistentCollection,ISessionImplementor)68477NHibernate.Persister.Collection.OneToManyPersister.DoUpdateRows(Object ,IPersistentCollection,ISessionImplementor)
RegisterFunctions()66453NHibernate.Dialect.Oracle8iDialect.RegisterFunctions()
.ctor()65395NHibernate.Dialect.OracleLiteDialect..ctor()
RenderWhereStringTemplate(String,String,Dialect,SQLFunctionRegistry)63369NHibernate.SqlCommand.Template.RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry)
InitializeExplicitSelectClause(FromClause)61368NHibernate.Hql.Ast.ANTLR.Tree.SelectClause .InitializeExplicitSelectClause(FromClause)
InitializeEntity(Object,Boolean,ISessionImplementor,PreLoadEvent ,PostLoadEvent)60401NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object,Boolean ,ISessionImplementor,PreLoadEvent,PostLoadEvent)
RenderScalarSelect()59414NHibernate.Hql.Classic.QueryTranslator.RenderScalarSelect()
Parse(String,ParameterParser+IRecognizer)57410NHibernate.Engine.Query.ParameterParser.Parse(String ,ParameterParser+IRecognizer)
ProcessFilters(SqlString,ISessionImplementor)57334NHibernate.Engine.QueryParameters.ProcessFilters(SqlString ,ISessionImplementor)
GenerateCustomReturns(Boolean)56491NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor .GenerateCustomReturns(Boolean)
DoConfigure(ISessionFactoryConfiguration)56466NHibernate.Cfg.Configuration.DoConfigure(ISessionFactoryConfiguration)
BindCollection(ICollectionPropertiesMapping,Collection,String,String ,Type,IDictionary<String,MetaAttribute>)56397NHibernate.Cfg.XmlHbmBinding.CollectionBinder.BindCollection (ICollectionPropertiesMapping,Collection,String,String,Type ,IDictionary<String,MetaAttribute>)
NegateNode(IASTNode)56294NHibernate.Hql.Ast.ANTLR.HqlParser.NegateNode(IASTNode)
SqlCreateString(Dialect,IMapping,String,String)55422NHibernate.Mapping.Table.SqlCreateString(Dialect,IMapping,String ,String)
Resolve(Boolean,Boolean,String,IASTNode)54308NHibernate.Hql.Ast.ANTLR.Tree.IndexNode.Resolve(Boolean,Boolean,String ,IASTNode)
GetResultsFromDatabase(IList)53385NHibernate.Impl.MultiCriteriaImpl.GetResultsFromDatabase(IList)
BindParameters(IDbCommand,Int32,ISessionImplementor)53328NHibernate.Engine.QueryParameters.BindParameters(IDbCommand,Int32 ,ISessionImplementor)
.cctor()53139NHibernate.NHibernateUtil..cctor()
ToSqlString()52386NHibernate.SqlCommand.SqlUpdateBuilder.ToSqlString()
Token(String,QueryTranslator)52380NHibernate.Hql.Classic.WhereParser.Token(String,QueryTranslator)
SetQueryProperties(IQuery)52333NHibernate.Impl.AbstractDetachedQuery.SetQueryProperties(IQuery)
Initialize(SelectClause)52316NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.Initialize(SelectClause)
GenerateSchemaUpdateScript(Dialect,DatabaseMetadata)49412NHibernate.Cfg.Configuration.GenerateSchemaUpdateScript(Dialect ,DatabaseMetadata)
RegisterStringFunctions()49378NHibernate.Dialect.SybaseSQLAnywhere10Dialect.RegisterStringFunctions( )
GenerateSchemaCreationScript(Dialect)49372NHibernate.Cfg.Configuration.GenerateSchemaCreationScript(Dialect)
.cctor()49221NHibernate.SqlCommand.QuerySelect..cctor()
.cctor()46559NHibernate.Impl.ExpressionProcessor..cctor()
.ctor()46279NHibernate.Dialect.Dialect..ctor()
Token(String,QueryTranslator)44273NHibernate.Hql.Classic.ClauseParser.Token(String,QueryTranslator)
PostProcessInsert(IASTNode)44262NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.PostProcessInsert(IASTNode)
.ctor()44239NHibernate.Dialect.MySQLDialect..ctor()
.cctor()44171NHibernate.SqlCommand.Template..cctor()
Delete(Object,Object,Int32,Object,SqlCommandInfo,ISessionImplementor ,Object[])43355NHibernate.Persister.Entity.AbstractEntityPersister.Delete(Object ,Object,Int32,Object,SqlCommandInfo,ISessionImplementor,Object[])
Render(IList,ISessionFactoryImplementor)43275NHibernate.Dialect.Function.AnsiTrimEmulationFunction.Render(IList ,ISessionFactoryImplementor)
.ctor()43255NHibernate.Dialect.InformixDialect..ctor()
ToSqlString()42332NHibernate.SqlCommand.SqlInsertBuilder.ToSqlString()
ConcreteQueries(String,ISessionFactoryImplementor)42262NHibernate.Hql.QuerySplitter.ConcreteQueries(String ,ISessionFactoryImplementor)
Execute(Action<String>,Boolean)42221NHibernate.Tool.hbm2ddl.SchemaUpdate.Execute(Action<String>,Boolean)
SortInsertActions()42215NHibernate.Engine.ActionQueue.SortInsertActions()
VisitBinaryExpression(BinaryExpression)41481NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor .VisitBinaryExpression(BinaryExpression)
Perform()41307NHibernate.AdoNet.Util.BasicFormatter+FormatProcess.Perform()
GenerateDropSchemaScript(Dialect)41297NHibernate.Cfg.Configuration.GenerateDropSchemaScript(Dialect)
GenerateSubquery(PersistentClass,IMapping)41265NHibernate.Persister.Entity.UnionSubclassEntityPersister .GenerateSubquery(PersistentClass,IMapping)
RenderOrderByStringTemplate(String,Dialect,SQLFunctionRegistry)41252NHibernate.SqlCommand.Template.RenderOrderByStringTemplate(String ,Dialect,SQLFunctionRegistry)
Execute()40302NHibernate.Action.EntityUpdateAction.Execute()
OnRefresh(RefreshEvent,IDictionary)40267NHibernate.Event.Default.DefaultRefreshEventListener.OnRefresh (RefreshEvent,IDictionary)
.ctor()40223NHibernate.Dialect.SybaseASA9Dialect..ctor()
DeleteRows(IPersistentCollection,Object,ISessionImplementor)39292NHibernate.Persister.Collection.AbstractCollectionPersister.DeleteRows (IPersistentCollection,Object,ISessionImplementor)
DoUpdateRows(Object,IPersistentCollection,ISessionImplementor)39286NHibernate.Persister.Collection.BasicCollectionPersister.DoUpdateRows (Object,IPersistentCollection,ISessionImplementor)
Hydrate(IDataReader,Object,Object,ILoadable,String[][],Boolean ,ISessionImplementor)39262NHibernate.Persister.Entity.AbstractEntityPersister.Hydrate (IDataReader,Object,Object,ILoadable,String[][],Boolean ,ISessionImplementor)
ConcreteQueries(String,ISessionFactoryImplementor)39246NHibernate.Hql.Classic.QueryTranslator.ConcreteQueries(String ,ISessionFactoryImplementor)
Update(Object,Object[],Object[],Object,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor)38350NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object ,Object[],Object[],Object,Boolean[],Int32,Object,Object,SqlCommandInfo ,ISessionImplementor)
GetNaturalIdentifierSnapshot(Object,ISessionImplementor)38307NHibernate.Persister.Entity.AbstractEntityPersister .GetNaturalIdentifierSnapshot(Object,ISessionImplementor)
PostInstantiate()38284NHibernate.Persister.Entity.AbstractEntityPersister.PostInstantiate()
.ctor(IStatement)38234NHibernate.Hql.Ast.ANTLR.Exec.MultiTableUpdateExecutor..ctor (IStatement)
SecondPassCompile()38226NHibernate.Cfg.Configuration.SecondPassCompile()
RegisterMiscellaneousFunctions()37282NHibernate.Dialect.SybaseSQLAnywhere10Dialect .RegisterMiscellaneousFunctions()
Token(String,QueryTranslator)37258NHibernate.Hql.Classic.PathExpressionParser.Token(String ,QueryTranslator)
DoWorkInCurrentTransaction(ISessionImplementor,IDbConnection ,IDbTransaction)37183NHibernate.Id.Enhanced.TableStructure.DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection,IDbTransaction)
GenerateUpdateString(Boolean[],Int32,Object[],Boolean)36313NHibernate.Persister.Entity.AbstractEntityPersister .GenerateUpdateString(Boolean[],Int32,Object[],Boolean)
.ctor()36267NHibernate.Event.EventListeners..ctor()
ListenerTypeConvertFrom(String)36266NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper .ListenerTypeConvertFrom(String)
DoToken(String,QueryTranslator)36252NHibernate.Hql.Classic.WhereParser.DoToken(String,QueryTranslator)
PerformSaveOrReplicate(Object,EntityKey,IEntityPersister,Boolean ,Object,IEventSource,Boolean)36249NHibernate.Event.Default.AbstractSaveEventListener .PerformSaveOrReplicate(Object,EntityKey,IEntityPersister,Boolean ,Object,IEventSource,Boolean)
AddWhereFragment(JoinFragment,SqlString,QueryNode,FromElement ,HqlSqlWalker)36241NHibernate.Hql.Ast.ANTLR.Util.SyntheticAndFactory.AddWhereFragment (JoinFragment,SqlString,QueryNode,FromElement,HqlSqlWalker)
ValidateFilterDefs()36241NHibernate.Cfg.Configuration.ValidateFilterDefs()
PerformList(QueryParameters,ISessionImplementor,IList)36214NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters ,ISessionImplementor,IList)
.cctor()36213NHibernate.Event.EventListeners..cctor()
OnMerge(MergeEvent,IDictionary)36201NHibernate.Event.Default.DefaultMergeEventListener.OnMerge(MergeEvent ,IDictionary)
.cctor()36135NHibernate.AdoNet.Util.BasicFormatter..cctor()
ListenerTypeConvertToString(ListenerType)36115NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper .ListenerTypeConvertToString(ListenerType)
GetImplementors(String)35243NHibernate.Impl.SessionFactoryImpl.GetImplementors(String)
DoQuery(ISessionImplementor,QueryParameters,Boolean)35218NHibernate.Loader.Loader.DoQuery(ISessionImplementor,QueryParameters ,Boolean)

Statistics

Stat   # lines of code (LOC)   # IL instructions
Sum:8 64862 002
Average:51.17366.88
Minimum:8115
Maximum:4014 892
Standard deviation:45.42478.49
Variance:2 062228 951
warningCritical    Rule warning: Methods too complex
// <Name>Methods too complex</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.CyclomaticComplexity > 20 ||
  
m.ILCyclomaticComplexity > 40 ||
  
m.ILNestingDepth > 5
  
orderby m.CyclomaticComplexity descending,
          
m.ILCyclomaticComplexity descending,
          
m.ILNestingDepth descending
select new { m, m.CyclomaticComplexity, 
                
m.ILCyclomaticComplexity,
                
m.ILNestingDepth  }

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

53 methods matched

methodsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting DepthFull Name
Create(IToken)64405NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerTreeAdaptor.Create(IToken)
VisitExpression(Expression)54241NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor .VisitExpression(Expression)
Token(String,QueryTranslator)46573NHibernate.Hql.Classic.SelectParser.Token(String,QueryTranslator)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)42803NHibernate.Persister.Entity.SingleTableEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
Token(String,QueryTranslator)41523NHibernate.Hql.Classic.FromParser.Token(String,QueryTranslator)
.ctor(PersistentClass,ISessionFactoryImplementor)40644NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass ,ISessionFactoryImplementor)
.ctor(Collection,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor)39783NHibernate.Persister.Collection.AbstractCollectionPersister..ctor (Collection,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor)
SetListeners(ListenerType,Object[])37381NHibernate.Cfg.Configuration.SetListeners(ListenerType,Object[])
ListenerTypeConvertFrom(String)36383NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper .ListenerTypeConvertFrom(String)
ClearListeners(ListenerType)36371NHibernate.Cfg.Configuration.ClearListeners(ListenerType)
AppendListeners(ListenerType,Object[])36371NHibernate.Cfg.Configuration.AppendListeners(ListenerType,Object[])
ListenerTypeConvertToString(ListenerType)36371NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper .ListenerTypeConvertToString(ListenerType)
.ctor(Configuration,IMapping,Settings,EventListeners)34554NHibernate.Impl.SessionFactoryImpl..ctor(Configuration,IMapping ,Settings,EventListeners)
RenderWhereStringTemplate(String,String,Dialect,SQLFunctionRegistry)32424NHibernate.SqlCommand.Template.RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry)
MoveNext()31615NHibernate.Dialect .Dialect+QuotedAndParenthesisStringTokenizer+GetEnumerator>d__0 .MoveNext()
VisitBinaryExpression(BinaryExpression)30379NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor .VisitBinaryExpression(BinaryExpression)
Token(String,QueryTranslator)29403NHibernate.Hql.Classic.WhereParser.Token(String,QueryTranslator)
Parse(String,ParameterParser+IRecognizer)29374NHibernate.Engine.Query.ParameterParser.Parse(String ,ParameterParser+IRecognizer)
BuildSettings(IDictionary<String,String>)27362NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary<String,String >)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)26593NHibernate.Persister.Entity.JoinedSubclassEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
GenerateSchemaUpdateScript(Dialect,DatabaseMetadata)25508NHibernate.Cfg.Configuration.GenerateSchemaUpdateScript(Dialect ,DatabaseMetadata)
BindPropertyResults(String,HbmReturnDiscriminator,HbmReturnProperty[] ,PersistentClass)24404NHibernate.Cfg.XmlHbmBinding.ResultSetMappingBinder .BindPropertyResults(String,HbmReturnDiscriminator,HbmReturnProperty[] ,PersistentClass)
DoUpdateRows(Object,IPersistentCollection,ISessionImplementor)24396NHibernate.Persister.Collection.OneToManyPersister.DoUpdateRows(Object ,IPersistentCollection,ISessionImplementor)
Bind(IEnumerable<IEntityPropertyMapping>,Table,IDictionary<String ,MetaAttribute>,Action<Property>,Action<Property>)24343NHibernate.Cfg.XmlHbmBinding.PropertiesBinder.Bind(IEnumerable <IEntityPropertyMapping>,Table,IDictionary<String,MetaAttribute> ,Action<Property>,Action<Property>)
SqlCreateString(Dialect,IMapping,String,String)23423NHibernate.Mapping.Table.SqlCreateString(Dialect,IMapping,String ,String)
RenderScalarSelect()23374NHibernate.Hql.Classic.QueryTranslator.RenderScalarSelect()
DoList()22323NHibernate.Impl.MultiQueryImpl.DoList()
Delete(Object,Object,Int32,Object,SqlCommandInfo,ISessionImplementor ,Object[])22293NHibernate.Persister.Entity.AbstractEntityPersister.Delete(Object ,Object,Int32,Object,SqlCommandInfo,ISessionImplementor,Object[])
Update(Object,Object[],Object[],Object,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor)22274NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object ,Object[],Object[],Object,Boolean[],Int32,Object,Object,SqlCommandInfo ,ISessionImplementor)
Perform()22272NHibernate.AdoNet.Util.BasicFormatter+FormatProcess.Perform()
RenderSql()21392NHibernate.Hql.Classic.QueryTranslator.RenderSql()
GenerateUpdateString(Boolean[],Int32,Object[],Boolean)21315NHibernate.Persister.Entity.AbstractEntityPersister .GenerateUpdateString(Boolean[],Int32,Object[],Boolean)
BindCollection(ICollectionPropertiesMapping,Collection,String,String ,Type,IDictionary<String,MetaAttribute>)21312NHibernate.Cfg.XmlHbmBinding.CollectionBinder.BindCollection (ICollectionPropertiesMapping,Collection,String,String,Type ,IDictionary<String,MetaAttribute>)
InitializeExplicitSelectClause(FromClause)21306NHibernate.Hql.Ast.ANTLR.Tree.SelectClause .InitializeExplicitSelectClause(FromClause)
InitializeEntity(Object,Boolean,ISessionImplementor,PreLoadEvent ,PostLoadEvent)21302NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object,Boolean ,ISessionImplementor,PreLoadEvent,PostLoadEvent)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor)20523NHibernate.Persister.Entity.AbstractEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor)
GenerateSchemaCreationScript(Dialect)18425NHibernate.Cfg.Configuration.GenerateSchemaCreationScript(Dialect)
NegateNode(IASTNode)18217NHibernate.Hql.Ast.ANTLR.HqlParser.NegateNode(IASTNode)
ConcreteQueries(String,ISessionFactoryImplementor)17216NHibernate.Hql.QuerySplitter.ConcreteQueries(String ,ISessionFactoryImplementor)
ConcreteQueries(String,ISessionFactoryImplementor)17216NHibernate.Hql.Classic.QueryTranslator.ConcreteQueries(String ,ISessionFactoryImplementor)
ProcessFilters(SqlString,ISessionImplementor)15277NHibernate.Engine.QueryParameters.ProcessFilters(SqlString ,ISessionImplementor)
CreateJoin(String,Boolean,Boolean)10116NHibernate.Persister.Entity.AbstractEntityPersister.CreateJoin(String ,Boolean,Boolean)
RegisterNonExists(EntityKey[],ISessionImplementor)9116NHibernate.Loader.Loader.RegisterNonExists(EntityKey[] ,ISessionImplementor)
TypeFromAssembly(AssemblyQualifiedTypeName,Boolean)996NHibernate.Util.ReflectHelper.TypeFromAssembly (AssemblyQualifiedTypeName,Boolean)
IsProxeable(MethodInfo)986NHibernate.Proxy.DynProxyTypeValidator.IsProxeable(MethodInfo)
VisitMethodCallExpression(MethodCallExpression)8217NHibernate.Linq.ReWriters.MergeAggregatingResultsInExpressionRewriter .VisitMethodCallExpression(MethodCallExpression)
Parse(XPathNavigator)897NHibernate.Cfg.ConfigurationSchema.ClassCacheConfiguration.Parse (XPathNavigator)
BuildCurrentSessionContext()896NHibernate.Impl.SessionFactoryImpl.BuildCurrentSessionContext()
VisitMethodCallExpression(MethodCallExpression)867NHibernate.Linq.GroupBy.GroupByAggregateDetectionVisitor .VisitMethodCallExpression(MethodCallExpression)
Dirty(IPersistentCollection)856NHibernate.Engine.CollectionEntry.Dirty(IPersistentCollection)
Parse(XPathNavigator)786NHibernate.Cfg.ConfigurationSchema.CollectionCacheConfiguration.Parse (XPathNavigator)
Parse(XPathNavigator)786NHibernate.Cfg.ConfigurationSchema.MappingConfiguration.Parse (XPathNavigator)
MoveNext()5226NHibernate.Cfg.ClassExtractor+<GetRootClassesEntries>d__0.MoveNext()

Statistics

Stat   Cyclomatic Complexity (CC)   IL Cyclomatic Complexity (ILCC)   IL Nesting Depth
Sum:1 2821 778229
Average:24.1933.554.32
Minimum:551
Maximum:64809
Standard deviation:12.717.562.01
Variance:161.4308.324.03
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.ndepend.com/Metrics.aspx#PercentageComment
// http://www.ndepend.com/Metrics.aspx#NbLinesOfComment 

253 methods matched

methodsPercentage Comment# lines of code (LOC)# lines of commentFull Name
.cctor()0530NHibernate.NHibernateUtil..cctor()
.cctor()0230NHibernate.Properties.PropertyAccessorFactory..cctor()
get_CascadeStyle()0250NHibernate.Mapping.Property.get_CascadeStyle()
SqlConstraintString(Dialect,String,String,String)0210NHibernate.Mapping.ForeignKey.SqlConstraintString(Dialect,String ,String,String)
DetermineNumberOfPreceedingParametersForEachQuery(SqlString)0240NHibernate.Driver.SqlStringFormatter .DetermineNumberOfPreceedingParametersForEachQuery(SqlString)
ToString()0220NHibernate.Impl.CriteriaImpl.ToString()
Clone()0290NHibernate.Impl.CriteriaImpl.Clone()
ListUsingQueryCache()0230NHibernate.Impl.MultiCriteriaImpl.ListUsingQueryCache()
.ctor(IDbConnection,SessionFactoryImpl,Boolean,Int64,IInterceptor ,EntityMode,Boolean,Boolean,ConnectionReleaseMode)0240NHibernate.Impl.SessionImpl..ctor(IDbConnection,SessionFactoryImpl ,Boolean,Int64,IInterceptor,EntityMode,Boolean,Boolean ,ConnectionReleaseMode)
ListUsingQueryCache()0270NHibernate.Impl.MultiQueryImpl.ListUsingQueryCache()
CreateCombinedQueryParameters()0210NHibernate.Impl.MultiQueryImpl.CreateCombinedQueryParameters()
Close()0280NHibernate.Impl.SessionFactoryImpl.Close()
.cctor()0460NHibernate.Impl.ExpressionProcessor..cctor()
Substring(Int32,Int32)0290NHibernate.SqlCommand.SqlString.Substring(Int32,Int32)
Insert(Int32,String)0300NHibernate.SqlCommand.SqlString.Insert(Int32,String)
Parse(String)0230NHibernate.SqlCommand.SqlString.Parse(String)
ToQuerySqlString()0310NHibernate.SqlCommand.QuerySelect.ToQuerySqlString()
.ctor(Dialect,IDictionary<String,LockMode>,IDictionary<String,String[] >)0240NHibernate.SqlCommand.ForUpdateFragment..ctor(Dialect,IDictionary <String,LockMode>,IDictionary<String,String[]>)
.cctor()0440NHibernate.SqlCommand.Template..cctor()
ToSqlString()0220NHibernate.SqlCommand.InsertSelect.ToSqlString()
Clear()0340NHibernate.Stat.StatisticsImpl.Clear()
LogSummary()0290NHibernate.Stat.StatisticsImpl.LogSummary()
.cctor()0210NHibernate.SqlTypes.SqlTypeFactory..cctor()
.ctor()0910NHibernate.Dialect.DB2Dialect..ctor()
.ctor()0310NHibernate.Dialect.SQLiteDialect..ctor()
Qualify(String,String,String)0280NHibernate.Dialect.SQLiteDialect.Qualify(String,String,String)
RegisterMiscellaneousFunctions()0370NHibernate.Dialect.SybaseSQLAnywhere10Dialect .RegisterMiscellaneousFunctions()
SelectString(IList<OuterJoinableAssociation>)0210NHibernate.Loader.JoinWalker.SelectString(IList <OuterJoinableAssociation>)
.ctor(ISessionFactoryImplementor,CriteriaImpl,String,String)0230NHibernate.Loader.Criteria.CriteriaQueryTranslator..ctor (ISessionFactoryImplementor,CriteriaImpl,String,String)
GetQueryParameters()0300NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetQueryParameters( )
DetermineAppropriateOwnerPersister(NonScalarReturn)0230NHibernate.Loader.Custom.CustomLoader .DetermineAppropriateOwnerPersister(NonScalarReturn)
GenerateCustomReturns(Boolean)0560NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor .GenerateCustomReturns(Boolean)
PropertySelectFragment(String,String,Boolean)0260NHibernate.Persister.Entity.AbstractEntityPersister .PropertySelectFragment(String,String,Boolean)
LogStaticSQL()0240NHibernate.Persister.Entity.AbstractEntityPersister.LogStaticSQL()
CreateSelect(Int32[],Int32[])0210NHibernate.Persister.Entity.AbstractEntityPersister.CreateSelect (Int32[],Int32[])
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)02122NHibernate.Persister.Entity.SingleTableEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
ToColumns(String,String)0280NHibernate.Persister.Collection.CollectionPropertyMapping.ToColumns (String,String)
GetTypedValues(ICriteria,ICriteriaQuery)0240NHibernate.Criterion.InExpression.GetTypedValues(ICriteria ,ICriteriaQuery)
ToSqlString(ICriteria,Int32,ICriteriaQuery,IDictionary<String,IFilter> )0210NHibernate.Criterion.SqlFunctionProjection.ToSqlString(ICriteria,Int32 ,ICriteriaQuery,IDictionary<String,IFilter>)
.ctor(String,String,IDictionary<String,IFilter> ,ISessionFactoryImplementor)0280NHibernate.Hql.Classic.QueryTranslator..ctor(String,String,IDictionary <String,IFilter>,ISessionFactoryImplementor)
BuildParameterMetadata(IParameterTranslations,String)0240NHibernate.Hql.Classic.QueryTranslator.BuildParameterMetadata (IParameterTranslations,String)
.cctor()0250NHibernate.Hql.Classic.PreprocessingParser..cctor()
.ctor(IASTFactory,Type)0240NHibernate.Hql.Ast.HqlIdent..ctor(IASTFactory,Type)
.cctor()04010NHibernate.Hql.Ast.ANTLR.HqlParser..cctor()
HandleWithFragment(FromElement,IASTNode)0210NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.HandleWithFragment(FromElement ,IASTNode)
.cctor()02820NHibernate.Hql.Ast.ANTLR.HqlSqlWalker..cctor()
AddChild(IASTNode)0230NHibernate.Hql.Ast.ANTLR.Tree.ASTNode.AddChild(IASTNode)
ExtractMutationTexts(IASTNode,Int32)0250NHibernate.Hql.Ast.ANTLR.Tree.BinaryLogicOperatorNode .ExtractMutationTexts(IASTNode,Int32)
ExtractMutationTexts(IASTNode,Int32)0270NHibernate.Hql.Ast.ANTLR.Tree.AbstractNullnessCheckNode .ExtractMutationTexts(IASTNode,Int32)
.ctor(IStatement)0380NHibernate.Hql.Ast.ANTLR.Exec.MultiTableUpdateExecutor..ctor (IStatement)
Equals(Object)0300NHibernate.Cache.QueryKey.Equals(Object)
ComputeHashCode()0330NHibernate.Cache.QueryKey.ComputeHashCode()
ToString()0270NHibernate.Cache.QueryKey.ToString()
Configure(IType,IDictionary<String,String>,Dialect)0210NHibernate.Id.IncrementGenerator.Configure(IType,IDictionary<String ,String>,Dialect)
DoWorkInCurrentTransaction(ISessionImplementor,IDbConnection ,IDbTransaction)0370NHibernate.Id.Enhanced.TableStructure.DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection,IDbTransaction)
.cctor()0360NHibernate.Event.EventListeners..cctor()
InitializeListeners(Configuration)0350NHibernate.Event.EventListeners.InitializeListeners(Configuration)
.ctor()0360NHibernate.Event.EventListeners..ctor()
OnInitializeCollection(InitializeCollectionEvent)0220NHibernate.Event.Default.DefaultInitializeCollectionEventListener .OnInitializeCollection(InitializeCollectionEvent)
InitializeCollectionFromCache(Object,ICollectionPersister ,IPersistentCollection,ISessionImplementor)0230NHibernate.Event.Default.DefaultInitializeCollectionEventListener .InitializeCollectionFromCache(Object,ICollectionPersister ,IPersistentCollection,ISessionImplementor)
DoLoad(LoadEvent,IEntityPersister,EntityKey,LoadType)0210NHibernate.Event.Default.DefaultLoadEventListener.DoLoad(LoadEvent ,IEntityPersister,EntityKey,LoadType)
OnEvict(EvictEvent)0220NHibernate.Event.Default.DefaultEvictEventListener.OnEvict(EvictEvent)
.ctor(IDictionary<String,PersistentClass>,IDictionary<String ,Collection>,IDictionary<String,Table>,IDictionary<String ,NamedQueryDefinition>,IDictionary<String,NamedSQLQueryDefinition> ,IDictionary<String,ResultSetMappingDefinition>,IDictionary<String ,String>,IList<SecondPassCommand>,Queue<FilterSecondPassArgs>,IList <Mappings+PropertyReference>,INamingStrategy,IDictionary<String ,TypeDef>,IDictionary<String,FilterDefinition>,ISet<ExtendsQueueEntry> ,IList<IAuxiliaryDatabaseObject>,IDictionary<String ,Mappings+TableDescription>,IDictionary<Table,Mappings+ColumnNames> ,String,String,String,String,Dialect)0230NHibernate.Cfg.Mappings..ctor(IDictionary<String,PersistentClass> ,IDictionary<String,Collection>,IDictionary<String,Table>,IDictionary <String,NamedQueryDefinition>,IDictionary<String ,NamedSQLQueryDefinition>,IDictionary<String ,ResultSetMappingDefinition>,IDictionary<String,String>,IList <SecondPassCommand>,Queue<FilterSecondPassArgs>,IList <Mappings+PropertyReference>,INamingStrategy,IDictionary<String ,TypeDef>,IDictionary<String,FilterDefinition>,ISet<ExtendsQueueEntry> ,IList<IAuxiliaryDatabaseObject>,IDictionary<String ,Mappings+TableDescription>,IDictionary<Table,Mappings+ColumnNames> ,String,String,String,String,Dialect)
GetSchemaActions(String)0230NHibernate.Cfg.Mappings.GetSchemaActions(String)
MoveNext()0210NHibernate.Cfg.ClassExtractor+<GetRootClassesEntries>d__0.MoveNext()
GenerateSchemaCreationScript(Dialect)0490NHibernate.Cfg.Configuration.GenerateSchemaCreationScript(Dialect)
SecondPassCompileForeignKeys(Table,ISet)0210NHibernate.Cfg.Configuration.SecondPassCompileForeignKeys(Table,ISet)
ClearListeners(ListenerType)0710NHibernate.Cfg.Configuration.ClearListeners(ListenerType)
SetListeners(ListenerType,Object[])0730NHibernate.Cfg.Configuration.SetListeners(ListenerType,Object[])
AppendListeners(ListenerType,Object[])0710NHibernate.Cfg.Configuration.AppendListeners(ListenerType,Object[])
GenerateSchemaUpdateScript(Dialect,DatabaseMetadata)0490NHibernate.Cfg.Configuration.GenerateSchemaUpdateScript(Dialect ,DatabaseMetadata)
BindAnyMeta(IAnyMapping,Any)0220NHibernate.Cfg.XmlHbmBinding.ClassBinder.BindAnyMeta(IAnyMapping,Any)
BindMapSecondPass(HbmMap,Map,IDictionary<String,PersistentClass> ,IDictionary<String,MetaAttribute>)0330NHibernate.Cfg.XmlHbmBinding.CollectionBinder.BindMapSecondPass(HbmMap ,Map,IDictionary<String,PersistentClass>,IDictionary<String ,MetaAttribute>)
ListenerTypeConvertFrom(String)0360NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper .ListenerTypeConvertFrom(String)
ListenerTypeConvertToString(ListenerType)0360NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper .ListenerTypeConvertToString(ListenerType)
EmitFastInt(ILGenerator,Int32)0240NHibernate.Bytecode.EmitUtil.EmitFastInt(ILGenerator,Int32)
VisitResultOperator(ResultOperatorBase,QueryModel,Int32)0220NHibernate.Linq.ReWriters.MergeAggregatingResultsRewriter .VisitResultOperator(ResultOperatorBase,QueryModel,Int32)
.ctor()0220NHibernate.Linq.Functions.DefaultLinqToHqlGeneratorsRegistry..ctor()
Clear()0270NHibernate.Engine.StatefulPersistenceContext.Clear()
BindParameters(IDbCommand,Int32,ISessionImplementor)0530NHibernate.Engine.QueryParameters.BindParameters(IDbCommand,Int32 ,ISessionImplementor)
NullifyTransientReferences(Object,IType)0260NHibernate.Engine.ForeignKeys+Nullifier.NullifyTransientReferences (Object,IType)
.cctor()0260NHibernate.Engine.CascadeStyle..cctor()
FormatCreateTable(String)0230NHibernate.AdoNet.Util.DdlFormatter.FormatCreateTable(String)
.cctor()0360NHibernate.AdoNet.Util.BasicFormatter..cctor()
Perform()0410NHibernate.AdoNet.Util.BasicFormatter+FormatProcess.Perform()
Execute(Action<String>,Boolean,Boolean,IDbConnection,TextWriter)0230NHibernate.Tool.hbm2ddl.SchemaExport.Execute(Action<String>,Boolean ,Boolean,IDbConnection,TextWriter)
Execute(Action<String>,Boolean)0420NHibernate.Tool.hbm2ddl.SchemaUpdate.Execute(Action<String>,Boolean)
GetResultsFromDatabase(IList)1531NHibernate.Impl.MultiCriteriaImpl.GetResultsFromDatabase(IList)
.ctor(ICustomQuery,ISessionFactoryImplementor)11052NHibernate.Loader.Custom.CustomLoader..ctor(ICustomQuery ,ISessionFactoryImplementor)
Create(IToken)1751NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerTreeAdaptor.Create(IToken)
DoList()2722NHibernate.Impl.MultiQueryImpl.DoList()
.ctor(Configuration,IMapping,Settings,EventListeners)21353NHibernate.Impl.SessionFactoryImpl..ctor(Configuration,IMapping ,Settings,EventListeners)
RenderOrderByStringTemplate(String,Dialect,SQLFunctionRegistry)2411NHibernate.SqlCommand.Template.RenderOrderByStringTemplate(String ,Dialect,SQLFunctionRegistry)
.ctor(PersistentClass,ISessionFactoryImplementor)21313NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass ,ISessionFactoryImplementor)
MoveNext()2862NHibernate.Dialect .Dialect+QuotedAndParenthesisStringTokenizer+GetEnumerator>d__0 .MoveNext()
.ctor()2852NHibernate.Dialect.MsSql2000Dialect..ctor()
RegisterStringFunctions()2491NHibernate.Dialect.SybaseSQLAnywhere10Dialect.RegisterStringFunctions( )
InitPersisters(IList<OuterJoinableAssociation>,LockMode)2351NHibernate.Loader.JoinWalker.InitPersisters(IList <OuterJoinableAssociation>,LockMode)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)2832NHibernate.Persister.Entity.UnionSubclassEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
.cctor()2712NHibernate.Hql.Classic.WhereParser..cctor()

Statistics

Stat   Percentage Comment   # lines of code (LOC)   # lines of comment
Sum:1 35010 265607
Average:5.3440.572.4
Minimum:0210
Maximum:1940122
Standard deviation:5.6939.483.09
Variance:32.371 5589.57
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 
// (for example see the class System.Diagnostics.ProcessStartInfo 
// and the method System.Diagnostics.Process.Start(ProcessStartInfo))
// See the definition of the NbParameters metric here 
// http://www.ndepend.com/Metrics.aspx#NbParameters

163 methods matched

methods# ParametersFull Name
.ctor(IDictionary<String,PersistentClass>,IDictionary<String ,Collection>,IDictionary<String,Table>,IDictionary<String ,NamedQueryDefinition>,IDictionary<String,NamedSQLQueryDefinition> ,IDictionary<String,ResultSetMappingDefinition>,IDictionary<String ,String>,IList<SecondPassCommand>,Queue<FilterSecondPassArgs>,IList <Mappings+PropertyReference>,INamingStrategy,IDictionary<String ,TypeDef>,IDictionary<String,FilterDefinition>,ISet<ExtendsQueueEntry> ,IList<IAuxiliaryDatabaseObject>,IDictionary<String ,Mappings+TableDescription>,IDictionary<Table,Mappings+ColumnNames> ,String,String,String,String,Dialect)22NHibernate.Cfg.Mappings..ctor(IDictionary<String,PersistentClass> ,IDictionary<String,Collection>,IDictionary<String,Table>,IDictionary <String,NamedQueryDefinition>,IDictionary<String ,NamedSQLQueryDefinition>,IDictionary<String ,ResultSetMappingDefinition>,IDictionary<String,String>,IList <SecondPassCommand>,Queue<FilterSecondPassArgs>,IList <Mappings+PropertyReference>,INamingStrategy,IDictionary<String ,TypeDef>,IDictionary<String,FilterDefinition>,ISet<ExtendsQueueEntry> ,IList<IAuxiliaryDatabaseObject>,IDictionary<String ,Mappings+TableDescription>,IDictionary<Table,Mappings+ColumnNames> ,String,String,String,String,Dialect)
.ctor(IType[],Object[],IDictionary<String,TypedValue>,IDictionary <String,LockMode>,RowSelection,Boolean,Boolean,String,String,Object[] ,Object,String,Object,IResultTransformer)14NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary <String,TypedValue>,IDictionary<String,LockMode>,RowSelection,Boolean ,Boolean,String,String,Object[],Object,String,Object ,IResultTransformer)
.ctor(String,String,IType,Boolean,Boolean,Boolean,Boolean,Boolean ,Boolean,Boolean,Boolean,CascadeStyle,Nullable<FetchMode>)13NHibernate.Tuple.StandardProperty..ctor(String,String,IType,Boolean ,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,CascadeStyle ,Nullable<FetchMode>)
.ctor(String,String,IType,Boolean,Boolean,Boolean,Boolean,Boolean ,Boolean,Boolean,Boolean,CascadeStyle,VersionValue)13NHibernate.Tuple.VersionProperty..ctor(String,String,IType,Boolean ,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,CascadeStyle ,VersionValue)
.ctor(String,INativeSQLQueryReturn[],IList<String>,Boolean,String ,Int32,Int32,FlushMode,Nullable<CacheMode>,Boolean,String,IDictionary <String,String>,Boolean)13NHibernate.Engine.NamedSQLQueryDefinition..ctor(String ,INativeSQLQueryReturn[],IList<String>,Boolean,String,Int32,Int32 ,FlushMode,Nullable<CacheMode>,Boolean,String,IDictionary<String ,String>,Boolean)
.ctor(String,String,IList<String>,Boolean,String,Int32,Int32,FlushMode ,Nullable<CacheMode>,Boolean,String,IDictionary<String,String>,Boolean )13NHibernate.Engine.NamedSQLQueryDefinition..ctor(String,String,IList <String>,Boolean,String,Int32,Int32,FlushMode,Nullable<CacheMode> ,Boolean,String,IDictionary<String,String>,Boolean)
AddEntry(Object,Status,Object[],Object,Object,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean)11NHibernate.Engine.IPersistenceContext.AddEntry(Object,Status,Object[] ,Object,Object,Object,LockMode,Boolean,IEntityPersister,Boolean ,Boolean)
AddEntry(Object,Status,Object[],Object,Object,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean)11NHibernate.Engine.StatefulPersistenceContext.AddEntry(Object,Status ,Object[],Object,Object,Object,LockMode,Boolean,IEntityPersister ,Boolean,Boolean)
.ctor(IType[],Object[],IDictionary<String,TypedValue>,IDictionary <String,LockMode>,RowSelection,Boolean,Boolean,String,String,Object[] ,IResultTransformer)11NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary <String,TypedValue>,IDictionary<String,LockMode>,RowSelection,Boolean ,Boolean,String,String,Object[],IResultTransformer)
.ctor(Status,Object[],Object,Object,Object,LockMode,Boolean ,IEntityPersister,EntityMode,Boolean,Boolean)11NHibernate.Engine.EntityEntry..ctor(Status,Object[],Object,Object ,Object,LockMode,Boolean,IEntityPersister,EntityMode,Boolean,Boolean)
.ctor(Object,Object[],Int32[],Boolean,Object[],Object,Object,Object ,IEntityPersister,ISessionImplementor)10NHibernate.Action.EntityUpdateAction..ctor(Object,Object[],Int32[] ,Boolean,Object[],Object,Object,Object,IEntityPersister ,ISessionImplementor)
InstanceNotYetLoaded(IDataReader,Int32,ILoadable,EntityKey,LockMode ,String,EntityKey,Object,IList,ISessionImplementor)10NHibernate.Loader.Loader.InstanceNotYetLoaded(IDataReader,Int32 ,ILoadable,EntityKey,LockMode,String,EntityKey,Object,IList ,ISessionImplementor)
UpdateOrInsert(Object,Object[],Object[],Object,Boolean[],Int32,Object ,Object,SqlCommandInfo,ISessionImplementor)10NHibernate.Persister.Entity.AbstractEntityPersister.UpdateOrInsert (Object,Object[],Object[],Object,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor)
Update(Object,Object[],Object[],Object,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor)10NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object ,Object[],Object[],Object,Boolean[],Int32,Object,Object,SqlCommandInfo ,ISessionImplementor)
AddEntity(Object,Status,Object[],EntityKey,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean)10NHibernate.Engine.IPersistenceContext.AddEntity(Object,Status,Object[] ,EntityKey,Object,LockMode,Boolean,IEntityPersister,Boolean,Boolean)
AddEntity(Object,Status,Object[],EntityKey,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean)10NHibernate.Engine.StatefulPersistenceContext.AddEntity(Object,Status ,Object[],EntityKey,Object,LockMode,Boolean,IEntityPersister,Boolean ,Boolean)
.ctor(IType[],Object[],IDictionary<String,LockMode>,RowSelection ,Boolean,String,String,Boolean,IResultTransformer,IDictionary<Int32 ,Int32>)10NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary <String,LockMode>,RowSelection,Boolean,String,String,Boolean ,IResultTransformer,IDictionary<Int32,Int32>)
.ctor(String,Boolean,String,Int32,Int32,FlushMode,Nullable<CacheMode> ,Boolean,String,IDictionary<String,String>)10NHibernate.Engine.NamedQueryDefinition..ctor(String,Boolean,String ,Int32,Int32,FlushMode,Nullable<CacheMode>,Boolean,String,IDictionary <String,String>)
.ctor(IDbConnection,SessionFactoryImpl,Boolean,Int64,IInterceptor ,EntityMode,Boolean,Boolean,ConnectionReleaseMode)9NHibernate.Impl.SessionImpl..ctor(IDbConnection,SessionFactoryImpl ,Boolean,Int64,IInterceptor,EntityMode,Boolean,Boolean ,ConnectionReleaseMode)
LoadFromResultSet(IDataReader,Int32,Object,String,EntityKey,String ,LockMode,ILoadable,ISessionImplementor)9NHibernate.Loader.Loader.LoadFromResultSet(IDataReader,Int32,Object ,String,EntityKey,String,LockMode,ILoadable,ISessionImplementor)
Update(Object,Object[],Int32[],Boolean,Object[],Object,Object,Object ,ISessionImplementor)9NHibernate.Persister.Entity.IEntityPersister.Update(Object,Object[] ,Int32[],Boolean,Object[],Object,Object,Object,ISessionImplementor)
Dehydrate(Object,Object[],Object,Boolean[],Boolean[][],Int32 ,IDbCommand,ISessionImplementor,Int32)9NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object ,Object[],Object,Boolean[],Boolean[][],Int32,IDbCommand ,ISessionImplementor,Int32)
Update(Object,Object[],Int32[],Boolean,Object[],Object,Object,Object ,ISessionImplementor)9NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object ,Object[],Int32[],Boolean,Object[],Object,Object,Object ,ISessionImplementor)
.ctor(String,Boolean,String,Int32,Int32,FlushMode,Boolean,String ,IDictionary<String,String>)9NHibernate.Engine.NamedQueryDefinition..ctor(String,Boolean,String ,Int32,Int32,FlushMode,Boolean,String,IDictionary<String,String>)
.ctor(String,ForeignKeyDirection,String,Boolean,Boolean,Boolean,String ,String)8NHibernate.Type.OneToOneType..ctor(String,ForeignKeyDirection,String ,Boolean,Boolean,Boolean,String,String)
OneToOne(String,ForeignKeyDirection,String,Boolean,Boolean,Boolean ,String,String)8NHibernate.Type.TypeFactory.OneToOne(String,ForeignKeyDirection,String ,Boolean,Boolean,Boolean,String,String)
.ctor(String,String[],Type[],LockMode[],ISessionImplementor ,ICollection<String>,FlushMode,ParameterMetadata)8NHibernate.Impl.SqlQueryImpl..ctor(String,String[],Type[],LockMode[] ,ISessionImplementor,ICollection<String>,FlushMode,ParameterMetadata)
GetRowFromResultSet(IDataReader,ISessionImplementor,QueryParameters ,LockMode[],EntityKey,IList,EntityKey[],Boolean)8NHibernate.Loader.Loader.GetRowFromResultSet(IDataReader ,ISessionImplementor,QueryParameters,LockMode[],EntityKey,IList ,EntityKey[],Boolean)
GetRow(IDataReader,ILoadable[],EntityKey[],Object,EntityKey,LockMode[] ,IList,ISessionImplementor)8NHibernate.Loader.Loader.GetRow(IDataReader,ILoadable[],EntityKey[] ,Object,EntityKey,LockMode[],IList,ISessionImplementor)
WalkEntityAssociationTree(IAssociationType,IOuterJoinLoadable,Int32 ,String,String,Boolean,Int32,ILhsAssociationTypeSqlInfo)8NHibernate.Loader.JoinWalker.WalkEntityAssociationTree (IAssociationType,IOuterJoinLoadable,Int32,String,String,Boolean,Int32 ,ILhsAssociationTypeSqlInfo)
GetJoinType(IAssociationType,FetchMode,String,String,String[],Boolean ,Int32,CascadeStyle)8NHibernate.Loader.JoinWalker.GetJoinType(IAssociationType,FetchMode ,String,String,String[],Boolean,Int32,CascadeStyle)
.ctor(IAssociationType,String,String[],String,JoinType,SqlString ,ISessionFactoryImplementor,IDictionary<String,IFilter>)8NHibernate.Loader.OuterJoinableAssociation..ctor(IAssociationType ,String,String[],String,JoinType,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)
GetJoinType(IAssociationType,FetchMode,String,ISet,String,String[] ,Boolean,Int32)8NHibernate.Loader.Collection.BasicCollectionJoinWalker.GetJoinType (IAssociationType,FetchMode,String,ISet,String,String[],Boolean,Int32)
GetJoinType(IAssociationType,FetchMode,String,String,String[],Boolean ,Int32,CascadeStyle)8NHibernate.Loader.Criteria.CriteriaJoinWalker.GetJoinType (IAssociationType,FetchMode,String,String,String[],Boolean,Int32 ,CascadeStyle)
PerformInsert(Object,IPersistentCollection,IExpectation,Object,Int32 ,Boolean,Boolean,ISessionImplementor)8NHibernate.Persister.Collection.AbstractCollectionPersister .PerformInsert(Object,IPersistentCollection,IExpectation,Object,Int32 ,Boolean,Boolean,ISessionImplementor)
PostHydrate(IEntityPersister,Object,Object[],Object,Object,LockMode ,Boolean,ISessionImplementor)8NHibernate.Engine.TwoPhaseLoad.PostHydrate(IEntityPersister,Object ,Object[],Object,Object,LockMode,Boolean,ISessionImplementor)
Replace(Object[],Object[],IType[],ISessionImplementor,Object ,IDictionary,ForeignKeyDirection)7NHibernate.Type.TypeHelper.Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
ReplaceAssociations(Object[],Object[],IType[],ISessionImplementor ,Object,IDictionary,ForeignKeyDirection)7NHibernate.Type.TypeHelper.ReplaceAssociations(Object[],Object[] ,IType[],ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
.ctor(String,ForeignKeyDirection,String,Boolean,Boolean,String,String)7NHibernate.Type.SpecialOneToOneType..ctor(String,ForeignKeyDirection ,String,Boolean,Boolean,String,String)
BuildSqlCreateIndexString(Dialect,String,Table,IEnumerable<Column> ,Boolean,String,String)7NHibernate.Mapping.Index.BuildSqlCreateIndexString(Dialect,String ,Table,IEnumerable<Column>,Boolean,String,String)
.ctor(Object,Object[],Object,Object,IEntityPersister,Boolean ,ISessionImplementor)7NHibernate.Action.EntityDeleteAction..ctor(Object,Object[],Object ,Object,IEntityPersister,Boolean,ISessionImplementor)
.ctor(String,IList<INativeSQLQueryReturn>,ICollection<String> ,FlushMode,Boolean,ISessionImplementor,ParameterMetadata)7NHibernate.Impl.SqlQueryImpl..ctor(String,IList<INativeSQLQueryReturn> ,ICollection<String>,FlushMode,Boolean,ISessionImplementor ,ParameterMetadata)
.ctor(IDataReader,IDbCommand,ISessionImplementor,IType[],String[][] ,RowSelection,HolderInstantiator)7NHibernate.Impl.EnumerableImpl..ctor(IDataReader,IDbCommand ,ISessionImplementor,IType[],String[][],RowSelection ,HolderInstantiator)
AddJoin(String,String,String,String[],String[],JoinType,SqlString)7NHibernate.SqlCommand.QueryJoinFragment.AddJoin(String,String,String ,String[],String[],JoinType,SqlString)
InstanceAlreadyLoaded(IDataReader,Int32,IEntityPersister,EntityKey ,Object,LockMode,ISessionImplementor)7NHibernate.Loader.Loader.InstanceAlreadyLoaded(IDataReader,Int32 ,IEntityPersister,EntityKey,Object,LockMode,ISessionImplementor)
LoadEntity(ISessionImplementor,Object,IType,Object,String,Object ,IEntityPersister)7NHibernate.Loader.Loader.LoadEntity(ISessionImplementor,Object,IType ,Object,String,Object,IEntityPersister)
LoadEntityBatch(ISessionImplementor,Object[],IType,Object,String ,Object,IEntityPersister)7NHibernate.Loader.Loader.LoadEntityBatch(ISessionImplementor,Object[] ,IType,Object,String,Object,IEntityPersister)
.ctor(IOuterJoinLoadable,String[],IType,Int32,LockMode ,ISessionFactoryImplementor,IDictionary<String,IFilter>)7NHibernate.Loader.Entity.EntityLoader..ctor(IOuterJoinLoadable ,String[],IType,Int32,LockMode,ISessionFactoryImplementor,IDictionary <String,IFilter>)
.ctor(IQueryableCollection,SqlString,ICollection<EntityKey> ,QueryParameters,IDictionary<String,Int32[]> ,ISessionFactoryImplementor,IDictionary<String,IFilter>)7NHibernate.Loader.Collection.SubselectOneToManyLoader..ctor (IQueryableCollection,SqlString,ICollection<EntityKey>,QueryParameters ,IDictionary<String,Int32[]>,ISessionFactoryImplementor,IDictionary <String,IFilter>)
.ctor(IQueryableCollection,SqlString,ICollection<EntityKey> ,QueryParameters,IDictionary<String,Int32[]> ,ISessionFactoryImplementor,IDictionary<String,IFilter>)7NHibernate.Loader.Collection.SubselectCollectionLoader..ctor (IQueryableCollection,SqlString,ICollection<EntityKey>,QueryParameters ,IDictionary<String,Int32[]>,ISessionFactoryImplementor,IDictionary <String,IFilter>)
Hydrate(IDataReader,Object,Object,ILoadable,String[][],Boolean ,ISessionImplementor)7NHibernate.Persister.Entity.ILoadable.Hydrate(IDataReader,Object ,Object,ILoadable,String[][],Boolean,ISessionImplementor)
Dehydrate(Object,Object[],Boolean[],Boolean[][],Int32,IDbCommand ,ISessionImplementor)7NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object ,Object[],Boolean[],Boolean[][],Int32,IDbCommand,ISessionImplementor)
Hydrate(IDataReader,Object,Object,ILoadable,String[][],Boolean ,ISessionImplementor)7NHibernate.Persister.Entity.AbstractEntityPersister.Hydrate (IDataReader,Object,Object,ILoadable,String[][],Boolean ,ISessionImplementor)
Insert(Object,Object[],Boolean[],Int32,SqlCommandInfo,Object ,ISessionImplementor)7NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object ,Object[],Boolean[],Int32,SqlCommandInfo,Object,ISessionImplementor)
Delete(Object,Object,Int32,Object,SqlCommandInfo,ISessionImplementor ,Object[])7NHibernate.Persister.Entity.AbstractEntityPersister.Delete(Object ,Object,Int32,Object,SqlCommandInfo,ISessionImplementor,Object[])
AppendComponentCondition(String,Object,IAbstractComponentType ,ICriteria,ICriteriaQuery,IDictionary<String,IFilter>,SqlStringBuilder )7NHibernate.Criterion.Example.AppendComponentCondition(String,Object ,IAbstractComponentType,ICriteria,ICriteriaQuery,IDictionary<String ,IFilter>,SqlStringBuilder)
GetColumnNamesForSimpleExpression(String,IProjection,ICriteriaQuery ,ICriteria,IDictionary<String,IFilter>,ICriterion,Object)7NHibernate.Criterion.CriterionUtil.GetColumnNamesForSimpleExpression (String,IProjection,ICriteriaQuery,ICriteria,IDictionary<String ,IFilter>,ICriterion,Object)
.ctor(String,Type,Object,MethodInfo,MethodInfo,IAbstractComponentType ,ISessionImplementor)7NHibernate.Proxy.Poco.BasicLazyInitializer..ctor(String,Type,Object ,MethodInfo,MethodInfo,IAbstractComponentType,ISessionImplementor)
PerformSave(Object,Object,IEntityPersister,Boolean,Object,IEventSource ,Boolean)7NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object ,Object,IEntityPersister,Boolean,Object,IEventSource,Boolean)
PerformSaveOrReplicate(Object,EntityKey,IEntityPersister,Boolean ,Object,IEventSource,Boolean)7NHibernate.Event.Default.AbstractSaveEventListener .PerformSaveOrReplicate(Object,EntityKey,IEntityPersister,Boolean ,Object,IEventSource,Boolean)
BindComponent(IComponentMapping,Component,Type,String,String,Boolean ,IDictionary<String,MetaAttribute>)7NHibernate.Cfg.XmlHbmBinding.ClassBinder.BindComponent (IComponentMapping,Component,Type,String,String,Boolean,IDictionary <String,MetaAttribute>)
AddUninitializedCachedEntity(EntityKey,Object,IEntityPersister ,LockMode,Boolean,Object,ISessionImplementor)7NHibernate.Engine.TwoPhaseLoad.AddUninitializedCachedEntity(EntityKey ,Object,IEntityPersister,LockMode,Boolean,Object,ISessionImplementor)
.ctor(Object,String,String,IType,Boolean,ISessionFactoryImplementor ,EntityMode)7NHibernate.Engine.EntityKey..ctor(Object,String,String,IType,Boolean ,ISessionFactoryImplementor,EntityMode)
.ctor(String,Type,Object,MethodInfo,MethodInfo,IAbstractComponentType ,ISessionImplementor)7NHibernate.ByteCode.LinFu.LazyInitializer..ctor(String,Type,Object ,MethodInfo,MethodInfo,IAbstractComponentType,ISessionImplementor)
.ctor(String,Type,Object,MethodInfo,MethodInfo,IAbstractComponentType ,ISessionImplementor)7NHibernate.ByteCode.Castle.LazyInitializer..ctor(String,Type,Object ,MethodInfo,MethodInfo,IAbstractComponentType,ISessionImplementor)
OnFlushDirty(Object,Object,Object[],Object[],String[],IType[])6NHibernate.IInterceptor.OnFlushDirty(Object,Object,Object[],Object[] ,String[],IType[])
FindDirty(Object,Object,Object[],Object[],String[],IType[])6NHibernate.IInterceptor.FindDirty(Object,Object,Object[],Object[] ,String[],IType[])
OnFlushDirty(Object,Object,Object[],Object[],String[],IType[])6NHibernate.EmptyInterceptor.OnFlushDirty(Object,Object,Object[] ,Object[],String[],IType[])
FindDirty(Object,Object,Object[],Object[],String[],IType[])6NHibernate.EmptyInterceptor.FindDirty(Object,Object,Object[],Object[] ,String[],IType[])
ReplaceElements(Object,Object,ICollectionPersister,Object,IDictionary ,ISessionImplementor)6NHibernate.UserTypes.IUserCollectionType.ReplaceElements(Object,Object ,ICollectionPersister,Object,IDictionary,ISessionImplementor)
Replace(Object,Object,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection)6NHibernate.Type.IType.Replace(Object,Object,ISessionImplementor,Object ,IDictionary,ForeignKeyDirection)
Replace(Object,Object,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection)6NHibernate.Type.AbstractType.Replace(Object,Object,ISessionImplementor ,Object,IDictionary,ForeignKeyDirection)
Replace(Object,Object,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection)6NHibernate.Type.ComponentType.Replace(Object,Object ,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
Replace(Object[],Object[],IType[],ISessionImplementor,Object ,IDictionary)6NHibernate.Type.TypeHelper.Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary)
FindDirty(StandardProperty[],Object[],Object[],Boolean[][],Boolean ,ISessionImplementor)6NHibernate.Type.TypeHelper.FindDirty(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean,ISessionImplementor)
FindModified(StandardProperty[],Object[],Object[],Boolean[][],Boolean ,ISessionImplementor)6NHibernate.Type.TypeHelper.FindModified(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean,ISessionImplementor)
.ctor(String,String,Boolean,Boolean,Boolean,Boolean)6NHibernate.Type.ManyToOneType..ctor(String,String,Boolean,Boolean ,Boolean,Boolean)
ManyToOne(String,String,Boolean,Boolean,Boolean,Boolean)6NHibernate.Type.TypeFactory.ManyToOne(String,String,Boolean,Boolean ,Boolean,Boolean)
Convert(ISQLExceptionConverter,Exception,String,SqlString,Object[] ,IDictionary<String,TypedValue>)6NHibernate.Exceptions.ADOExceptionHelper.Convert (ISQLExceptionConverter,Exception,String,SqlString,Object[] ,IDictionary<String,TypedValue>)
InjectFieldInterceptor(Object,String,Type,ISet<String>,ISet<String> ,ISessionImplementor)6NHibernate.Intercept.FieldInterceptionHelper.InjectFieldInterceptor (Object,String,Type,ISet<String>,ISet<String>,ISessionImplementor)
.ctor(Object,Object[],Object,Object,IEntityPersister ,ISessionImplementor)6NHibernate.Action.EntityInsertAction..ctor(Object,Object[],Object ,Object,IEntityPersister,ISessionImplementor)
.ctor(CriteriaImpl,ICriteria,String,String,JoinType,ICriterion)6NHibernate.Impl.CriteriaImpl+Subcriteria..ctor(CriteriaImpl,ICriteria ,String,String,JoinType,ICriterion)
AddJoin(String,String,String[],String[],JoinType,SqlString)6NHibernate.SqlCommand.JoinFragment.AddJoin(String,String,String[] ,String[],JoinType,SqlString)
AddJoin(String,String,String[],String[],JoinType,SqlString)6NHibernate.SqlCommand.ANSIJoinFragment.AddJoin(String,String,String[] ,String[],JoinType,SqlString)
AddJoin(String,String,String[],String[],JoinType,SqlString)6NHibernate.SqlCommand.InformixJoinFragment.AddJoin(String,String ,String[],String[],JoinType,SqlString)
AddJoin(String,String,String[],String[],JoinType,SqlString)6NHibernate.SqlCommand.QueryJoinFragment.AddJoin(String,String,String[] ,String[],JoinType,SqlString)
AddJoin(String,String,String[],String[],JoinType,SqlString)6NHibernate.SqlCommand.OracleJoinFragment.AddJoin(String,String ,String[],String[],JoinType,SqlString)
.ctor(String,String,IType,Boolean,IdentifierValue,IIdentifierGenerator )6NHibernate.Tuple.IdentifierProperty..ctor(String,String,IType,Boolean ,IdentifierValue,IIdentifierGenerator)
ReadCollectionElement(Object,Object,ICollectionPersister ,ICollectionAliases,IDataReader,ISessionImplementor)6NHibernate.Loader.Loader.ReadCollectionElement(Object,Object ,ICollectionPersister,ICollectionAliases,IDataReader ,ISessionImplementor)
CheckVersion(Int32,IEntityPersister,Object,Object,IDataReader ,ISessionImplementor)6NHibernate.Loader.Loader.CheckVersion(Int32,IEntityPersister,Object ,Object,IDataReader,ISessionImplementor)
LoadEntity(ISessionImplementor,Object,Object,IType,IType ,IEntityPersister)6NHibernate.Loader.Loader.LoadEntity(ISessionImplementor,Object,Object ,IType,IType,IEntityPersister)
LoadCollectionSubselect(ISessionImplementor,Object[],Object[],IType[] ,IDictionary<String,TypedValue>,IType)6NHibernate.Loader.Loader.LoadCollectionSubselect(ISessionImplementor ,Object[],Object[],IType[],IDictionary<String,TypedValue>,IType)
GetResultFromQueryCache(ISessionImplementor,QueryParameters,ISet <String>,IType[],IQueryCache,QueryKey)6NHibernate.Loader.Loader.GetResultFromQueryCache(ISessionImplementor ,QueryParameters,ISet<String>,IType[],IQueryCache,QueryKey)
PutResultInQueryCache(ISessionImplementor,QueryParameters,IType[] ,IQueryCache,QueryKey,IList)6NHibernate.Loader.Loader.PutResultInQueryCache(ISessionImplementor ,QueryParameters,IType[],IQueryCache,QueryKey,IList)
AddAssociationToJoinTreeIfNecessary(IAssociationType,String[],String ,String,Int32,JoinType)6NHibernate.Loader.JoinWalker.AddAssociationToJoinTreeIfNecessary (IAssociationType,String[],String,String,Int32,JoinType)
AddAssociationToJoinTree(IAssociationType,String[],String,String,Int32 ,JoinType)6NHibernate.Loader.JoinWalker.AddAssociationToJoinTree(IAssociationType ,String[],String,String,Int32,JoinType)
WalkComponentTree(IAbstractComponentType,Int32,String,String,Int32 ,ILhsAssociationTypeSqlInfo)6NHibernate.Loader.JoinWalker.WalkComponentTree(IAbstractComponentType ,Int32,String,String,Int32,ILhsAssociationTypeSqlInfo)
WalkCompositeElementTree(IAbstractComponentType,String[] ,IQueryableCollection,String,String,Int32)6NHibernate.Loader.JoinWalker.WalkCompositeElementTree (IAbstractComponentType,String[],IQueryableCollection,String,String ,Int32)
IsJoinable(JoinType,ISet<JoinWalker+AssociationKey>,String,String[] ,IAssociationType,Int32)6NHibernate.Loader.JoinWalker.IsJoinable(JoinType,ISet <JoinWalker+AssociationKey>,String,String[],IAssociationType,Int32)
InitStatementString(SqlString,SqlString,SqlString,String,SqlString ,LockMode)6NHibernate.Loader.AbstractEntityJoinWalker.InitStatementString (SqlString,SqlString,SqlString,String,SqlString,LockMode)

Statistics

Stat   # Parameters
Sum:1 153
Average:7.07
Minimum:6
Maximum:22
Standard deviation:2.05
Variance:4.22
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.ndepend.com/Metrics.aspx#Nbvariables

23 methods matched

methods# VariablesFull Name
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor)46NHibernate.Persister.Entity.AbstractEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)36NHibernate.Persister.Entity.SingleTableEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
BuildSettings(IDictionary<String,String>)35NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary<String,String >)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)33NHibernate.Persister.Entity.JoinedSubclassEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
.ctor(ICustomQuery,ISessionFactoryImplementor)29NHibernate.Loader.Custom.CustomLoader..ctor(ICustomQuery ,ISessionFactoryImplementor)
BindPropertyResults(String,HbmReturnDiscriminator,HbmReturnProperty[] ,PersistentClass)29NHibernate.Cfg.XmlHbmBinding.ResultSetMappingBinder .BindPropertyResults(String,HbmReturnDiscriminator,HbmReturnProperty[] ,PersistentClass)
.ctor(Collection,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor)28NHibernate.Persister.Collection.AbstractCollectionPersister..ctor (Collection,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor)
Bind(IEnumerable<IEntityPropertyMapping>,Table,IDictionary<String ,MetaAttribute>,Action<Property>,Action<Property>)23NHibernate.Cfg.XmlHbmBinding.PropertiesBinder.Bind(IEnumerable <IEntityPropertyMapping>,Table,IDictionary<String,MetaAttribute> ,Action<Property>,Action<Property>)
DoList()22NHibernate.Impl.MultiQueryImpl.DoList()
.ctor(Configuration,IMapping,Settings,EventListeners)21NHibernate.Impl.SessionFactoryImpl..ctor(Configuration,IMapping ,Settings,EventListeners)
Resolve(Boolean,Boolean,String,IASTNode)21NHibernate.Hql.Ast.ANTLR.Tree.IndexNode.Resolve(Boolean,Boolean,String ,IASTNode)
GetResultsFromDatabase(IList)19NHibernate.Impl.MultiCriteriaImpl.GetResultsFromDatabase(IList)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)18NHibernate.Persister.Entity.UnionSubclassEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
PostProcessInsert(IASTNode)18NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.PostProcessInsert(IASTNode)
Process(NonAggregatingGroupBy,QueryModelVisitor,IntermediateHqlTree)18NHibernate.Linq.Visitors.ResultOperatorProcessors .ProcessNonAggregatingGroupBy.Process(NonAggregatingGroupBy ,QueryModelVisitor,IntermediateHqlTree)
PrepareParameterTypes(SqlString,ISessionFactoryImplementor ,QueryParameters+GetNamedParameterLocations,Int32,Boolean,Boolean)18NHibernate.Engine.QueryParameters.PrepareParameterTypes(SqlString ,ISessionFactoryImplementor,QueryParameters+GetNamedParameterLocations ,Int32,Boolean,Boolean)
RenderWhereStringTemplate(String,String,Dialect,SQLFunctionRegistry)17NHibernate.SqlCommand.Template.RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry)
GenerateCustomReturns(Boolean)17NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor .GenerateCustomReturns(Boolean)
InitializeExplicitSelectClause(FromClause)17NHibernate.Hql.Ast.ANTLR.Tree.SelectClause .InitializeExplicitSelectClause(FromClause)
InitializeEntity(Object,Boolean,ISessionImplementor,PreLoadEvent ,PostLoadEvent)17NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object,Boolean ,ISessionImplementor,PreLoadEvent,PostLoadEvent)
ConcreteQueries(String,ISessionFactoryImplementor)16NHibernate.Hql.QuerySplitter.ConcreteQueries(String ,ISessionFactoryImplementor)
RenderScalarSelect()16NHibernate.Hql.Classic.QueryTranslator.RenderScalarSelect()
<AddSqlQuery>b__0(IDictionary<String,PersistentClass>)16NHibernate.Cfg.XmlHbmBinding.NamedSQLQueryBinder+<>c__DisplayClass1. <AddSqlQuery>b__0(IDictionary<String,PersistentClass>)

Statistics

Stat   # Variables
Sum:530
Average:23.04
Minimum:16
Maximum:46
Standard deviation:7.95
Variance:63.26
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 && 
  
!m.IsOperator // Don't report operator overload
  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. 
// This might also reveal a potential misused of the 
// C# and VB.NET language that since C#3 and VB9 support 
// object initialization. This feature helps reducing the number 
// of constructors of a class.
// See the definition of the NbOverloads metric here 
// http://www.ndepend.com/Metrics.aspx#NbOverloads

214 methods matched

methods# OverloadsFull Name
JoinQueryOver<U>(Expression<Func<TSubType,U>>)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>)
JoinQueryOver<U>(Expression<Func<U>>)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,Expression<Func<U>>)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<U>>,Expression<Func<U>>)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,JoinType)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,JoinType)
JoinQueryOver<U>(Expression<Func<U>>,JoinType)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,Expression<Func<U>> ,JoinType)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<U>>,Expression<Func<U>>,JoinType)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,Expression <Func<U>>)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,Expression<Func<U>>)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,JoinType)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,JoinType)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,JoinType)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,Expression <Func<U>>,JoinType)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,Expression<Func<U>> ,JoinType)16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<TSubType,U>>)
JoinQueryOver<U>(Expression<Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,Expression<Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<TSubType,U>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<U>>,Expression<Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<U>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<TSubType,U>>,JoinType)
JoinQueryOver<U>(Expression<Func<U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,Expression<Func<U>> ,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<TSubType,U>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<U>>,Expression<Func<U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<U>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,Expression <Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<TSubType,IEnumerable<U>>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,Expression<Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<IEnumerable<U>>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<TSubType,IEnumerable<U>>>)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<IEnumerable<U>>>)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,Expression <Func<U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<TSubType,IEnumerable<U>>>,Expression<Func<U>> ,JoinType)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,Expression<Func<U>> ,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<IEnumerable<U>>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<TSubType,IEnumerable<U>>>,JoinType)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.JoinQueryOver<U> (Expression<Func<IEnumerable<U>>>,JoinType)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<TSubType,U>>)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<U>>)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,Expression<Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<TSubType,U>> ,Expression<Func<U>>)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,Expression<Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<U>>,Expression<Func <U>>)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<TSubType,U>> ,JoinType)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<U>>,JoinType)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,Expression<Func<U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<TSubType,U>> ,Expression<Func<U>>,JoinType)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,Expression<Func<U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<U>>,Expression<Func <U>>,JoinType)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable <U>>>)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,Expression<Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable <U>>>,Expression<Func<U>>)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,Expression<Func<U>>)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> ,Expression<Func<U>>)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable <U>>>,JoinType)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> ,JoinType)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,Expression<Func<U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable <U>>>,Expression<Func<U>>,JoinType)
NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,Expression<Func<U>>,JoinType)16NHibernate.Criterion.QueryOver<TRoot,TSubType>.NHibernate.IQueryOver <TRoot,TSubType>.JoinQueryOver<U>(Expression<Func<IEnumerable<U>>> ,Expression<Func<U>>,JoinType)
Add(Type,ICriteria)14NHibernate.IMultiCriteria.Add(Type,ICriteria)
Add<T>(ICriteria)14NHibernate.IMultiCriteria.Add<T>(ICriteria)
Add<T>(String,ICriteria)14NHibernate.IMultiCriteria.Add<T>(String,ICriteria)
Add<T>(DetachedCriteria)14NHibernate.IMultiCriteria.Add<T>(DetachedCriteria)
Add<T>(String,DetachedCriteria)14NHibernate.IMultiCriteria.Add<T>(String,DetachedCriteria)
Add(ICriteria)14NHibernate.IMultiCriteria.Add(ICriteria)
Add(String,ICriteria)14NHibernate.IMultiCriteria.Add(String,ICriteria)
Add(DetachedCriteria)14NHibernate.IMultiCriteria.Add(DetachedCriteria)
Add(String,DetachedCriteria)14NHibernate.IMultiCriteria.Add(String,DetachedCriteria)
Add(Type,IQueryOver)14NHibernate.IMultiCriteria.Add(Type,IQueryOver)
Add<T>(IQueryOver<T>)14NHibernate.IMultiCriteria.Add<T>(IQueryOver<T>)
Add<U>(IQueryOver)14NHibernate.IMultiCriteria.Add<U>(IQueryOver)
Add<T>(String,IQueryOver<T>)14NHibernate.IMultiCriteria.Add<T>(String,IQueryOver<T>)
Add<U>(String,IQueryOver)14NHibernate.IMultiCriteria.Add<U>(String,IQueryOver)
Add(Type,ICriteria)14NHibernate.Impl.MultiCriteriaImpl.Add(Type,ICriteria)
Add(ICriteria)14NHibernate.Impl.MultiCriteriaImpl.Add(ICriteria)
Add(String,ICriteria)14NHibernate.Impl.MultiCriteriaImpl.Add(String,ICriteria)
Add(DetachedCriteria)14NHibernate.Impl.MultiCriteriaImpl.Add(DetachedCriteria)
Add(String,DetachedCriteria)14NHibernate.Impl.MultiCriteriaImpl.Add(String,DetachedCriteria)
Add<T>(ICriteria)14NHibernate.Impl.MultiCriteriaImpl.Add<T>(ICriteria)
Add<T>(String,ICriteria)14NHibernate.Impl.MultiCriteriaImpl.Add<T>(String,ICriteria)
Add<T>(DetachedCriteria)14NHibernate.Impl.MultiCriteriaImpl.Add<T>(DetachedCriteria)
Add<T>(String,DetachedCriteria)14NHibernate.Impl.MultiCriteriaImpl.Add<T>(String,DetachedCriteria)
Add(Type,IQueryOver)14NHibernate.Impl.MultiCriteriaImpl.Add(Type,IQueryOver)
Add<T>(IQueryOver<T>)14NHibernate.Impl.MultiCriteriaImpl.Add<T>(IQueryOver<T>)
Add<U>(IQueryOver)14NHibernate.Impl.MultiCriteriaImpl.Add<U>(IQueryOver)
Add<T>(String,IQueryOver<T>)14NHibernate.Impl.MultiCriteriaImpl.Add<T>(String,IQueryOver<T>)
Add<U>(String,IQueryOver)14NHibernate.Impl.MultiCriteriaImpl.Add<U>(String,IQueryOver)
BindSimpleValue(HbmProperty,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmProperty,String,Boolean)
BindSimpleValue(HbmElement,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmElement,String,Boolean)
BindSimpleValue(HbmKey,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmKey,String,Boolean)
BindSimpleValue(HbmManyToMany,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmManyToMany,String,Boolean)
BindSimpleValue(HbmCollectionId,String)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmCollectionId,String)
BindSimpleValue(HbmListIndex,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmListIndex,String,Boolean)
BindSimpleValue(HbmIndex,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmIndex,String,Boolean)
BindSimpleValue(HbmMapKey,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmMapKey,String,Boolean)
BindSimpleValue(HbmManyToOne,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmManyToOne,String,Boolean)
BindSimpleValue(HbmIndexManyToMany,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmIndexManyToMany,String,Boolean)
BindSimpleValue(HbmMapKeyManyToMany,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmMapKeyManyToMany,String,Boolean)
BindSimpleValue(HbmKeyProperty,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmKeyProperty,String,Boolean)
BindSimpleValue(HbmKeyManyToOne,String,Boolean)13NHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder.BindSimpleValue (HbmKeyManyToOne,String,Boolean)
List(String,QueryParameters)11NHibernate.Impl.AbstractSessionImpl.List(String,QueryParameters)
List(String,QueryParameters,IList)11NHibernate.Impl.AbstractSessionImpl.List(String,QueryParameters,IList)
List(IQueryExpression,QueryParameters)11NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression ,QueryParameters)
List(IQueryExpression,QueryParameters,IList)11NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression ,QueryParameters,IList)
List<T>(String,QueryParameters)11NHibernate.Impl.AbstractSessionImpl.List<T>(String,QueryParameters)
List<T>(CriteriaImpl)11NHibernate.Impl.AbstractSessionImpl.List<T>(CriteriaImpl)
List(CriteriaImpl,IList)11NHibernate.Impl.AbstractSessionImpl.List(CriteriaImpl,IList)
List(CriteriaImpl)11NHibernate.Impl.AbstractSessionImpl.List(CriteriaImpl)
List(NativeSQLQuerySpecification,QueryParameters)11NHibernate.Impl.AbstractSessionImpl.List(NativeSQLQuerySpecification ,QueryParameters)
List(NativeSQLQuerySpecification,QueryParameters,IList)11NHibernate.Impl.AbstractSessionImpl.List(NativeSQLQuerySpecification ,QueryParameters,IList)
List<T>(NativeSQLQuerySpecification,QueryParameters)11NHibernate.Impl.AbstractSessionImpl.List<T> (NativeSQLQuerySpecification,QueryParameters)

Statistics

Stat   # Overloads
Sum:2 474
Average:11.56
Minimum:7
Maximum:16
Standard deviation:3.15
Variance:9.89
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. 
// For example, the System.Windows.Forms.DataGridView 
// standard class has more than 1000 methods.

137 types matched

typesInstanceMethodsStaticMethodsFull Name
AbstractEntityPersister311 methods0 methodNHibernate.Persister.Entity.AbstractEntityPersister
SessionImpl183 methods0 methodNHibernate.Impl.SessionImpl
Dialect144 methods4 methodsNHibernate.Dialect.Dialect
AbstractCollectionPersister144 methods2 methodsNHibernate.Persister.Collection.AbstractCollectionPersister
PersistentClass145 methods0 methodNHibernate.Mapping.PersistentClass
HqlSqlWalker134 methods10 methodsNHibernate.Hql.Ast.ANTLR.HqlSqlWalker
Collection122 methods0 methodNHibernate.Mapping.Collection
Configuration115 methods5 methodsNHibernate.Cfg.Configuration
QueryOver<TRoot,TSubType>114 methods0 methodNHibernate.Criterion.QueryOver<TRoot,TSubType>
AbstractQueryImpl109 methods1 methodNHibernate.Impl.AbstractQueryImpl
HqlLexer105 methods0 methodNHibernate.Hql.Ast.ANTLR.HqlLexer
QueryTranslator100 methods4 methodsNHibernate.Hql.Classic.QueryTranslator
HqlParser96 methods0 methodNHibernate.Hql.Ast.ANTLR.HqlParser
StatelessSessionImpl92 methods0 methodNHibernate.Impl.StatelessSessionImpl
Settings90 methods0 methodNHibernate.Cfg.Settings
IEntityPersister89 methods0 methodNHibernate.Persister.Entity.IEntityPersister
AbstractSessionImpl86 methods0 methodNHibernate.Impl.AbstractSessionImpl
ISession84 methods0 methodNHibernate.ISession
SqlGenerator82 methods1 methodNHibernate.Hql.Ast.ANTLR.SqlGenerator
StatefulPersistenceContext83 methods0 methodNHibernate.Engine.StatefulPersistenceContext
FromElement80 methods0 methodNHibernate.Hql.Ast.ANTLR.Tree.FromElement
TypeFactory1 method77 methodsNHibernate.Type.TypeFactory
HqlTreeBuilder78 methods0 methodNHibernate.Hql.Ast.HqlTreeBuilder
Loader64 methods12 methodsNHibernate.Loader.Loader
EventListeners75 methods0 methodNHibernate.Event.EventListeners
IQuery73 methods0 methodNHibernate.IQuery
Restrictions0 method72 methodsNHibernate.Criterion.Restrictions
IPersistenceContext72 methods0 methodNHibernate.Engine.IPersistenceContext
Table69 methods2 methodsNHibernate.Mapping.Table
StatisticsImpl70 methods1 methodNHibernate.Stat.StatisticsImpl
AbstractPersistentCollection69 methods2 methodsNHibernate.Collection.AbstractPersistentCollection
MultiQueryImpl67 methods1 methodNHibernate.Impl.MultiQueryImpl
SessionFactoryImpl68 methods0 methodNHibernate.Impl.SessionFactoryImpl
ISessionImplementor67 methods0 methodNHibernate.Engine.ISessionImplementor
AbstractDetachedQuery65 methods0 methodNHibernate.Impl.AbstractDetachedQuery
EntityMetamodel64 methods1 methodNHibernate.Tuple.Entity.EntityMetamodel
SybaseSQLAnywhere10Dialect62 methods1 methodNHibernate.Dialect.SybaseSQLAnywhere10Dialect
Subclass62 methods0 methodNHibernate.Mapping.Subclass
CriteriaImpl62 methods0 methodNHibernate.Impl.CriteriaImpl
CollectionType61 methods0 methodNHibernate.Type.CollectionType
Mappings57 methods2 methodsNHibernate.Cfg.Mappings
JoinWalker55 methods3 methodsNHibernate.Loader.JoinWalker
IDetachedQuery57 methods0 methodNHibernate.IDetachedQuery
QueryParameters55 methods2 methodsNHibernate.Engine.QueryParameters
IQueryOver<TRoot,TSubType>54 methods0 methodNHibernate.IQueryOver<TRoot,TSubType>
StringHelper0 method54 methodsNHibernate.Util.StringHelper
ICollectionPersister53 methods0 methodNHibernate.Persister.Collection.ICollectionPersister
AnyType51 methods1 methodNHibernate.Type.AnyType
RootClass52 methods0 methodNHibernate.Mapping.RootClass
Property51 methods1 methodNHibernate.Criterion.Property
Column51 methods0 methodNHibernate.Mapping.Column
ASTNode51 methods0 methodNHibernate.Hql.Ast.ANTLR.Tree.ASTNode
SingleTableEntityPersister50 methods0 methodNHibernate.Persister.Entity.SingleTableEntityPersister
Subqueries0 method50 methodsNHibernate.Criterion.Subqueries
ComponentType49 methods0 methodNHibernate.Type.ComponentType
CriteriaQueryTranslator48 methods1 methodNHibernate.Loader.Criteria.CriteriaQueryTranslator
Property48 methods0 methodNHibernate.Mapping.Property
EntityType46 methods1 methodNHibernate.Type.EntityType
Oracle8iDialect47 methods0 methodNHibernate.Dialect.Oracle8iDialect
Projections0 method46 methodsNHibernate.Criterion.Projections
IPersistentCollection46 methods0 methodNHibernate.Collection.IPersistentCollection
CollectionBinder40 methods6 methodsNHibernate.Cfg.XmlHbmBinding.CollectionBinder
PathExpressionParser44 methods0 methodNHibernate.Hql.Classic.PathExpressionParser
IMultiQuery43 methods0 methodNHibernate.IMultiQuery
SimpleValue43 methods0 methodNHibernate.Mapping.SimpleValue
CriteriaImpl+Subcriteria43 methods0 methodNHibernate.Impl.CriteriaImpl+Subcriteria
IStatistics43 methods0 methodNHibernate.Stat.IStatistics
PersistentSet43 methods0 methodNHibernate.Collection.PersistentSet
AbstractType40 methods1 methodNHibernate.Type.AbstractType
MsSql2000Dialect40 methods1 methodNHibernate.Dialect.MsSql2000Dialect
PersistentIdentifierBag40 methods0 methodNHibernate.Collection.PersistentIdentifierBag
JoinedSubclassEntityPersister35 methods4 methodsNHibernate.Persister.Entity.JoinedSubclassEntityPersister
QueryOver<TRoot>39 methods0 methodNHibernate.Criterion.QueryOver<TRoot>
PersistentBag38 methods1 methodNHibernate.Collection.PersistentBag
AbstractBatcher37 methods2 methodsNHibernate.AdoNet.AbstractBatcher
Component38 methods0 methodNHibernate.Mapping.Component
NHybridDataReader38 methods0 methodNHibernate.Driver.NHybridDataReader
InformixDialect37 methods1 methodNHibernate.Dialect.InformixDialect
PersistentList38 methods0 methodNHibernate.Collection.PersistentList
PersistentMap38 methods0 methodNHibernate.Collection.PersistentMap
ActionQueue37 methods1 methodNHibernate.Engine.ActionQueue
ResultSetWrapper38 methods0 methodNHibernate.AdoNet.ResultSetWrapper
ICriteria36 methods0 methodNHibernate.ICriteria
NDataReader36 methods0 methodNHibernate.Driver.NDataReader
ExpressionProcessor0 method36 methodsNHibernate.Impl.ExpressionProcessor
AbstractEntityTuplizer36 methods0 methodNHibernate.Tuple.Entity.AbstractEntityTuplizer
IType35 methods0 methodNHibernate.Type.IType
UnionSubclassEntityPersister35 methods0 methodNHibernate.Persister.Entity.UnionSubclassEntityPersister
DetachedCriteria29 methods6 methodsNHibernate.Criterion.DetachedCriteria
ReflectHelper0 method34 methodsNHibernate.Util.ReflectHelper
CompositeCustomType34 methods0 methodNHibernate.Type.CompositeCustomType
MultiCriteriaImpl34 methods0 methodNHibernate.Impl.MultiCriteriaImpl
LinkedHashMap<TKey,TValue>31 methods2 methodsNHibernate.Util.LinkedHashMap<TKey,TValue>
ArrayHelper0 method33 methodsNHibernate.Util.ArrayHelper
DotNode30 methods3 methodsNHibernate.Hql.Ast.ANTLR.Tree.DotNode
CustomType32 methods0 methodNHibernate.Type.CustomType
SqlString28 methods4 methodsNHibernate.SqlCommand.SqlString
FromElementType29 methods3 methodsNHibernate.Hql.Ast.ANTLR.Tree.FromElementType
CollectionEntry32 methods0 methodNHibernate.Engine.CollectionEntry
Join31 methods0 methodNHibernate.Mapping.Join

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. 
// For example, the System.Windows.Forms.Control 
// standard class has more than 200 fields.

33 types matched

typesInstanceFieldsStaticFieldsSize of instanceFull Name
HqlParser3 fields467 fields13NHibernate.Hql.Ast.ANTLR.HqlParser
HqlSqlWalker29 fields428 fields108NHibernate.Hql.Ast.ANTLR.HqlSqlWalker
SqlGenerator8 fields422 fields36NHibernate.Hql.Ast.ANTLR.SqlGenerator
HqlLexer1 field144 fields8NHibernate.Hql.Ast.ANTLR.HqlLexer
AbstractEntityPersister85 fields3 fields331NHibernate.Persister.Entity.AbstractEntityPersister
AbstractCollectionPersister87 fields1 field291NHibernate.Persister.Collection.AbstractCollectionPersister
Environment0 field55 fieldsN/ANHibernate.Cfg.Environment
EntityMetamodel50 fields2 fields140NHibernate.Tuple.Entity.EntityMetamodel
Collection48 fields3 fields150NHibernate.Mapping.Collection
StatisticsImpl37 fields13 fields261NHibernate.Stat.StatisticsImpl
QueryTranslator45 fields4 fields188NHibernate.Hql.Classic.QueryTranslator
Settings45 fields0 field108NHibernate.Cfg.Settings
NHibernateUtil0 field44 fieldsN/ANHibernate.NHibernateUtil
PersistentClass38 fields3 fields130NHibernate.Mapping.PersistentClass
HbmConstants0 field40 fields0NHibernate.Cfg.HbmConstants
EventListeners36 fields1 field144NHibernate.Event.EventListeners
SingleTableEntityPersister34 fields2 fields458NHibernate.Persister.Entity.SingleTableEntityPersister
Configuration32 fields3 fields125NHibernate.Cfg.Configuration
SessionFactoryImpl30 fields2 fields114NHibernate.Impl.SessionFactoryImpl
QueryParameters29 fields3 fields100NHibernate.Engine.QueryParameters
TypeFactory0 field30 fields0NHibernate.Type.TypeFactory
Mappings28 fields1 field106NHibernate.Cfg.Mappings
SqlTypeFactory0 field26 fieldsN/ANHibernate.SqlTypes.SqlTypeFactory
CriteriaImpl25 fields0 field101NHibernate.Impl.CriteriaImpl
AbstractQueryImpl22 fields2 fields81NHibernate.Impl.AbstractQueryImpl
JoinedSubclassEntityPersister24 fields0 field427NHibernate.Persister.Entity.JoinedSubclassEntityPersister
FromElement23 fields1 field102NHibernate.Hql.Ast.ANTLR.Tree.FromElement
StatefulPersistenceContext19 fields4 fields70NHibernate.Engine.StatefulPersistenceContext
SessionImpl19 fields3 fields100NHibernate.Impl.SessionImpl
PathExpressionParser20 fields2 fields68NHibernate.Hql.Classic.PathExpressionParser
Log4NetLogger1 field20 fields4NHibernate.Log4NetLogger
CriteriaQueryTranslator18 fields3 fields72NHibernate.Loader.Criteria.CriteriaQueryTranslator
QueryLoader21 fields0 field101NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader

Statistics

Stat   InstanceFields   StaticFields   Size of instance
Sum:003 937
Average:00131.23
Minimum:000
Maximum:00458
Standard deviation:00113.97
Variance:0012 989
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.ndepend.com/Metrics.aspx#LCOM

53 types matched

typesLack of Cohesion Of Methods (LCOM)LCOM Henderson-Sellers (LCOMHS)# Methods# FieldsFull Name
AbstractEntityPersister0.990.9931388NHibernate.Persister.Entity.AbstractEntityPersister
HqlLexer0.980.99109145NHibernate.Hql.Ast.ANTLR.HqlLexer
Collection0.980.9912451NHibernate.Mapping.Collection
Dialect0.980.9815012NHibernate.Dialect.Dialect
AbstractCollectionPersister0.980.9814888NHibernate.Persister.Collection.AbstractCollectionPersister
PersistentClass0.970.9814741NHibernate.Mapping.PersistentClass
EntityMetamodel0.970.986752NHibernate.Tuple.Entity.EntityMetamodel
QueryTranslator0.970.9810749NHibernate.Hql.Classic.QueryTranslator
HqlSqlWalker0.960.97148457NHibernate.Hql.Ast.ANTLR.HqlSqlWalker
SqlGenerator0.960.9787430NHibernate.Hql.Ast.ANTLR.SqlGenerator
AbstractQueryImpl0.960.9711224NHibernate.Impl.AbstractQueryImpl
SessionImpl0.960.9618722NHibernate.Impl.SessionImpl
RootClass0.960.975420NHibernate.Mapping.RootClass
Configuration0.960.9612435NHibernate.Cfg.Configuration
FromElement0.950.978224NHibernate.Hql.Ast.ANTLR.Tree.FromElement
SingleTableEntityPersister0.950.975236NHibernate.Persister.Entity.SingleTableEntityPersister
JoinWalker0.950.975915NHibernate.Loader.JoinWalker
Mappings0.950.976129NHibernate.Cfg.Mappings
SessionFactoryImpl0.950.967032NHibernate.Impl.SessionFactoryImpl
EventListeners0.950.967737NHibernate.Event.EventListeners
CriteriaImpl0.950.966625NHibernate.Impl.CriteriaImpl
Table0.950.967320NHibernate.Mapping.Table
JoinedSubclassEntityPersister0.940.974024NHibernate.Persister.Entity.JoinedSubclassEntityPersister
QueryParameters0.940.966732NHibernate.Engine.QueryParameters
StatisticsImpl0.930.957450NHibernate.Stat.StatisticsImpl
Join0.930.963318NHibernate.Mapping.Join
Property0.930.955016NHibernate.Mapping.Property
MultiQueryImpl0.930.947019NHibernate.Impl.MultiQueryImpl
AbstractDetachedQuery0.930.946617NHibernate.Impl.AbstractDetachedQuery
Component0.920.954213NHibernate.Mapping.Component
StatefulPersistenceContext0.920.938623NHibernate.Engine.StatefulPersistenceContext
CriteriaQueryTranslator0.910.935221NHibernate.Loader.Criteria.CriteriaQueryTranslator
Column0.910.935318NHibernate.Mapping.Column
SimpleValue0.910.934511NHibernate.Mapping.SimpleValue
QueryLoader0.90.942621NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader
AbstractPersistentCollection0.90.927412NHibernate.Collection.AbstractPersistentCollection
AbstractBatcher0.90.924115NHibernate.AdoNet.AbstractBatcher
PathExpressionParser0.890.914522NHibernate.Hql.Classic.PathExpressionParser
NhLinqExpression0.880.951611NHibernate.Linq.NhLinqExpression
SqlSelectBuilder0.880.931811NHibernate.SqlCommand.SqlSelectBuilder
AbstractEntityTuplizer0.880.913811NHibernate.Tuple.Entity.AbstractEntityTuplizer
MultiCriteriaImpl0.880.93618NHibernate.Impl.MultiCriteriaImpl
FromClause0.880.93311NHibernate.Hql.Ast.ANTLR.Tree.FromClause
QueryTranslatorImpl0.870.93113NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl
DotNode0.870.93518NHibernate.Hql.Ast.ANTLR.Tree.DotNode
CollectionEntry0.870.893713NHibernate.Engine.CollectionEntry
CustomLoader0.860.911813NHibernate.Loader.Custom.CustomLoader
OuterJoinLoader0.860.921411NHibernate.Loader.OuterJoinLoader
EntityEntry0.850.892613NHibernate.Engine.EntityEntry
SqlClientSqlCommandSet0.830.911211NHibernate.AdoNet.SqlClientSqlCommandSet
IntermediateHqlTree0.830.882313NHibernate.Linq.IntermediateHqlTree
SQLQueryReturnProcessor0.830.881813NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor
WhereParser0.810.851918NHibernate.Hql.Classic.WhereParser

Statistics

Stat   Lack of Cohesion Of Methods (LCOM)   LCOM Henderson-Sellers (LCOMHS)   # Methods   # Fields
Sum:48.7349.943 6552 262
Average:0.920.9468.9642.68
Minimum:0.810.851211
Maximum:0.990.99313457
Standard deviation:0.0460.03353.0382.78
Variance:0.00210.00112 8116 853

2100
Code Quality Regression  

warningCritical    Rule warning: From now, all methods added or refactored should respect basic quality principles
// <Name>From now, all methods added or refactored should respect basic quality principles</Name>
warnif count > 0 from m in JustMyCode.Methods where

// *** Only new or modified methods since Baseline for Comparison ***
 (m.WasAdded() || m.CodeWasChanged()) &&
 
// Low Quality methods// Metrics' definitions
(  m.NbLinesOfCode > 30 ||          // http://www.ndepend.com/Metrics.aspx#NbLinesOfCode
   m.NbILInstructions > 200 ||      // http://www.ndepend.com/Metrics.aspx#NbILInstructions
   m.CyclomaticComplexity > 20 ||   // http://www.ndepend.com/Metrics.aspx#CC
   m.ILCyclomaticComplexity > 50 || // http://www.ndepend.com/Metrics.aspx#ILCC
   m.ILNestingDepth > 4 ||          // http://www.ndepend.com/Metrics.aspx#ILNestingDepth
   m.NbParameters > 5 ||            // http://www.ndepend.com/Metrics.aspx#NbParameters
   m.NbVariables > 8 ||             // http://www.ndepend.com/Metrics.aspx#NbVariables
   m.NbOverloads > 6 )
select new { m, m.NbLinesOfCode, m.NbILInstructions, m.CyclomaticComplexity, 
             
m.ILCyclomaticComplexity, m.ILNestingDepth, 
             
m.NbParameters, m.NbVariables, m.NbOverloads }  // http://www.ndepend.com/Metrics.aspx#NbOverloads


// This rule warns if a method with
// low-quality has been added or refactored.
// With NDepend and such rule, you can
// Ensure Quality From Now! as explained here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/01/ensure-the-quality-of-the-code-that-will-be-developed-this-year.aspx

293 methods matched

methods# lines of code (LOC)# IL instructionsCyclomatic Complexity (CC)IL Cyclomatic Complexity (ILCC)IL Nesting Depth# Parameters# Variables# OverloadsFull Name
.cctor()53139352031NHibernate.NHibernateUtil..cctor()
JoinQueryOver<U>(Expression<Func<TSubType,U>>)N/AN/AN/AN/AN/A1N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>)
JoinQueryOver<U>(Expression<Func<U>>)N/AN/AN/AN/AN/A1N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,Expression<Func<U>>)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<U>>,Expression<Func<U>>)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,JoinType)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,JoinType)
JoinQueryOver<U>(Expression<Func<U>>,JoinType)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,U>>,Expression<Func<U>> ,JoinType)N/AN/AN/AN/AN/A3N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,U>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<U>>,Expression<Func<U>>,JoinType)N/AN/AN/AN/AN/A3N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <U>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>)N/AN/AN/AN/AN/A1N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>)N/AN/AN/AN/AN/A1N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,Expression <Func<U>>)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,Expression<Func<U>>)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,Expression<Func<U>>)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,JoinType)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,JoinType)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,JoinType)N/AN/AN/AN/AN/A2N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,JoinType)
JoinQueryOver<U>(Expression<Func<TSubType,IEnumerable<U>>>,Expression <Func<U>>,JoinType)N/AN/AN/AN/AN/A3N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <TSubType,IEnumerable<U>>>,Expression<Func<U>>,JoinType)
JoinQueryOver<U>(Expression<Func<IEnumerable<U>>>,Expression<Func<U>> ,JoinType)N/AN/AN/AN/AN/A3N/A16NHibernate.IQueryOver<TRoot,TSubType>.JoinQueryOver<U>(Expression<Func <IEnumerable<U>>>,Expression<Func<U>>,JoinType)
Add(Type,IQueryOver)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add(Type,IQueryOver)
Add<T>(IQueryOver<T>)N/AN/AN/AN/AN/A1N/A14NHibernate.IMultiCriteria.Add<T>(IQueryOver<T>)
Add<U>(IQueryOver)N/AN/AN/AN/AN/A1N/A14NHibernate.IMultiCriteria.Add<U>(IQueryOver)
Add<T>(String,IQueryOver<T>)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add<T>(String,IQueryOver<T>)
Add<U>(String,IQueryOver)N/AN/AN/AN/AN/A2N/A14NHibernate.IMultiCriteria.Add<U>(String,IQueryOver)
TypeFromAssembly(AssemblyQualifiedTypeName,Boolean)24130996242NHibernate.Util.ReflectHelper.TypeFromAssembly (AssemblyQualifiedTypeName,Boolean)
Replace(Object,Object,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection)751341632NHibernate.Type.ComponentType.Replace(Object,Object ,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
Replace(Object[],Object[],IType[],ISessionImplementor,Object ,IDictionary)644231622NHibernate.Type.TypeHelper.Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary)
Replace(Object[],Object[],IType[],ISessionImplementor,Object ,IDictionary,ForeignKeyDirection)871472722NHibernate.Type.TypeHelper.Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
ReplaceAssociations(Object[],Object[],IType[],ISessionImplementor ,Object,IDictionary,ForeignKeyDirection)1917810163771NHibernate.Type.TypeHelper.ReplaceAssociations(Object[],Object[] ,IType[],ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
FindDirty(StandardProperty[],Object[],Object[],Boolean[][],Boolean ,ISessionImplementor)16105693661NHibernate.Type.TypeHelper.FindDirty(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean,ISessionImplementor)
FindModified(StandardProperty[],Object[],Object[],Boolean[][],Boolean ,ISessionImplementor)16105693661NHibernate.Type.TypeHelper.FindModified(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean,ISessionImplementor)
RegisterDefaultNetTypes()25404171001NHibernate.Type.TypeFactory.RegisterDefaultNetTypes()
HeuristicType(String,IDictionary<String,String>)3025915184252NHibernate.Type.TypeFactory.HeuristicType(String,IDictionary<String ,String>)
SqlCreateString(Dialect,IMapping,String,String)5542223423471NHibernate.Mapping.Table.SqlCreateString(Dialect,IMapping,String ,String)
Convert(ISQLExceptionConverter,Exception,String,SqlString,Object[] ,IDictionary<String,TypedValue>)429231614NHibernate.Exceptions.ADOExceptionHelper.Convert (ISQLExceptionConverter,Exception,String,SqlString,Object[] ,IDictionary<String,TypedValue>)
InjectFieldInterceptor(Object,String,Type,ISet<String>,ISet<String> ,ISessionImplementor)630231621NHibernate.Intercept.FieldInterceptionHelper.InjectFieldInterceptor (Object,String,Type,ISet<String>,ISet<String>,ISessionImplementor)
Execute()40302172230121NHibernate.Action.EntityUpdateAction.Execute()
.ctor(CriteriaImpl,ICriteria,String,String,JoinType,ICriterion)1149221603NHibernate.Impl.CriteriaImpl+Subcriteria..ctor(CriteriaImpl,ICriteria ,String,String,JoinType,ICriterion)
ListUsingQueryCache()231593410121NHibernate.Impl.MultiCriteriaImpl.ListUsingQueryCache()
GetResultsFromDatabase(IList)53385162831191NHibernate.Impl.MultiCriteriaImpl.GetResultsFromDatabase(IList)
Add(Type,IQueryOver)1101102014NHibernate.Impl.MultiCriteriaImpl.Add(Type,IQueryOver)
Add<T>(IQueryOver<T>)191101014NHibernate.Impl.MultiCriteriaImpl.Add<T>(IQueryOver<T>)
Add<U>(IQueryOver)191101014NHibernate.Impl.MultiCriteriaImpl.Add<U>(IQueryOver)
Add<T>(String,IQueryOver<T>)1101102014NHibernate.Impl.MultiCriteriaImpl.Add<T>(String,IQueryOver<T>)
Add<U>(String,IQueryOver)1101102014NHibernate.Impl.MultiCriteriaImpl.Add<U>(String,IQueryOver)
List(IQueryExpression,QueryParameters)N/AN/AN/AN/AN/A2N/A11NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression ,QueryParameters)
List(IQueryExpression,QueryParameters,IList)N/AN/AN/AN/AN/A3N/A11NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression ,QueryParameters,IList)
.ctor(IDbConnection,SessionFactoryImpl,Boolean,Int64,IInterceptor ,EntityMode,Boolean,Boolean,ConnectionReleaseMode)24143462903NHibernate.Impl.SessionImpl..ctor(IDbConnection,SessionFactoryImpl ,Boolean,Int64,IInterceptor,EntityMode,Boolean,Boolean ,ConnectionReleaseMode)
List(String,QueryParameters,IList)15813523311NHibernate.Impl.SessionImpl.List(String,QueryParameters,IList)
List(IQueryExpression,QueryParameters)3301102111NHibernate.Impl.SessionImpl.List(IQueryExpression,QueryParameters)
List(IQueryExpression,QueryParameters,IList)15813523311NHibernate.Impl.SessionImpl.List(IQueryExpression,QueryParameters ,IList)
Add<T>(String,IQuery)320110209NHibernate.Impl.MultiQueryImpl.Add<T>(String,IQuery)
DoList()72503223230221NHibernate.Impl.MultiQueryImpl.DoList()
ListUsingQueryCache()271744610131NHibernate.Impl.MultiQueryImpl.ListUsingQueryCache()
.ctor(Configuration,IMapping,Settings,EventListeners)135820345544211NHibernate.Impl.SessionFactoryImpl..ctor(Configuration,IMapping ,Settings,EventListeners)
GetImplementors(String)35243162451101NHibernate.Impl.SessionFactoryImpl.GetImplementors(String)
CheckNamedQueries()3420491230101NHibernate.Impl.SessionFactoryImpl.CheckNamedQueries()
BuildCurrentSessionContext()1390896031NHibernate.Impl.SessionFactoryImpl.BuildCurrentSessionContext()
List(String,QueryParameters,IList)13683523311NHibernate.Impl.StatelessSessionImpl.List(String,QueryParameters,IList )
List(IQueryExpression,QueryParameters)131102011NHibernate.Impl.StatelessSessionImpl.List(IQueryExpression ,QueryParameters)
List(IQueryExpression,QueryParameters,IList)131103011NHibernate.Impl.StatelessSessionImpl.List(IQueryExpression ,QueryParameters,IList)
ExpandParameters(IDictionary<String,TypedValue>)3019771431131NHibernate.Impl.ExpressionQueryImpl.ExpandParameters(IDictionary <String,TypedValue>)
Expand()20103382092NHibernate.Impl.ParameterExpander.Expand()
.cctor()46559110001NHibernate.Impl.ExpressionProcessor..cctor()
ToSqlString()4233214232061NHibernate.SqlCommand.SqlInsertBuilder.ToSqlString()
AddJoin(String,String,String[],String[],JoinType,SqlString)N/AN/AN/AN/AN/A6N/A2NHibernate.SqlCommand.JoinFragment.AddJoin(String,String,String[] ,String[],JoinType,SqlString)
AddJoin(String,String,String[],String[],JoinType,SqlString)181288102622NHibernate.SqlCommand.ANSIJoinFragment.AddJoin(String,String,String[] ,String[],JoinType,SqlString)
ToSqlString()5238617262081NHibernate.SqlCommand.SqlUpdateBuilder.ToSqlString()
RenderWhereStringTemplate(String,String,Dialect,SQLFunctionRegistry)63369324244172NHibernate.SqlCommand.Template.RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry)
IsFunctionOrKeyword(String,String,Dialect,SQLFunctionRegistry)132635401NHibernate.SqlCommand.Template.IsFunctionOrKeyword(String,String ,Dialect,SQLFunctionRegistry)
AddJoin(String,String,String[],String[],JoinType,SqlString)214110602NHibernate.SqlCommand.InformixJoinFragment.AddJoin(String,String ,String[],String[],JoinType,SqlString)
ToSqlString()3333919233041NHibernate.SqlCommand.SqlSelectBuilder.ToSqlString()
AddJoin(String,String,String,String[],String[],JoinType,SqlString)750351713NHibernate.SqlCommand.QueryJoinFragment.AddJoin(String,String,String ,String[],String[],JoinType,SqlString)
AddJoin(String,String,String[],String[],JoinType,SqlString)112110603NHibernate.SqlCommand.QueryJoinFragment.AddJoin(String,String,String[] ,String[],JoinType,SqlString)
ToSqlString()212249122031NHibernate.SqlCommand.SqlDeleteBuilder.ToSqlString()
AddJoin(String,String,String[],String[],JoinType,SqlString)644341602NHibernate.SqlCommand.OracleJoinFragment.AddJoin(String,String ,String[],String[],JoinType,SqlString)
LogSummary()29233110001NHibernate.Stat.StatisticsImpl.LogSummary()
.ctor(PersistentClass,ISessionFactoryImplementor)131842406442141NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass ,ISessionFactoryImplementor)
.ctor(EntityMetamodel,PersistentClass)311979162241NHibernate.Tuple.Entity.AbstractEntityTuplizer..ctor(EntityMetamodel ,PersistentClass)
BuildProxyFactory(PersistentClass,IGetter,ISetter)34223192833141NHibernate.Tuple.Entity.PocoEntityTuplizer.BuildProxyFactory (PersistentClass,IGetter,ISetter)
.ctor()46279110001NHibernate.Dialect.Dialect..ctor()
ExtractColumnOrAliasNames(SqlString,List<SqlString>&,Dictionary <SqlString,SqlString>&)3320618205391NHibernate.Dialect.Dialect.ExtractColumnOrAliasNames(SqlString,List <SqlString>&,Dictionary<SqlString,SqlString>&)
MoveNext()8668431615001NHibernate.Dialect .Dialect+QuotedAndParenthesisStringTokenizer+GetEnumerator>d__0 .MoveNext()
.ctor()34190110001NHibernate.Dialect.PostgreSQLDialect..ctor()
.ctor()44239110001NHibernate.Dialect.MySQLDialect..ctor()
.ctor()40223110001NHibernate.Dialect.SybaseASA9Dialect..ctor()
.ctor()85525110001NHibernate.Dialect.MsSql2000Dialect..ctor()
GetLimitString(SqlString,Int32,Int32,Nullable<Int32>,Nullable<Int32>)1816871325101NHibernate.Dialect.MsSql2005Dialect.GetLimitString(SqlString,Int32 ,Int32,Nullable<Int32>,Nullable<Int32>)
.ctor()31170110001NHibernate.Dialect.SQLiteDialect..ctor()
RegisterDateFunctions()31215110001NHibernate.Dialect.SybaseSQLAnywhere10Dialect.RegisterDateFunctions()
RegisterStringFunctions()49378110001NHibernate.Dialect.SybaseSQLAnywhere10Dialect.RegisterStringFunctions( )
RegisterMiscellaneousFunctions()37282110001NHibernate.Dialect.SybaseSQLAnywhere10Dialect .RegisterMiscellaneousFunctions()
DoQuery(ISessionImplementor,QueryParameters,Boolean)35218121823151NHibernate.Loader.Loader.DoQuery(ISessionImplementor,QueryParameters ,Boolean)
ReadCollectionElement(Object,Object,ICollectionPersister ,ICollectionAliases,IDataReader,ISessionImplementor)16121883641NHibernate.Loader.Loader.ReadCollectionElement(Object,Object ,ICollectionPersister,ICollectionAliases,IDataReader ,ISessionImplementor)
GetRow(IDataReader,ILoadable[],EntityKey[],Object,EntityKey,LockMode[] ,IList,ISessionImplementor)17121582861NHibernate.Loader.Loader.GetRow(IDataReader,ILoadable[],EntityKey[] ,Object,EntityKey,LockMode[],IList,ISessionImplementor)
LoadFromResultSet(IDataReader,Int32,Object,String,EntityKey,String ,LockMode,ILoadable,ISessionImplementor)1815271029111NHibernate.Loader.Loader.LoadFromResultSet(IDataReader,Int32,Object ,String,EntityKey,String,LockMode,ILoadable,ISessionImplementor)
PrepareQueryCommand(QueryParameters,Boolean,ISessionImplementor)34226161923111NHibernate.Loader.Loader.PrepareQueryCommand(QueryParameters,Boolean ,ISessionImplementor)
LoadEntity(ISessionImplementor,Object,IType,Object,String,Object ,IEntityPersister)1191431742NHibernate.Loader.Loader.LoadEntity(ISessionImplementor,Object,IType ,Object,String,Object,IEntityPersister)
LoadEntity(ISessionImplementor,Object,Object,IType,IType ,IEntityPersister)659221622NHibernate.Loader.Loader.LoadEntity(ISessionImplementor,Object,Object ,IType,IType,IEntityPersister)
LoadEntityBatch(ISessionImplementor,Object[],IType,Object,String ,Object,IEntityPersister)1173431731NHibernate.Loader.Loader.LoadEntityBatch(ISessionImplementor,Object[] ,IType,Object,String,Object,IEntityPersister)
AddAssociationToJoinTree(IAssociationType,String[],String,String,Int32 ,JoinType)1386452661NHibernate.Loader.JoinWalker.AddAssociationToJoinTree(IAssociationType ,String[],String,String,Int32,JoinType)
.ctor(IAssociationType,String,String[],String,JoinType,SqlString ,ISessionFactoryImplementor,IDictionary<String,IFilter>)1259221801NHibernate.Loader.OuterJoinableAssociation..ctor(IAssociationType ,String,String[],String,JoinType,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)

Statistics

Stat   # lines of code (LOC)   # IL instructions   Cyclomatic Complexity (CC)   IL Cyclomatic Complexity (ILCC)   IL Nesting Depth   # Parameters   # Variables   # Overloads
Sum:6 42248 7721 9332 6324439051 2401 596
Average:24.05182.677.249.861.663.094.645.45
Minimum:13110001
Maximum:4014 89264649224616
Standard deviation:37.41397.968.9111.571.82.596.356.03
Variance:1 399158 37479.37133.983.256.7140.3636.3
warningCritical    Rule warning: From now, all types added or refactored should respect basic quality principles
// <Name>From now, all types added or refactored should respect basic quality principles</Name>
warnif count > 0 from t in JustMyCode.Types where

// *** Only match new or modified types since Baseline for Comparison ***
(t.WasAdded() || t.CodeWasChanged()) &&

// Eliminate interfaces, enumerations or types only with constant fields
// by making sure we are matching type with code.
t.NbLinesOfCode > 10 &&

// Low Quality types     Metrics' definitions are available here:
//     http://www.ndepend.com/Metrics.aspx#MetricsOnTypes
(  // Types with too many methods
   t.NbMethods > 20 ||

   
// Types with too many fields
   t.NbFields > 20 ||

   
// Complex Types that use more than 50 other types
   t.NbTypesUsed > 50
)
select new { t, t.Methods, t.Fields, t.TypesUsed }


// This rule warns if a type with
// low-quality has been added or refactored.
// With NDepend and such rule, you can
// Ensure Quality From Now! as explained here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/01/ensure-the-quality-of-the-code-that-will-be-developed-this-year.aspx

111 types matched

typesMethodsFieldsTypesUsedFull Name
NHibernateUtil14 methods44 fields74 typesNHibernate.NHibernateUtil
Log4NetLogger23 methods21 fields18 typesNHibernate.Log4NetLogger
StringHelper54 methods10 fields29 typesNHibernate.Util.StringHelper
ArrayHelper33 methods6 fields27 typesNHibernate.Util.ArrayHelper
IdentityMap23 methods2 fields26 typesNHibernate.Util.IdentityMap
ReflectHelper34 methods6 fields53 typesNHibernate.Util.ReflectHelper
NullableType27 methods2 fields33 typesNHibernate.Type.NullableType
ComponentType49 methods9 fields42 typesNHibernate.Type.ComponentType
CustomType32 methods3 fields47 typesNHibernate.Type.CustomType
TypeFactory78 methods30 fields97 typesNHibernate.Type.TypeFactory
CompositeCustomType34 methods2 fields42 typesNHibernate.Type.CompositeCustomType
PersistentClass145 methods41 fields58 typesNHibernate.Mapping.PersistentClass
Property48 methods16 fields30 typesNHibernate.Mapping.Property
Component38 methods13 fields39 typesNHibernate.Mapping.Component
RootClass52 methods20 fields35 typesNHibernate.Mapping.RootClass
Table71 methods20 fields45 typesNHibernate.Mapping.Table
NDataReader36 methods7 fields29 typesNHibernate.Driver.NDataReader
DriverBase26 methods3 fields38 typesNHibernate.Driver.DriverBase
NHybridDataReader38 methods4 fields26 typesNHibernate.Driver.NHybridDataReader
AbstractQueryImpl110 methods24 fields80 typesNHibernate.Impl.AbstractQueryImpl
CriteriaImpl62 methods25 fields59 typesNHibernate.Impl.CriteriaImpl
CriteriaImpl+Subcriteria43 methods7 fields31 typesNHibernate.Impl.CriteriaImpl+Subcriteria
MultiCriteriaImpl34 methods18 fields81 typesNHibernate.Impl.MultiCriteriaImpl
AbstractSessionImpl86 methods6 fields67 typesNHibernate.Impl.AbstractSessionImpl
SessionImpl183 methods22 fields158 typesNHibernate.Impl.SessionImpl
MultiQueryImpl68 methods19 fields87 typesNHibernate.Impl.MultiQueryImpl
SessionFactoryImpl68 methods32 fields124 typesNHibernate.Impl.SessionFactoryImpl
StatelessSessionImpl92 methods4 fields87 typesNHibernate.Impl.StatelessSessionImpl
ExpressionProcessor36 methods4 fields51 typesNHibernate.Impl.ExpressionProcessor
SqlString32 methods3 fields23 typesNHibernate.SqlCommand.SqlString
SqlStringBuilder19 methods2 fields16 typesNHibernate.SqlCommand.SqlStringBuilder
AdoTransaction20 methods10 fields31 typesNHibernate.Transaction.AdoTransaction
StatisticsImpl71 methods50 fields34 typesNHibernate.Stat.StatisticsImpl
SqlTypeFactory15 methods26 fields25 typesNHibernate.SqlTypes.SqlTypeFactory
EntityMetamodel65 methods52 fields59 typesNHibernate.Tuple.Entity.EntityMetamodel
AbstractEntityTuplizer36 methods11 fields46 typesNHibernate.Tuple.Entity.AbstractEntityTuplizer
PocoEntityTuplizer21 methods9 fields56 typesNHibernate.Tuple.Entity.PocoEntityTuplizer
Dialect148 methods12 fields82 typesNHibernate.Dialect.Dialect
Oracle8iDialect47 methods0 field34 typesNHibernate.Dialect.Oracle8iDialect
MySQLDialect21 methods1 field26 typesNHibernate.Dialect.MySQLDialect
MsSql2000Dialect41 methods1 field45 typesNHibernate.Dialect.MsSql2000Dialect
InformixDialect38 methods0 field34 typesNHibernate.Dialect.InformixDialect
SQLiteDialect21 methods0 field20 typesNHibernate.Dialect.SQLiteDialect
SybaseSQLAnywhere10Dialect63 methods0 field27 typesNHibernate.Dialect.SybaseSQLAnywhere10Dialect
AbstractTableMetadata24 methods7 fields23 typesNHibernate.Dialect.Schema.AbstractTableMetadata
Loader76 methods4 fields102 typesNHibernate.Loader.Loader
JoinWalker58 methods15 fields53 typesNHibernate.Loader.JoinWalker
CriteriaQueryTranslator49 methods21 fields75 typesNHibernate.Loader.Criteria.CriteriaQueryTranslator
SQLQueryReturnProcessor16 methods13 fields53 typesNHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor
AbstractEntityPersister311 methods88 fields168 typesNHibernate.Persister.Entity.AbstractEntityPersister
SingleTableEntityPersister50 methods36 fields70 typesNHibernate.Persister.Entity.SingleTableEntityPersister
AbstractCollectionPersister146 methods88 fields115 typesNHibernate.Persister.Collection.AbstractCollectionPersister
QueryOverBuilderExtensions30 methods0 field15 typesNHibernate.Criterion.QueryOverBuilderExtensions
Subqueries50 methods0 field19 typesNHibernate.Criterion.Subqueries
Restrictions72 methods0 field49 typesNHibernate.Criterion.Restrictions
QueryOver<TRoot>39 methods0 field27 typesNHibernate.Criterion.QueryOver<TRoot>
QueryOver<TRoot,TSubType>114 methods0 field46 typesNHibernate.Criterion.QueryOver<TRoot,TSubType>
Projections46 methods0 field35 typesNHibernate.Criterion.Projections
ProjectionList21 methods1 field34 typesNHibernate.Criterion.ProjectionList
DetachedCriteria35 methods2 fields23 typesNHibernate.Criterion.DetachedCriteria
QueryOverProjectionBuilder<T>22 methods2 fields15 typesNHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T>
QueryTranslator104 methods49 fields104 typesNHibernate.Hql.Classic.QueryTranslator
HqlTreeBuilder78 methods1 field89 typesNHibernate.Hql.Ast.HqlTreeBuilder
HqlParser96 methods470 fields115 typesNHibernate.Hql.Ast.ANTLR.HqlParser
HqlSqlWalker144 methods457 fields182 typesNHibernate.Hql.Ast.ANTLR.HqlSqlWalker
QueryTranslatorImpl29 methods13 fields66 typesNHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl
SqlGenerator83 methods430 fields59 typesNHibernate.Hql.Ast.ANTLR.SqlGenerator
HqlLexer105 methods145 fields28 typesNHibernate.Hql.Ast.ANTLR.HqlLexer
JoinProcessor7 methods3 fields54 typesNHibernate.Hql.Ast.ANTLR.Util.JoinProcessor
ASTNode51 methods7 fields25 typesNHibernate.Hql.Ast.ANTLR.Tree.ASTNode
FromElementType32 methods9 fields42 typesNHibernate.Hql.Ast.ANTLR.Tree.FromElementType
DotNode33 methods18 fields54 typesNHibernate.Hql.Ast.ANTLR.Tree.DotNode
FromElement80 methods24 fields46 typesNHibernate.Hql.Ast.ANTLR.Tree.FromElement
FromClause31 methods11 fields45 typesNHibernate.Hql.Ast.ANTLR.Tree.FromClause
HqlSqlWalkerTreeAdaptor4 methods1 field54 typesNHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerTreeAdaptor
SelectClause22 methods10 fields42 typesNHibernate.Hql.Ast.ANTLR.Tree.SelectClause
FromElementFactory18 methods11 fields41 typesNHibernate.Hql.Ast.ANTLR.Tree.FromElementFactory
AbstractStatementExecutor14 methods3 fields51 typesNHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor
MultiTableUpdateExecutor5 methods5 fields52 typesNHibernate.Hql.Ast.ANTLR.Exec.MultiTableUpdateExecutor
ReadWriteCache19 methods4 fields20 typesNHibernate.Cache.ReadWriteCache
EventListeners75 methods37 fields71 typesNHibernate.Event.EventListeners
AbstractSaveEventListener17 methods1 field54 typesNHibernate.Event.Default.AbstractSaveEventListener
DefaultLoadEventListener12 methods4 fields66 typesNHibernate.Event.Default.DefaultLoadEventListener
AbstractFlushingEventListener10 methods1 field59 typesNHibernate.Event.Default.AbstractFlushingEventListener
PersistentIdentifierBag40 methods2 fields33 typesNHibernate.Collection.PersistentIdentifierBag
PersistentArrayHolder30 methods4 fields30 typesNHibernate.Collection.PersistentArrayHolder
PersistentMap38 methods1 field38 typesNHibernate.Collection.PersistentMap
PersistentGenericMap<TKey,TValue>24 methods1 field36 typesNHibernate.Collection.Generic.PersistentGenericMap<TKey,TValue>
Mappings59 methods29 fields46 typesNHibernate.Cfg.Mappings
SettingsFactory6 methods2 fields57 typesNHibernate.Cfg.SettingsFactory
Environment12 methods55 fields34 typesNHibernate.Cfg.Environment
Configuration120 methods35 fields178 typesNHibernate.Cfg.Configuration
ClassBinder31 methods6 fields94 typesNHibernate.Cfg.XmlHbmBinding.ClassBinder
MappingRootBinder14 methods1 field51 typesNHibernate.Cfg.XmlHbmBinding.MappingRootBinder
RootClassBinder9 methods0 field72 typesNHibernate.Cfg.XmlHbmBinding.RootClassBinder
PropertiesBinder21 methods8 fields78 typesNHibernate.Cfg.XmlHbmBinding.PropertiesBinder
ValuePropertyBinder16 methods1 field55 typesNHibernate.Cfg.XmlHbmBinding.ValuePropertyBinder
CollectionBinder46 methods3 fields120 typesNHibernate.Cfg.XmlHbmBinding.CollectionBinder
ResultSetMappingBinder15 methods0 field57 typesNHibernate.Cfg.XmlHbmBinding.ResultSetMappingBinder
DbIntegrationConfigurationProperties20 methods1 field15 typesNHibernate.Cfg.Loquacious.DbIntegrationConfigurationProperties

Statistics

Stat   Methods   Fields   TypesUsed
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: From now, all types added or refactored should be 100% covered by tests
// <Name>From now, all types added or refactored should be 100% covered by tests</Name>
warnif count > 0 from t in JustMyCode.Types where

  
// Match methods new or modified since Baseline for Comparison...
  (t.WasAdded() || t.CodeWasChanged()) &&

  
// ...that are not 100% covered by tests
  t.PercentageCoverage < 100

  
let methodsCulprit = t.Methods.Where(m => m.PercentageCoverage < 100)

select new { t, t.PercentageCoverage, methodsCulprit }

// Having types 100% covered by tests is a good idea because 
// the small portion of code hard to cover, is also the 
// portion of code that is the most likely to contain bugs.

497 types matched

typesPercentage CoveragemethodsCulpritFull Name
ADOException222 methodsNHibernate.ADOException
NHibernateUtil869 methodsNHibernate.NHibernateUtil
LazyInitializationException750 methodNHibernate.LazyInitializationException
AssertionFailure00 methodNHibernate.AssertionFailure
LoggerProvider723 methodsNHibernate.LoggerProvider
NoLoggingLoggerFactory661 methodNHibernate.NoLoggingLoggerFactory
NoLoggingInternalLogger2018 methodsNHibernate.NoLoggingInternalLogger
NonUniqueResultException00 methodNHibernate.NonUniqueResultException
ConnectionReleaseModeParser402 methodsNHibernate.ConnectionReleaseModeParser
StringHelper8315 methodsNHibernate.Util.StringHelper
StringHelper+<>c__DisplayClass101 methodNHibernate.Util.StringHelper+<>c__DisplayClass1
JoinedEnumerable921 methodNHibernate.Util.JoinedEnumerable
ADOExceptionReporter721 methodNHibernate.Util.ADOExceptionReporter
ExpressionsHelper661 methodNHibernate.Util.ExpressionsHelper
PropertiesHelper842 methodsNHibernate.Util.PropertiesHelper
ArrayHelper7111 methodsNHibernate.Util.ArrayHelper
IdentityMap769 methodsNHibernate.Util.IdentityMap
ReflectHelper8015 methodsNHibernate.Util.ReflectHelper
NullableType834 methodsNHibernate.Type.NullableType
GenericBagType<T>851 methodNHibernate.Type.GenericBagType<T>
AbstractCharType606 methodsNHibernate.Type.AbstractCharType
DbTimestampType702 methodsNHibernate.Type.DbTimestampType
DateTimeOffsetType5710 methodsNHibernate.Type.DateTimeOffsetType
ComponentType8217 methodsNHibernate.Type.ComponentType
MapType585 methodsNHibernate.Type.MapType
GenericMapType<TKey,TValue>912 methodsNHibernate.Type.GenericMapType<TKey,TValue>
XmlDocType784 methodsNHibernate.Type.XmlDocType
TypeHelper963 methodsNHibernate.Type.TypeHelper
CustomType3417 methodsNHibernate.Type.CustomType
AbstractBinaryType269 methodsNHibernate.Type.AbstractBinaryType
XDocType754 methodsNHibernate.Type.XDocType
UriType633 methodsNHibernate.Type.UriType
AbstractDateTimeSpecificKindType564 methodsNHibernate.Type.AbstractDateTimeSpecificKindType
EnumStringType<T>751 methodNHibernate.Type.EnumStringType<T>
TypeFactory8814 methodsNHibernate.Type.TypeFactory
DateTime2Type722 methodsNHibernate.Type.DateTime2Type
CompositeCustomType7711 methodsNHibernate.Type.CompositeCustomType
DateType658 methodsNHibernate.Type.DateType
PersistentClass8519 methodsNHibernate.Mapping.PersistentClass
Property887 methodsNHibernate.Mapping.Property
Component8611 methodsNHibernate.Mapping.Component
RootClass925 methodsNHibernate.Mapping.RootClass
ForeignKey903 methodsNHibernate.Mapping.ForeignKey
Any754 methodsNHibernate.Mapping.Any
Table6827 methodsNHibernate.Mapping.Table
ADOExceptionHelper763 methodsNHibernate.Exceptions.ADOExceptionHelper
SqlParseException00 methodNHibernate.Exceptions.SqlParseException
GenericADOException250 methodNHibernate.Exceptions.GenericADOException
SQLExceptionConverterFactory663 methodsNHibernate.Exceptions.SQLExceptionConverterFactory
FieldInterceptionHelper683 methodsNHibernate.Intercept.FieldInterceptionHelper
AbstractFieldInterceptor696 methodsNHibernate.Intercept.AbstractFieldInterceptor
ReflectionDriveConnectionCommandProvider770 methodNHibernate.Driver.ReflectionDriveConnectionCommandProvider
NDataReader5023 methodsNHibernate.Driver.NDataReader
DriverBase599 methodsNHibernate.Driver.DriverBase
ReflectionBasedDriver830 methodNHibernate.Driver.ReflectionBasedDriver
MySqlDataDriver06 methodsNHibernate.Driver.MySqlDataDriver
OracleDataClientDriver06 methodsNHibernate.Driver.OracleDataClientDriver
NpgsqlDriver06 methodsNHibernate.Driver.NpgsqlDriver
CsharpSqliteDriver04 methodsNHibernate.Driver.CsharpSqliteDriver
SqlStringFormatter814 methodsNHibernate.Driver.SqlStringFormatter
SQLite20Driver05 methodsNHibernate.Driver.SQLite20Driver
FirebirdClientDriver03 methodsNHibernate.Driver.FirebirdClientDriver
OdbcDriver08 methodsNHibernate.Driver.OdbcDriver
IfxDriver03 methodsNHibernate.Driver.IfxDriver
SQLiteDriver04 methodsNHibernate.Driver.SQLiteDriver
NHybridDataReader5822 methodsNHibernate.Driver.NHybridDataReader
OracleClientDriver155 methodsNHibernate.Driver.OracleClientDriver
DB2Driver04 methodsNHibernate.Driver.DB2Driver
EntityAction618 methodsNHibernate.Action.EntityAction
EntityUpdateAction824 methodsNHibernate.Action.EntityUpdateAction
EntityDeleteAction794 methodsNHibernate.Action.EntityDeleteAction
CollectionAction754 methodsNHibernate.Action.CollectionAction
CollectionUpdateAction912 methodsNHibernate.Action.CollectionUpdateAction
EntityInsertAction677 methodsNHibernate.Action.EntityInsertAction
EntityIdentityInsertAction704 methodsNHibernate.Action.EntityIdentityInsertAction
BulkOperationCleanupAction973 methodsNHibernate.Action.BulkOperationCleanupAction
FutureBatch<TQueryApproach,TMultiApproach>961 methodNHibernate.Impl.FutureBatch<TQueryApproach,TMultiApproach>
MultipleQueriesCacheAssembler924 methodsNHibernate.Impl.MultipleQueriesCacheAssembler
AbstractQueryImpl7536 methodsNHibernate.Impl.AbstractQueryImpl
SessionFactoryObjectFactory693 methodsNHibernate.Impl.SessionFactoryObjectFactory
EnumerableImpl943 methodsNHibernate.Impl.EnumerableImpl
CriteriaImpl7613 methodsNHibernate.Impl.CriteriaImpl
CriteriaImpl+Subcriteria5920 methodsNHibernate.Impl.CriteriaImpl+Subcriteria
MultiCriteriaImpl899 methodsNHibernate.Impl.MultiCriteriaImpl
AbstractSessionImpl925 methodsNHibernate.Impl.AbstractSessionImpl
SessionImpl8549 methodsNHibernate.Impl.SessionImpl
MultiQueryImpl6237 methodsNHibernate.Impl.MultiQueryImpl
DelayedEnumerator<T>751 methodNHibernate.Impl.DelayedEnumerator<T>
DelayedEnumerator<T>+<get_Enumerable>d__0751 methodNHibernate.Impl.DelayedEnumerator<T>+<get_Enumerable>d__0
SessionFactoryImpl7229 methodsNHibernate.Impl.SessionFactoryImpl
StatelessSessionImpl7050 methodsNHibernate.Impl.StatelessSessionImpl
ExpressionQueryImpl767 methodsNHibernate.Impl.ExpressionQueryImpl
FutureValue<T>841 methodNHibernate.Impl.FutureValue<T>
ExpressionProcessor8914 methodsNHibernate.Impl.ExpressionProcessor
Printer174 methodsNHibernate.Impl.Printer
DistinctRootEntityResultTransformer921 methodNHibernate.Transform.DistinctRootEntityResultTransformer
AliasToBeanResultTransformer761 methodNHibernate.Transform.AliasToBeanResultTransformer
SqlInsertBuilder894 methodsNHibernate.SqlCommand.SqlInsertBuilder
JoinFragment762 methodsNHibernate.SqlCommand.JoinFragment
ANSIJoinFragment705 methodsNHibernate.SqlCommand.ANSIJoinFragment

Statistics

Stat   Percentage Coverage   methodsCulprit
Sum:30 6620
Average:61.690
Minimum:00
Maximum:980
Standard deviation:32.760
Variance:1 0730
warningCritical    Rule warning: Avoid making complex methods even more complex (Source CC)
// <Name>Avoid making complex methods even more complex (Source CC)</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from m in JustMyCode.Methods where
 
!m.IsAbstract &&
  
m.IsPresentInBothBuilds() &&
  
m.CodeWasChanged()

let oldCC = m.OlderVersion().CyclomaticComplexity
where oldCC > 6 && m.CyclomaticComplexity > oldCC 

select new { m,
    
oldCC ,
    
newCC = m.CyclomaticComplexity ,
    
oldLoc = m.OlderVersion().NbLinesOfCode,
    
newLoc = m.NbLinesOfCode,
}

16 methods matched

methodsoldCCnewCColdLocnewLocFull Name
Intercept(Object,String,Object)7101314NHibernate.Intercept.AbstractFieldInterceptor.Intercept(Object,String ,Object)
SetDefaultParameterSize(IDbDataParameter,SqlType)9111416NHibernate.Driver.SqlClientDriver.SetDefaultParameterSize (IDbDataParameter,SqlType)
GetImplementors(String)15163335NHibernate.Impl.SessionFactoryImpl.GetImplementors(String)
BuildCurrentSessionContext()781213NHibernate.Impl.SessionFactoryImpl.BuildCurrentSessionContext()
TransformTuple(Object[],String[])9101921NHibernate.Transform.AliasToBeanResultTransformer.TransformTuple (Object[],String[])
RenderWhereStringTemplate(String,String,Dialect,SQLFunctionRegistry)30326163NHibernate.SqlCommand.Template.RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry)
.ctor(PersistentClass,ISessionFactoryImplementor)3340117131NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass ,ISessionFactoryImplementor)
Delete(Object,Object,Int32,Object,SqlCommandInfo,ISessionImplementor ,Object[])21224343NHibernate.Persister.Entity.AbstractEntityPersister.Delete(Object ,Object,Int32,Object,SqlCommandInfo,ISessionImplementor,Object[])
WeakKeywords()11141414NHibernate.Hql.Ast.ANTLR.HqlParser.WeakKeywords()
DetermineDecimalRepresentation(String,Int32)8111114NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor .DetermineDecimalRepresentation(String,Int32)
SetConstantValue(DotNode,String,Object)13143234NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor.SetConstantValue (DotNode,String,Object)
get_DataType()91089NHibernate.Hql.Ast.ANTLR.Tree.LiteralNode.get_DataType()
Create(IToken)63647575NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerTreeAdaptor.Create(IToken)
ValidateFilterDefs()9103136NHibernate.Cfg.Configuration.ValidateFilterDefs()
BindComponent(Type,String,HbmCompositeId)9102628NHibernate.Cfg.XmlHbmBinding.ClassCompositeIdBinder.BindComponent(Type ,String,HbmCompositeId)
Execute(Action<String>,Boolean)9103842NHibernate.Tool.hbm2ddl.SchemaUpdate.Execute(Action<String>,Boolean)

Statistics

Stat   oldCC   newCC   oldLoc   newLoc
Sum:262292547588
Average:16.3818.2534.1936.75
Minimum:7889
Maximum:6364117131
Standard deviation:14.314.6428.0930.37
Variance:204.48214.31789.28922.19
warningCritical    Rule warning: Avoid making complex methods even more complex (IL CC)
// <Name>Avoid making complex methods even more complex (IL CC)</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from m in JustMyCode.Methods where
 
!m.IsAbstract &&
  
m.IsPresentInBothBuilds() &&
  
m.CodeWasChanged()

let oldCC = m.OlderVersion().ILCyclomaticComplexity
where oldCC > 10 && m.ILCyclomaticComplexity > oldCC 

select new { m,
    
oldCC ,
    
newCC = m.ILCyclomaticComplexity ,
    
oldLoc = m.OlderVersion().NbLinesOfCode,
    
newLoc = m.NbLinesOfCode,
}

14 methods matched

methodsoldCCnewCColdLocnewLocFull Name
Intercept(Object,String,Object)11121314NHibernate.Intercept.AbstractFieldInterceptor.Intercept(Object,String ,Object)
SetDefaultParameterSize(IDbDataParameter,SqlType)11131416NHibernate.Driver.SqlClientDriver.SetDefaultParameterSize (IDbDataParameter,SqlType)
GetImplementors(String)23243335NHibernate.Impl.SessionFactoryImpl.GetImplementors(String)
TransformTuple(Object[],String[])11121921NHibernate.Transform.AliasToBeanResultTransformer.TransformTuple (Object[],String[])
RenderWhereStringTemplate(String,String,Dialect,SQLFunctionRegistry)40426163NHibernate.SqlCommand.Template.RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry)
ExecuteWorkInIsolation(ISessionImplementor,IIsolatedWork,Boolean)14152223NHibernate.Transaction.AdoNetTransactionFactory.ExecuteWorkInIsolation (ISessionImplementor,IIsolatedWork,Boolean)
.ctor(PersistentClass,ISessionFactoryImplementor)5564117131NHibernate.Tuple.Entity.EntityMetamodel..ctor(PersistentClass ,ISessionFactoryImplementor)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor)5152192189NHibernate.Persister.Entity.AbstractEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor)
WeakKeywords()11151414NHibernate.Hql.Ast.ANTLR.HqlParser.WeakKeywords()
SetConstantValue(DotNode,String,Object)14153234NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor.SetConstantValue (DotNode,String,Object)
ValidateFilterDefs()21253136NHibernate.Cfg.Configuration.ValidateFilterDefs()
BindComponent(Type,String,HbmCompositeId)13152628NHibernate.Cfg.XmlHbmBinding.ClassCompositeIdBinder.BindComponent(Type ,String,HbmCompositeId)
AddToBatch(IExpectation)11152431NHibernate.AdoNet.OracleDataClientBatchingBatcher.AddToBatch (IExpectation)
Execute(Action<String>,Boolean)11123842NHibernate.Tool.hbm2ddl.SchemaUpdate.Execute(Action<String>,Boolean)

Statistics

Stat   oldCC   newCC   oldLoc   newLoc
Sum:297331636677
Average:21.2123.6445.4348.36
Minimum:11121314
Maximum:5564192189
Standard deviation:15.0816.1848.2248.49
Variance:227.31261.82 3252 351
warningCritical    Rule warning: Avoid making large methods even larger
// <Name>Avoid making large methods even larger</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from m in JustMyCode.Methods where
 
!m.IsAbstract &&
  
m.IsPresentInBothBuilds() &&
  
m.CodeWasChanged() &&
 
// Eliminate constructors from match, since they get larger
 // as soons as some fields initialization are added.
 !m.IsConstructor &&
 
!m.IsClassConstructor

let oldLoc = m.OlderVersion().NbLinesOfCode
where oldLoc > 15 && m.NbLinesOfCode > oldLoc

select new { m,
    
oldLoc,
    
newLoc = m.NbLinesOfCode,
}

19 methods matched

methodsoldLocnewLocFull Name
RegisterDefaultNetTypes()2225NHibernate.Type.TypeFactory.RegisterDefaultNetTypes()
SqlCreateString(Dialect,IMapping,String,String)5455NHibernate.Mapping.Table.SqlCreateString(Dialect,IMapping,String ,String)
SetProjection(IProjection[])1617NHibernate.Impl.CriteriaImpl.SetProjection(IProjection[])
GetImplementors(String)3335NHibernate.Impl.SessionFactoryImpl.GetImplementors(String)
TransformTuple(Object[],String[])1921NHibernate.Transform.AliasToBeanResultTransformer.TransformTuple (Object[],String[])
RenderWhereStringTemplate(String,String,Dialect,SQLFunctionRegistry)6163NHibernate.SqlCommand.Template.RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry)
ExecuteWorkInIsolation(ISessionImplementor,IIsolatedWork,Boolean)2223NHibernate.Transaction.AdoNetTransactionFactory.ExecuteWorkInIsolation (ISessionImplementor,IIsolatedWork,Boolean)
PrepareQueryCommand(QueryParameters,Boolean,ISessionImplementor)3134NHibernate.Loader.Loader.PrepareQueryCommand(QueryParameters,Boolean ,ISessionImplementor)
WhereString(String,String[],Int32)2122NHibernate.Loader.JoinWalker.WhereString(String,String[],Int32)
SetConstantValue(DotNode,String,Object)3234NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor.SetConstantValue (DotNode,String,Object)
BuildSettings(IDictionary<String,String>)135136NHibernate.Cfg.SettingsFactory.BuildSettings(IDictionary<String,String >)
ValidateFilterDefs()3136NHibernate.Cfg.Configuration.ValidateFilterDefs()
BindComponent(Type,String,HbmCompositeId)2628NHibernate.Cfg.XmlHbmBinding.ClassCompositeIdBinder.BindComponent(Type ,String,HbmCompositeId)
ExecuteReader(IDbCommand)1920NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand)
AddToBatch(IExpectation)2431NHibernate.AdoNet.OracleDataClientBatchingBatcher.AddToBatch (IExpectation)
DoExecuteBatch(IDbCommand)1924NHibernate.AdoNet.OracleDataClientBatchingBatcher.DoExecuteBatch (IDbCommand)
Execute(Action<String>,Boolean,Boolean,IDbConnection,TextWriter)2223NHibernate.Tool.hbm2ddl.SchemaExport.Execute(Action<String>,Boolean ,Boolean,IDbConnection,TextWriter)
Execute(Action<String>,Boolean,Boolean)2930NHibernate.Tool.hbm2ddl.SchemaExport.Execute(Action<String>,Boolean ,Boolean)
Execute(Action<String>,Boolean)3842NHibernate.Tool.hbm2ddl.SchemaUpdate.Execute(Action<String>,Boolean)

Statistics

Stat   oldLoc   newLoc
Sum:654699
Average:34.4236.79
Minimum:1617
Maximum:135136
Standard deviation:26.3126.05
Variance:692.35678.38
warningCritical    Rule warning: Avoid adding methods to a type that already had many methods
// <Name>Avoid adding methods to a type that already had many methods</Name>
// To visualize changes in code, right-click a matched type and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from t in JustMyCode.Types where
  
t.IsPresentInBothBuilds() &&
  
t.Methods.Count() > t.OlderVersion().Methods.Count() &&
  
t.OlderVersion().Methods.Count() > 10

let newMethods = t.Methods.Where(m => m.WasAdded())
let removedMethods = t.OlderVersion().Methods.Where(m => m.WasRemoved())

select new { t,
             
oldNbMethods = t.OlderVersion().NbMethods,
             
newNbMethods = t.NbMethods,
             
newMethods,
             
removedMethods  }

71 types matched

typesoldNbMethodsnewNbMethodsnewMethodsremovedMethodsFull Name
ICriteria34362 methods0 methodNHibernate.ICriteria
IMultiCriteria15205 methods0 methodNHibernate.IMultiCriteria
StringHelper53542 methods0 methodNHibernate.Util.StringHelper
ArrayHelper34341 method0 methodNHibernate.Util.ArrayHelper
ReflectHelper28358 methods1 methodNHibernate.Util.ReflectHelper
DateTimeOffsetType12165 methods1 methodNHibernate.Type.DateTimeOffsetType
DateType15161 method0 methodNHibernate.Type.DateType
Property47503 methods0 methodNHibernate.Mapping.Property
ForeignKey18191 method0 methodNHibernate.Mapping.ForeignKey
DriverBase26282 methods0 methodNHibernate.Driver.DriverBase
SqlClientDriver13141 method0 methodNHibernate.Driver.SqlClientDriver
EntityAction15185 methods2 methodsNHibernate.Action.EntityAction
CollectionAction15163 methods2 methodsNHibernate.Action.CollectionAction
FutureBatch<TQueryApproach,TMultiApproach>12143 methods1 methodNHibernate.Impl.FutureBatch<TQueryApproach,TMultiApproach>
AbstractQueryImpl1101122 methods0 methodNHibernate.Impl.AbstractQueryImpl
CriteriaImpl64662 methods0 methodNHibernate.Impl.CriteriaImpl
CriteriaImpl+Subcriteria42463 methods0 methodNHibernate.Impl.CriteriaImpl+Subcriteria
MultiCriteriaImpl31368 methods3 methodsNHibernate.Impl.MultiCriteriaImpl
AbstractSessionImpl86904 methods0 methodNHibernate.Impl.AbstractSessionImpl
MultiQueryImpl69707 methods6 methodsNHibernate.Impl.MultiQueryImpl
StatelessSessionImpl92942 methods0 methodNHibernate.Impl.StatelessSessionImpl
Parameter12131 method0 methodNHibernate.SqlCommand.Parameter
SqlString34351 method0 methodNHibernate.SqlCommand.SqlString
SqlStringBuilder21221 method0 methodNHibernate.SqlCommand.SqlStringBuilder
EntityMetamodel63674 methods0 methodNHibernate.Tuple.Entity.EntityMetamodel
Dialect1461504 methods0 methodNHibernate.Dialect.Dialect
PostgreSQLDialect19202 methods1 methodNHibernate.Dialect.PostgreSQLDialect
Oracle8iDialect47482 methods1 methodNHibernate.Dialect.Oracle8iDialect
MySQLDialect19224 methods1 methodNHibernate.Dialect.MySQLDialect
FirebirdDialect12131 method0 methodNHibernate.Dialect.FirebirdDialect
MsSql2000Dialect40422 methods0 methodNHibernate.Dialect.MsSql2000Dialect
InformixDialect38391 method0 methodNHibernate.Dialect.InformixDialect
SQLiteDialect18224 methods0 methodNHibernate.Dialect.SQLiteDialect
MsSqlCeDialect12131 method0 methodNHibernate.Dialect.MsSqlCeDialect
JoinWalker57592 methods0 methodNHibernate.Loader.JoinWalker
CriteriaJoinWalker13141 method0 methodNHibernate.Loader.Criteria.CriteriaJoinWalker
CriteriaQueryTranslator50523 methods1 methodNHibernate.Loader.Criteria.CriteriaQueryTranslator
IOuterJoinLoadable16171 method0 methodNHibernate.Persister.Entity.IOuterJoinLoadable
AbstractEntityPersister3123131 method0 methodNHibernate.Persister.Entity.AbstractEntityPersister
SimpleProjection12153 methods0 methodNHibernate.Criterion.SimpleProjection
AliasedProjection12142 methods0 methodNHibernate.Criterion.AliasedProjection
Subqueries385113 methods0 methodNHibernate.Criterion.Subqueries
Restrictions67736 methods0 methodNHibernate.Criterion.Restrictions
Distinct12142 methods0 methodNHibernate.Criterion.Distinct
ICriteriaQuery18202 methods0 methodNHibernate.Criterion.ICriteriaQuery
Projections304717 methods0 methodNHibernate.Criterion.Projections
ProjectionList17225 methods0 methodNHibernate.Criterion.ProjectionList
DetachedCriteria38413 methods0 methodNHibernate.Criterion.DetachedCriteria
IQueryTranslator17181 method0 methodNHibernate.Hql.IQueryTranslator
QueryTranslator1051072 methods0 methodNHibernate.Hql.Classic.QueryTranslator
HqlParser98991 method0 methodNHibernate.Hql.Ast.ANTLR.HqlParser
HqlSqlWalker1471481 method0 methodNHibernate.Hql.Ast.ANTLR.HqlSqlWalker
ASTNode51543 methods0 methodNHibernate.Hql.Ast.ANTLR.Tree.ASTNode
AbstractProxyFactory16171 method0 methodNHibernate.Proxy.AbstractProxyFactory
DefaultLoadEventListener13141 method0 methodNHibernate.Event.Default.DefaultLoadEventListener
PersistentMap40411 method0 methodNHibernate.Collection.PersistentMap
PersistentGenericMap<TKey,TValue>26271 method0 methodNHibernate.Collection.Generic.PersistentGenericMap<TKey,TValue>
Settings89912 methods0 methodNHibernate.Cfg.Settings
Mappings56615 methods0 methodNHibernate.Cfg.Mappings
Environment12131 method0 methodNHibernate.Cfg.Environment
Configuration11512411 methods2 methodsNHibernate.Cfg.Configuration
MappingRootBinder14156 methods5 methodsNHibernate.Cfg.XmlHbmBinding.MappingRootBinder
CollectionBinder294744 methods26 methodsNHibernate.Cfg.XmlHbmBinding.CollectionBinder
IBatcher15161 method0 methodNHibernate.Engine.IBatcher
QueryParameters596710 methods2 methodsNHibernate.Engine.QueryParameters
ISessionImplementor66671 method0 methodNHibernate.Engine.ISessionImplementor
ActionQueue34406 methods0 methodNHibernate.Engine.ActionQueue
LoadContexts14151 method0 methodNHibernate.Engine.Loading.LoadContexts
HQLQueryPlan18208 methods5 methodsNHibernate.Engine.Query.HQLQueryPlan
AbstractBatcher40411 method0 methodNHibernate.AdoNet.AbstractBatcher
SqlStatementLogger16171 method0 methodNHibernate.AdoNet.Util.SqlStatementLogger

Statistics

Stat   oldNbMethods   newNbMethods   newMethods   removedMethods
Sum:3 0943 30100
Average:43.5846.4900
Minimum:121300
Maximum:31231300
Standard deviation:45.4345.600
Variance:2 0632 07900
warningCritical    Rule warning: Avoid transforming an immutable type into a mutable one
//<Name>Avoid transforming an immutable type into a mutable one</Name>
// Users of an immutable type often rely on the fact that the type is immutable.
// If an immutable type becomes mutable, there are chances that this will break its users.
warnif count > 0
from t in Application.Types where
   
t.IsPresentInBothBuilds() &&
   
t.OlderVersion().IsImmutable &&
  
!t.IsImmutable && 
  
// Don't take account of immutable types transformed into static types (not deemed as immtable)
  !t.IsStatic
let culpritFields = t.Fields.Where(f => f.IsImmutable)
select new {t, culpritFields }

5 types matched

typesculpritFieldsFull Name
DateType1 fieldNHibernate.Type.DateType
DelayedEnumerator<T>1 fieldNHibernate.Impl.DelayedEnumerator<T>
FutureValue<T>1 fieldNHibernate.Impl.FutureValue<T>
HQLQueryPlan2 fieldsNHibernate.Engine.Query.HQLQueryPlan
FilterQueryPlan1 fieldNHibernate.Engine.Query.FilterQueryPlan

Statistics

Stat   culpritFields
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid transforming an immutable field into a mutable one
// <Name>Avoid transforming an immutable field into a mutable one</Name>
// Users of an immutable field often rely on the fact that the type is immutable.
// If an immutable field becomes mutable, there are chances that this will break its users.
warnif count > 0
from f in Application.Fields where 
   
f.IsPresentInBothBuilds() &&
   
f.OlderVersion().IsImmutable &&
  
!f.IsImmutable 
select f

4 fields matched

fieldsFull Name
createSQLNHibernate.Tool.hbm2ddl.SchemaExport.createSQL
dialectNHibernate.Tool.hbm2ddl.SchemaExport.dialect
dropSQLNHibernate.Tool.hbm2ddl.SchemaExport.dropSQL
formatterNHibernate.Tool.hbm2ddl.SchemaExport.formatter

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Avoid adding instance fields to a type that already had many instance fields
// <Name>Avoid adding instance fields to a type that already had many instance fields</Name>
// To visualize changes in code, right-click a matched type and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

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

let oldNbInstanceFields = t.OlderVersion().InstanceFields
let newNbInstanceFields = t.InstanceFields
where
  
newNbInstanceFields.Count() > oldNbInstanceFields .Count() &&
  
oldNbInstanceFields.Count() > 6

let newInstanceFields = t.InstanceFields.Where(f => f.WasAdded())

select new { t,
             
oldCount = oldNbInstanceFields.Count() ,
             
newCount = newNbInstanceFields.Count() ,
             
newInstanceFields }

11 types matched

typesoldCountnewCountnewInstanceFieldsFull Name
ComponentType891 fieldNHibernate.Type.ComponentType
Property15161 fieldNHibernate.Mapping.Property
EntityMetamodel48502 fieldsNHibernate.Tuple.Entity.EntityMetamodel
PocoEntityTuplizer781 fieldNHibernate.Tuple.Entity.PocoEntityTuplizer
CriteriaQueryTranslator15183 fieldsNHibernate.Loader.Criteria.CriteriaQueryTranslator
Settings44451 fieldNHibernate.Cfg.Settings
Mappings26282 fieldsNHibernate.Cfg.Mappings
Configuration30322 fieldsNHibernate.Cfg.Configuration
QueryParameters24295 fieldsNHibernate.Engine.QueryParameters
ActionQueue892 fieldsNHibernate.Engine.ActionQueue
SchemaExport792 fieldsNHibernate.Tool.hbm2ddl.SchemaExport

Statistics

Stat   oldCount   newCount   newInstanceFields
Sum:2322530
Average:21.09230
Minimum:780
Maximum:48500
Standard deviation:14.0614.280
Variance:197.72203.820

2110
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 }

15 types matched

typesderivedClassesUsedFull Name
ReplicationMode4 typesNHibernate.ReplicationMode
ForeignKeyDirection2 typesNHibernate.Type.ForeignKeyDirection
PersistentClass2 typesNHibernate.Mapping.PersistentClass
Collection2 typesNHibernate.Mapping.Collection
AbstractCriterion4 typesNHibernate.Criterion.AbstractCriterion
MatchMode4 typesNHibernate.Criterion.MatchMode
QueryOver1 typeNHibernate.Criterion.QueryOver
QueryOver<TRoot>1 typeNHibernate.Criterion.QueryOver<TRoot>
SelectExpressionList1 typeNHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionList
ClassBinder4 typesNHibernate.Cfg.XmlHbmBinding.ClassBinder
IdentifierValue4 typesNHibernate.Engine.IdentifierValue
CascadingAction10 typesNHibernate.Engine.CascadingAction
CascadeStyle13 typesNHibernate.Engine.CascadeStyle
VersionValue3 typesNHibernate.Engine.VersionValue
ScriptReader1 typeNHibernate.Tool.hbm2ddl.ScriptReader

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.ndepend.com/Metrics.aspx#DIT

161 types matched

typesbaseClassesDepth of inheritanceFull Name
GenericIdentifierBagType<T>3 types4NHibernate.Type.GenericIdentifierBagType<T>
PrimitiveType3 types4NHibernate.Type.PrimitiveType
BooleanType4 types5NHibernate.Type.BooleanType
CharBooleanType5 types6NHibernate.Type.CharBooleanType
YesNoType6 types7NHibernate.Type.YesNoType
UInt64Type4 types5NHibernate.Type.UInt64Type
DoubleType4 types5NHibernate.Type.DoubleType
GenericBagType<T>3 types4NHibernate.Type.GenericBagType<T>
AbstractCharType4 types5NHibernate.Type.AbstractCharType
AnsiCharType5 types6NHibernate.Type.AnsiCharType
TimestampType4 types5NHibernate.Type.TimestampType
DbTimestampType5 types6NHibernate.Type.DbTimestampType
SingleType4 types5NHibernate.Type.SingleType
Int32Type4 types5NHibernate.Type.Int32Type
DecimalType4 types5NHibernate.Type.DecimalType
DateTimeOffsetType4 types5NHibernate.Type.DateTimeOffsetType
AbstractStringType3 types4NHibernate.Type.AbstractStringType
StringType4 types5NHibernate.Type.StringType
StringClobType5 types6NHibernate.Type.StringClobType
Int64Type4 types5NHibernate.Type.Int64Type
GenericMapType<TKey,TValue>3 types4NHibernate.Type.GenericMapType<TKey,TValue>
GenericSortedListType<TKey,TValue>4 types5NHibernate.Type.GenericSortedListType<TKey,TValue>
XmlDocType3 types4NHibernate.Type.XmlDocType
SByteType4 types5NHibernate.Type.SByteType
TimeAsTimeSpanType4 types5NHibernate.Type.TimeAsTimeSpanType
AbstractEnumType4 types5NHibernate.Type.AbstractEnumType
SortedMapType3 types4NHibernate.Type.SortedMapType
PersistentEnumType5 types6NHibernate.Type.PersistentEnumType
EnumType<T>6 types7NHibernate.Type.EnumType<T>
CultureInfoType3 types4NHibernate.Type.CultureInfoType
GenericListType<T>3 types4NHibernate.Type.GenericListType<T>
TimeType4 types5NHibernate.Type.TimeType
OrderedMapType3 types4NHibernate.Type.OrderedMapType
TypeType3 types4NHibernate.Type.TypeType
AbstractBinaryType3 types4NHibernate.Type.AbstractBinaryType
BinaryType4 types5NHibernate.Type.BinaryType
XDocType3 types4NHibernate.Type.XDocType
UriType3 types4NHibernate.Type.UriType
DateTimeType4 types5NHibernate.Type.DateTimeType
AbstractDateTimeSpecificKindType5 types6NHibernate.Type.AbstractDateTimeSpecificKindType
LocalDateTimeType6 types7NHibernate.Type.LocalDateTimeType
TrueFalseType6 types7NHibernate.Type.TrueFalseType
SerializableType3 types4NHibernate.Type.SerializableType
EnumStringType5 types6NHibernate.Type.EnumStringType
EnumStringType<T>6 types7NHibernate.Type.EnumStringType<T>
ByteType4 types5NHibernate.Type.ByteType
BinaryBlobType5 types6NHibernate.Type.BinaryBlobType
TicksType4 types5NHibernate.Type.TicksType
GuidType4 types5NHibernate.Type.GuidType
SpecialOneToOneType3 types4NHibernate.Type.SpecialOneToOneType
GenericSetType<T>3 types4NHibernate.Type.GenericSetType<T>
GenericOrderedSetType<T>4 types5NHibernate.Type.GenericOrderedSetType<T>
UInt16Type4 types5NHibernate.Type.UInt16Type
AnsiStringType4 types5NHibernate.Type.AnsiStringType
DateTime2Type5 types6NHibernate.Type.DateTime2Type
CurrencyType5 types6NHibernate.Type.CurrencyType
UtcDateTimeType6 types7NHibernate.Type.UtcDateTimeType
TimeSpanType4 types5NHibernate.Type.TimeSpanType
SortedSetType3 types4NHibernate.Type.SortedSetType
CharType5 types6NHibernate.Type.CharType
GenericSortedSetType<T>4 types5NHibernate.Type.GenericSortedSetType<T>
EnumCharType<T>5 types6NHibernate.Type.EnumCharType<T>
GenericSortedDictionaryType<TKey,TValue>4 types5NHibernate.Type.GenericSortedDictionaryType<TKey,TValue>
OrderedSetType3 types4NHibernate.Type.OrderedSetType
UInt32Type4 types5NHibernate.Type.UInt32Type
Int16Type4 types5NHibernate.Type.Int16Type
DateType4 types5NHibernate.Type.DateType
Array3 types4NHibernate.Mapping.Array
PrimitiveArray4 types5NHibernate.Mapping.PrimitiveArray
PostgreSQL82Dialect3 types4NHibernate.Dialect.PostgreSQL82Dialect
Oracle10gDialect3 types4NHibernate.Dialect.Oracle10gDialect
MsSql2008Dialect3 types4NHibernate.Dialect.MsSql2008Dialect
OracleLiteDialect3 types4NHibernate.Dialect.OracleLiteDialect
InformixDialect10003 types4NHibernate.Dialect.InformixDialect1000
AbstractEntityLoader3 types4NHibernate.Loader.Entity.AbstractEntityLoader
CascadeEntityLoader4 types5NHibernate.Loader.Entity.CascadeEntityLoader
CollectionElementLoader3 types4NHibernate.Loader.Entity.CollectionElementLoader
EntityLoader4 types5NHibernate.Loader.Entity.EntityLoader
CollectionLoader3 types4NHibernate.Loader.Collection.CollectionLoader
BasicCollectionLoader4 types5NHibernate.Loader.Collection.BasicCollectionLoader
OneToManyLoader4 types5NHibernate.Loader.Collection.OneToManyLoader
SubselectOneToManyLoader5 types6NHibernate.Loader.Collection.SubselectOneToManyLoader
SubselectCollectionLoader5 types6NHibernate.Loader.Collection.SubselectCollectionLoader
CriteriaLoader3 types4NHibernate.Loader.Criteria.CriteriaLoader
HqlBooleanOr3 types4NHibernate.Hql.Ast.HqlBooleanOr
HqlBooleanAnd3 types4NHibernate.Hql.Ast.HqlBooleanAnd
HqlEquality3 types4NHibernate.Hql.Ast.HqlEquality
HqlBooleanDot3 types4NHibernate.Hql.Ast.HqlBooleanDot
HqlStringConstant3 types4NHibernate.Hql.Ast.HqlStringConstant
HqlDoubleConstant3 types4NHibernate.Hql.Ast.HqlDoubleConstant
HqlFloatConstant3 types4NHibernate.Hql.Ast.HqlFloatConstant
HqlIntegerConstant3 types4NHibernate.Hql.Ast.HqlIntegerConstant
HqlDecimalConstant3 types4NHibernate.Hql.Ast.HqlDecimalConstant
HqlFalse3 types4NHibernate.Hql.Ast.HqlFalse
HqlTrue3 types4NHibernate.Hql.Ast.HqlTrue
HqlNull3 types4NHibernate.Hql.Ast.HqlNull
HqlDirectionAscending3 types4NHibernate.Hql.Ast.HqlDirectionAscending
HqlDirectionDescending3 types4NHibernate.Hql.Ast.HqlDirectionDescending
HqlGreaterThanOrEqual3 types4NHibernate.Hql.Ast.HqlGreaterThanOrEqual
HqlGreaterThan3 types4NHibernate.Hql.Ast.HqlGreaterThan

Statistics

Stat   baseClasses   Depth of inheritance
Sum:0769
Average:04.78
Minimum:04
Maximum:07
Standard deviation:00.86
Variance:00.75
warningCritical    Rule warning: Class with no descendant should be sealed if possible
// <Name>Class with no descendant should be sealed if possible</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsClass && 
  
t.NbChildren ==0 && 
 
!t.IsSealed && 
 
!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 }

1,144 types matched

types# lines of code (LOC)Full Name
HqlSqlWalker4 731NHibernate.Hql.Ast.ANTLR.HqlSqlWalker
HqlParser4 452NHibernate.Hql.Ast.ANTLR.HqlParser
SqlGenerator3 551NHibernate.Hql.Ast.ANTLR.SqlGenerator
HqlLexer1 505NHibernate.Hql.Ast.ANTLR.HqlLexer
Configuration974NHibernate.Cfg.Configuration
QueryTranslator627NHibernate.Hql.Classic.QueryTranslator
MultiQueryImpl412NHibernate.Impl.MultiQueryImpl
StatefulPersistenceContext376NHibernate.Engine.StatefulPersistenceContext
CollectionBinder364NHibernate.Cfg.XmlHbmBinding.CollectionBinder
CriteriaQueryTranslator336NHibernate.Loader.Criteria.CriteriaQueryTranslator
SingleTableEntityPersister336NHibernate.Persister.Entity.SingleTableEntityPersister
SqlString300NHibernate.SqlCommand.SqlString
StatelessSessionImpl296NHibernate.Impl.StatelessSessionImpl
StatisticsImpl272NHibernate.Stat.StatisticsImpl
EntityMetamodel254NHibernate.Tuple.Entity.EntityMetamodel
JoinedSubclassEntityPersister240NHibernate.Persister.Entity.JoinedSubclassEntityPersister
EventListeners235NHibernate.Event.EventListeners
CriteriaImpl233NHibernate.Impl.CriteriaImpl
MultiCriteriaImpl233NHibernate.Impl.MultiCriteriaImpl
DotNode214NHibernate.Hql.Ast.ANTLR.Tree.DotNode
Mappings212NHibernate.Cfg.Mappings
FromElementFactory192NHibernate.Hql.Ast.ANTLR.Tree.FromElementFactory
SelectClause188NHibernate.Hql.Ast.ANTLR.Tree.SelectClause
DefaultLoadEventListener186NHibernate.Event.Default.DefaultLoadEventListener
PropertiesBinder178NHibernate.Cfg.XmlHbmBinding.PropertiesBinder
BasicFormatter+FormatProcess173NHibernate.AdoNet.Util.BasicFormatter+FormatProcess
UnionSubclassEntityPersister172NHibernate.Persister.Entity.UnionSubclassEntityPersister
ResultSetMappingBinder171NHibernate.Cfg.XmlHbmBinding.ResultSetMappingBinder
DefaultFlushEntityEventListener169NHibernate.Event.Default.DefaultFlushEntityEventListener
CustomLoader168NHibernate.Loader.Custom.CustomLoader
QueryLoader159NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader
SQLQueryReturnProcessor153NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor
FromElementType144NHibernate.Hql.Ast.ANTLR.Tree.FromElementType
QueryOver<TRoot,TSubType>143NHibernate.Criterion.QueryOver<TRoot,TSubType>
ActionQueue143NHibernate.Engine.ActionQueue
QueryTranslatorImpl137NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl
AdoTransaction129NHibernate.Transaction.AdoTransaction
QuerySelect128NHibernate.SqlCommand.QuerySelect
Example128NHibernate.Criterion.Example
SelectParser126NHibernate.Hql.Classic.SelectParser
FromParser123NHibernate.Hql.Classic.FromParser
ClassCompositeIdBinder123NHibernate.Cfg.XmlHbmBinding.ClassCompositeIdBinder
ProjectionList122NHibernate.Criterion.ProjectionList
OneToManyPersister121NHibernate.Persister.Collection.OneToManyPersister
CollectionLoadContext120NHibernate.Engine.Loading.CollectionLoadContext
HqlGeneratorExpressionTreeVisitor118NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor
LiteralProcessor116NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor
IdentNode116NHibernate.Hql.Ast.ANTLR.Tree.IdentNode
RootClassBinder116NHibernate.Cfg.XmlHbmBinding.RootClassBinder
ConnectionManager116NHibernate.AdoNet.ConnectionManager
SqlUpdateBuilder115NHibernate.SqlCommand.SqlUpdateBuilder
FirebirdDialect113NHibernate.Dialect.FirebirdDialect
QueryKey112NHibernate.Cache.QueryKey
SchemaExport112NHibernate.Tool.hbm2ddl.SchemaExport
PersistentGenericMap<TKey,TValue>111NHibernate.Collection.Generic.PersistentGenericMap<TKey,TValue>
Component110NHibernate.Mapping.Component
Column108NHibernate.Mapping.Column
PersistentArrayHolder108NHibernate.Collection.PersistentArrayHolder
SqlQueryImpl107NHibernate.Impl.SqlQueryImpl
BasicCollectionPersister106NHibernate.Persister.Collection.BasicCollectionPersister
PocoEntityTuplizer105NHibernate.Tuple.Entity.PocoEntityTuplizer
ReadWriteCache104NHibernate.Cache.ReadWriteCache
FromClause101NHibernate.Hql.Ast.ANTLR.Tree.FromClause
JoinSequence99NHibernate.Engine.JoinSequence
ReflectionOptimizer97NHibernate.Bytecode.Lightweight.ReflectionOptimizer
MappingRootBinder94NHibernate.Cfg.XmlHbmBinding.MappingRootBinder
LinkedHashMap<TKey,TValue>92NHibernate.Util.LinkedHashMap<TKey,TValue>
HqlTreeBuilder90NHibernate.Hql.Ast.HqlTreeBuilder
HqlSqlWalkerTreeAdaptor90NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerTreeAdaptor
CompositeCustomType89NHibernate.Type.CompositeCustomType
AnyType88NHibernate.Type.AnyType
DefaultDeleteEventListener88NHibernate.Event.Default.DefaultDeleteEventListener
SchemaUpdate88NHibernate.Tool.hbm2ddl.SchemaUpdate
SQLiteDialect86NHibernate.Dialect.SQLiteDialect
SQLQueryParser85NHibernate.Loader.Custom.Sql.SQLQueryParser
MultiTableUpdateExecutor85NHibernate.Hql.Ast.ANTLR.Exec.MultiTableUpdateExecutor
NDataReader82NHibernate.Driver.NDataReader
CollectionEntry80NHibernate.Engine.CollectionEntry
TypeNameParser77NHibernate.Util.TypeNameParser
RootClass76NHibernate.Mapping.RootClass
DetachedCriteria76NHibernate.Criterion.DetachedCriteria
IntoClause76NHibernate.Hql.Ast.ANTLR.Tree.IntoClause
EmitUtil75NHibernate.Bytecode.EmitUtil
ForeignKey74NHibernate.Mapping.ForeignKey
BytecodeProviderImpl+Generator74NHibernate.Bytecode.CodeDom.BytecodeProviderImpl+Generator
ExpressionKeyVisitor72NHibernate.Linq.Visitors.ExpressionKeyVisitor
QueryModelVisitor72NHibernate.Linq.Visitors.QueryModelVisitor
ConditionalProjection71NHibernate.Criterion.ConditionalProjection
BulkOperationCleanupAction70NHibernate.Action.BulkOperationCleanupAction
SqlSimpleSelectBuilder70NHibernate.SqlCommand.SqlSimpleSelectBuilder
IndexNode70NHibernate.Hql.Ast.ANTLR.Tree.IndexNode
BatchFetchQueue69NHibernate.Engine.BatchFetchQueue
SqlStringBuilder67NHibernate.SqlCommand.SqlStringBuilder
SelectFragment67NHibernate.SqlCommand.SelectFragment
OracleLiteDialect67NHibernate.Dialect.OracleLiteDialect
PersistentGenericSet<T>67NHibernate.Collection.Generic.PersistentGenericSet<T>
DatabaseMetadata67NHibernate.Tool.hbm2ddl.DatabaseMetadata
SubselectClauseExtractor66NHibernate.SqlCommand.SubselectClauseExtractor
SqlFunctionProjection66NHibernate.Criterion.SqlFunctionProjection
PreprocessingParser66NHibernate.Hql.Classic.PreprocessingParser

Statistics

Stat   # lines of code (LOC)
Sum:41 822
Average:36.56
Minimum:0
Maximum:4 731
Standard deviation:228.18
Variance:52 064
warningCritical    Rule warning: Overrides of Method() should call base.Method()
// <Name>Overrides of Method() should call base.Method()</Name>
// Overrides of Method() should refine the behavior of base.Method().
// If base.Method() is not called, the base behavior is not refined but it is replaced.
// Violations of this rule are a sign of design flaw,
// especially if the design provides valid reasons 
// that advocates that the base behavior must be replaced and not refined.
//
// Discussions on this topic are available here:
//  http://stackoverflow.com/questions/1107022/should-i-call-the-base-class-implementation-when-overriding-a-method-in-c-sharp
//  http://stackoverflow.com/questions/2945147/make-sure-base-method-gets-called-in-c-sharp

warnif count > 0
from t in Types  // Take account of third-party types too

// Bother only classes with descendant
where t.IsClass && t.NbChildren > 0

from mBase in t.InstanceMethods
where  mBase.IsVirtual &&
      
!mBase.IsThirdParty &&
      
!mBase.IsAbstract && 
      
!mBase.IsExplicitInterfaceImpl
from mOverride in mBase.OverridesDirectDerived
where !mOverride.IsUsing(mBase)
select new { mOverride, shouldCall = mBase, definedInBaseClass = mBase.ParentType }

701 methods matched

methodsshouldCalldefinedInBaseClassFull Name
set_Item(Object,Object)set_Item(Object,Object)SequencedHashMapNHibernate.Util.LRUMap.set_Item(Object,Object)
Add(Object,Object)Add(Object,Object)SequencedHashMapNHibernate.Util.LRUMap.Add(Object,Object)
get_IsAssociationType()get_IsAssociationType()AbstractTypeNHibernate.Type.CollectionType.get_IsAssociationType()
get_IsAssociationType()get_IsAssociationType()AbstractTypeNHibernate.Type.EntityType.get_IsAssociationType()
get_IsAssociationType()get_IsAssociationType()AbstractTypeNHibernate.Type.AnyType.get_IsAssociationType()
get_IsXMLElement()get_IsXMLElement()AbstractTypeNHibernate.Type.EntityType.get_IsXMLElement()
get_IsXMLElement()get_IsXMLElement()AbstractTypeNHibernate.Type.ComponentType.get_IsXMLElement()
get_IsCollectionType()get_IsCollectionType()AbstractTypeNHibernate.Type.CollectionType.get_IsCollectionType()
get_IsCollectionType()get_IsCollectionType()AbstractTypeNHibernate.Type.ComponentType.get_IsCollectionType()
get_IsComponentType()get_IsComponentType()AbstractTypeNHibernate.Type.ComponentType.get_IsComponentType()
get_IsComponentType()get_IsComponentType()AbstractTypeNHibernate.Type.AnyType.get_IsComponentType()
get_IsComponentType()get_IsComponentType()AbstractTypeNHibernate.Type.CompositeCustomType.get_IsComponentType()
get_IsEntityType()get_IsEntityType()AbstractTypeNHibernate.Type.EntityType.get_IsEntityType()
get_IsEntityType()get_IsEntityType()AbstractTypeNHibernate.Type.ComponentType.get_IsEntityType()
Disassemble(Object,ISessionImplementor,Object)Disassemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.CollectionType.Disassemble(Object,ISessionImplementor ,Object)
Disassemble(Object,ISessionImplementor,Object)Disassemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.ComponentType.Disassemble(Object,ISessionImplementor ,Object)
Disassemble(Object,ISessionImplementor,Object)Disassemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.AnyType.Disassemble(Object,ISessionImplementor,Object)
Disassemble(Object,ISessionImplementor,Object)Disassemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.CustomType.Disassemble(Object,ISessionImplementor ,Object)
Disassemble(Object,ISessionImplementor,Object)Disassemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.CompositeCustomType.Disassemble(Object ,ISessionImplementor,Object)
Assemble(Object,ISessionImplementor,Object)Assemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.CollectionType.Assemble(Object,ISessionImplementor ,Object)
Assemble(Object,ISessionImplementor,Object)Assemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.ComponentType.Assemble(Object,ISessionImplementor ,Object)
Assemble(Object,ISessionImplementor,Object)Assemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.AnyType.Assemble(Object,ISessionImplementor,Object)
Assemble(Object,ISessionImplementor,Object)Assemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.CustomType.Assemble(Object,ISessionImplementor,Object)
Assemble(Object,ISessionImplementor,Object)Assemble(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.CompositeCustomType.Assemble(Object ,ISessionImplementor,Object)
IsDirty(Object,Object,ISessionImplementor)IsDirty(Object,Object,ISessionImplementor)AbstractTypeNHibernate.Type.ComponentType.IsDirty(Object,Object ,ISessionImplementor)
Hydrate(IDataReader,String[],ISessionImplementor,Object)Hydrate(IDataReader,String[],ISessionImplementor,Object)AbstractTypeNHibernate.Type.CollectionType.Hydrate(IDataReader,String[] ,ISessionImplementor,Object)
Hydrate(IDataReader,String[],ISessionImplementor,Object)Hydrate(IDataReader,String[],ISessionImplementor,Object)AbstractTypeNHibernate.Type.EntityType.Hydrate(IDataReader,String[] ,ISessionImplementor,Object)
Hydrate(IDataReader,String[],ISessionImplementor,Object)Hydrate(IDataReader,String[],ISessionImplementor,Object)AbstractTypeNHibernate.Type.ComponentType.Hydrate(IDataReader,String[] ,ISessionImplementor,Object)
Hydrate(IDataReader,String[],ISessionImplementor,Object)Hydrate(IDataReader,String[],ISessionImplementor,Object)AbstractTypeNHibernate.Type.AnyType.Hydrate(IDataReader,String[] ,ISessionImplementor,Object)
ResolveIdentifier(Object,ISessionImplementor,Object)ResolveIdentifier(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.CollectionType.ResolveIdentifier(Object ,ISessionImplementor,Object)
ResolveIdentifier(Object,ISessionImplementor,Object)ResolveIdentifier(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.EntityType.ResolveIdentifier(Object ,ISessionImplementor,Object)
ResolveIdentifier(Object,ISessionImplementor,Object)ResolveIdentifier(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.ComponentType.ResolveIdentifier(Object ,ISessionImplementor,Object)
ResolveIdentifier(Object,ISessionImplementor,Object)ResolveIdentifier(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.AnyType.ResolveIdentifier(Object,ISessionImplementor ,Object)
SemiResolve(Object,ISessionImplementor,Object)SemiResolve(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.CollectionType.SemiResolve(Object,ISessionImplementor ,Object)
SemiResolve(Object,ISessionImplementor,Object)SemiResolve(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.ComponentType.SemiResolve(Object,ISessionImplementor ,Object)
SemiResolve(Object,ISessionImplementor,Object)SemiResolve(Object,ISessionImplementor,Object)AbstractTypeNHibernate.Type.AnyType.SemiResolve(Object,ISessionImplementor,Object)
get_IsAnyType()get_IsAnyType()AbstractTypeNHibernate.Type.AnyType.get_IsAnyType()
IsModified(Object,Object,Boolean[],ISessionImplementor)IsModified(Object,Object,Boolean[],ISessionImplementor)AbstractTypeNHibernate.Type.CollectionType.IsModified(Object,Object,Boolean[] ,ISessionImplementor)
IsModified(Object,Object,Boolean[],ISessionImplementor)IsModified(Object,Object,Boolean[],ISessionImplementor)AbstractTypeNHibernate.Type.ComponentType.IsModified(Object,Object,Boolean[] ,ISessionImplementor)
IsModified(Object,Object,Boolean[],ISessionImplementor)IsModified(Object,Object,Boolean[],ISessionImplementor)AbstractTypeNHibernate.Type.AnyType.IsModified(Object,Object,Boolean[] ,ISessionImplementor)
Equals(Object)Equals(Object)AbstractTypeNHibernate.Type.NullableType.Equals(Object)
GetHashCode()GetHashCode()AbstractTypeNHibernate.Type.NullableType.GetHashCode()
GetHashCode()GetHashCode()AbstractTypeNHibernate.Type.AnyType.GetHashCode()
GetHashCode()GetHashCode()AbstractTypeNHibernate.Type.CustomType.GetHashCode()
GetHashCode()GetHashCode()AbstractTypeNHibernate.Type.CompositeCustomType.GetHashCode()
Replace(Object,Object,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection)Replace(Object,Object,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)AbstractTypeNHibernate.Type.ComponentType.Replace(Object,Object ,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
IsSame(Object,Object,EntityMode)IsSame(Object,Object,EntityMode)AbstractTypeNHibernate.Type.EntityType.IsSame(Object,Object,EntityMode)
IsSame(Object,Object,EntityMode)IsSame(Object,Object,EntityMode)AbstractTypeNHibernate.Type.ComponentType.IsSame(Object,Object,EntityMode)
IsSame(Object,Object,EntityMode)IsSame(Object,Object,EntityMode)AbstractTypeNHibernate.Type.AnyType.IsSame(Object,Object,EntityMode)
IsEqual(Object,Object,EntityMode)IsEqual(Object,Object,EntityMode)AbstractTypeNHibernate.Type.CollectionType.IsEqual(Object,Object,EntityMode)
IsEqual(Object,Object,EntityMode)IsEqual(Object,Object,EntityMode)AbstractTypeNHibernate.Type.NullableType.IsEqual(Object,Object,EntityMode)
IsEqual(Object,Object,EntityMode)IsEqual(Object,Object,EntityMode)AbstractTypeNHibernate.Type.ComponentType.IsEqual(Object,Object,EntityMode)
IsEqual(Object,Object,EntityMode)IsEqual(Object,Object,EntityMode)AbstractTypeNHibernate.Type.CustomType.IsEqual(Object,Object,EntityMode)
IsEqual(Object,Object,EntityMode)IsEqual(Object,Object,EntityMode)AbstractTypeNHibernate.Type.CompositeCustomType.IsEqual(Object,Object,EntityMode)
IsEqual(Object,Object,EntityMode,ISessionFactoryImplementor)IsEqual(Object,Object,EntityMode,ISessionFactoryImplementor)AbstractTypeNHibernate.Type.EntityType.IsEqual(Object,Object,EntityMode ,ISessionFactoryImplementor)
IsEqual(Object,Object,EntityMode,ISessionFactoryImplementor)IsEqual(Object,Object,EntityMode,ISessionFactoryImplementor)AbstractTypeNHibernate.Type.ComponentType.IsEqual(Object,Object,EntityMode ,ISessionFactoryImplementor)
GetHashCode(Object,EntityMode)GetHashCode(Object,EntityMode)AbstractTypeNHibernate.Type.CollectionType.GetHashCode(Object,EntityMode)
GetHashCode(Object,EntityMode)GetHashCode(Object,EntityMode)AbstractTypeNHibernate.Type.ComponentType.GetHashCode(Object,EntityMode)
GetHashCode(Object,EntityMode)GetHashCode(Object,EntityMode)AbstractTypeNHibernate.Type.CustomType.GetHashCode(Object,EntityMode)
GetHashCode(Object,EntityMode,ISessionFactoryImplementor)GetHashCode(Object,EntityMode,ISessionFactoryImplementor)AbstractTypeNHibernate.Type.EntityType.GetHashCode(Object,EntityMode ,ISessionFactoryImplementor)
GetHashCode(Object,EntityMode,ISessionFactoryImplementor)GetHashCode(Object,EntityMode,ISessionFactoryImplementor)AbstractTypeNHibernate.Type.ComponentType.GetHashCode(Object,EntityMode ,ISessionFactoryImplementor)
Compare(Object,Object,Nullable<EntityMode>)Compare(Object,Object,Nullable<EntityMode>)AbstractTypeNHibernate.Type.CollectionType.Compare(Object,Object,Nullable <EntityMode>)
Compare(Object,Object,Nullable<EntityMode>)Compare(Object,Object,Nullable<EntityMode>)AbstractTypeNHibernate.Type.EntityType.Compare(Object,Object,Nullable<EntityMode>)
Compare(Object,Object,Nullable<EntityMode>)Compare(Object,Object,Nullable<EntityMode>)AbstractTypeNHibernate.Type.ComponentType.Compare(Object,Object,Nullable <EntityMode>)
Compare(Object,Object,Nullable<EntityMode>)Compare(Object,Object,Nullable<EntityMode>)AbstractTypeNHibernate.Type.AnyType.Compare(Object,Object,Nullable<EntityMode>)
GetSemiResolvedType(ISessionFactoryImplementor)GetSemiResolvedType(ISessionFactoryImplementor)AbstractTypeNHibernate.Type.EntityType.GetSemiResolvedType (ISessionFactoryImplementor)
ToLoggableString(Object,ISessionFactoryImplementor)ToLoggableString(Object,ISessionFactoryImplementor)CollectionTypeNHibernate.Type.ArrayType.ToLoggableString(Object ,ISessionFactoryImplementor)
get_IsArrayType()get_IsArrayType()CollectionTypeNHibernate.Type.ArrayType.get_IsArrayType()
InstantiateResult(Object)InstantiateResult(Object)CollectionTypeNHibernate.Type.ArrayType.InstantiateResult(Object)
ReplaceElements(Object,Object,Object,IDictionary,ISessionImplementor)ReplaceElements(Object,Object,Object,IDictionary,ISessionImplementor)CollectionTypeNHibernate.Type.ArrayType.ReplaceElements(Object,Object,Object ,IDictionary,ISessionImplementor)
ReplaceElements(Object,Object,Object,IDictionary,ISessionImplementor)ReplaceElements(Object,Object,Object,IDictionary,ISessionImplementor)CollectionTypeNHibernate.Type.MapType.ReplaceElements(Object,Object,Object ,IDictionary,ISessionImplementor)
ReplaceElements(Object,Object,Object,IDictionary,ISessionImplementor)ReplaceElements(Object,Object,Object,IDictionary,ISessionImplementor)CollectionTypeNHibernate.Type.CustomCollectionType.ReplaceElements(Object,Object ,Object,IDictionary,ISessionImplementor)
Clear(Object)Clear(Object)CollectionTypeNHibernate.Type.IdentifierBagType.Clear(Object)
Clear(Object)Clear(Object)CollectionTypeNHibernate.Type.BagType.Clear(Object)
Clear(Object)Clear(Object)CollectionTypeNHibernate.Type.ListType.Clear(Object)
Clear(Object)Clear(Object)CollectionTypeNHibernate.Type.MapType.Clear(Object)
Clear(Object)Clear(Object)CollectionTypeNHibernate.Type.SetType.Clear(Object)
Add(Object,Object)Add(Object,Object)CollectionTypeNHibernate.Type.IdentifierBagType.Add(Object,Object)
Add(Object,Object)Add(Object,Object)CollectionTypeNHibernate.Type.BagType.Add(Object,Object)
Add(Object,Object)Add(Object,Object)CollectionTypeNHibernate.Type.ListType.Add(Object,Object)
Add(Object,Object)Add(Object,Object)CollectionTypeNHibernate.Type.MapType.Add(Object,Object)
Add(Object,Object)Add(Object,Object)CollectionTypeNHibernate.Type.SetType.Add(Object,Object)
Contains(Object,Object,ISessionImplementor)Contains(Object,Object,ISessionImplementor)CollectionTypeNHibernate.Type.CustomCollectionType.Contains(Object,Object ,ISessionImplementor)
GetElementsIterator(Object)GetElementsIterator(Object)CollectionTypeNHibernate.Type.ArrayType.GetElementsIterator(Object)
GetElementsIterator(Object)GetElementsIterator(Object)CollectionTypeNHibernate.Type.MapType.GetElementsIterator(Object)
GetElementsIterator(Object)GetElementsIterator(Object)CollectionTypeNHibernate.Type.CustomCollectionType.GetElementsIterator(Object)
HasHolder(EntityMode)HasHolder(EntityMode)CollectionTypeNHibernate.Type.ArrayType.HasHolder(EntityMode)
InitializeImmediately(EntityMode)InitializeImmediately(EntityMode)CollectionTypeNHibernate.Type.ArrayType.InitializeImmediately(EntityMode)
IndexOf(Object,Object)IndexOf(Object,Object)CollectionTypeNHibernate.Type.ArrayType.IndexOf(Object,Object)
IndexOf(Object,Object)IndexOf(Object,Object)CollectionTypeNHibernate.Type.ListType.IndexOf(Object,Object)
IndexOf(Object,Object)IndexOf(Object,Object)CollectionTypeNHibernate.Type.MapType.IndexOf(Object,Object)
IndexOf(Object,Object)IndexOf(Object,Object)CollectionTypeNHibernate.Type.CustomCollectionType.IndexOf(Object,Object)
Instantiate(ISessionImplementor,ICollectionPersister,Object)Instantiate(ISessionImplementor,ICollectionPersister,Object)IdentifierBagTypeNHibernate.Type.GenericIdentifierBagType<T>.Instantiate (ISessionImplementor,ICollectionPersister,Object)
get_ReturnedClass()get_ReturnedClass()IdentifierBagTypeNHibernate.Type.GenericIdentifierBagType<T>.get_ReturnedClass()
Wrap(ISessionImplementor,Object)Wrap(ISessionImplementor,Object)IdentifierBagTypeNHibernate.Type.GenericIdentifierBagType<T>.Wrap(ISessionImplementor ,Object)
Instantiate(Int32)Instantiate(Int32)IdentifierBagTypeNHibernate.Type.GenericIdentifierBagType<T>.Instantiate(Int32)
IsNull(Object,ISessionImplementor)IsNull(Object,ISessionImplementor)EntityTypeNHibernate.Type.OneToOneType.IsNull(Object,ISessionImplementor)
get_PropertyName()get_PropertyName()EntityTypeNHibernate.Type.OneToOneType.get_PropertyName()
ToString(Object)ToString(Object)PrimitiveTypeNHibernate.Type.TimestampType.ToString(Object)
ToString(Object)ToString(Object)PrimitiveTypeNHibernate.Type.DateTimeOffsetType.ToString(Object)

Statistics

Stat   shouldCall   definedInBaseClass
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: A stateless class or structure might be turned into a static type
// <Name>A stateless class or structure might be turned into a static type</Name>
// This rule indicates stateless types that might 
// eventually be turned into static classes.
warnif count > 0 from t in JustMyCode.Types where
  
!t.IsStatic &&                  
  
!t.IsGeneric &&
   
t.InstanceFields.Count() == 0 &&

   
// Don't match:
   // --> types that implement some interfaces.
   t.NbInterfacesImplemented == 0 &&

   
// --> or classes that have sub-classes children.                            
   t.NbChildren == 0 &&

   
// --> or classes that have a base class
   ((t.IsClass && t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1) ||
     
t.IsStructure) 

   
select t  

45 types matched

typesFull Name
CollectionHelperNHibernate.Util.CollectionHelper
ObjectUtilsNHibernate.Util.ObjectUtils
ObjectUtils+NullClassNHibernate.Util.ObjectUtils+NullClass
CollectionPrinterNHibernate.Util.CollectionPrinter
ADOExceptionReporterNHibernate.Util.ADOExceptionReporter
SerializationHelperNHibernate.Util.SerializationHelper
TypeFactoryNHibernate.Type.TypeFactory
PropertyAccessorFactoryNHibernate.Properties.PropertyAccessorFactory
MessageHelperNHibernate.Impl.MessageHelper
TransformersNHibernate.Transform.Transformers
TemplateNHibernate.SqlCommand.Template
ConnectionProviderFactoryNHibernate.Connection.ConnectionProviderFactory
PropertyFactoryNHibernate.Tuple.PropertyFactory
PersisterFactoryNHibernate.Persister.PersisterFactory
CollectionPropertyNamesNHibernate.Persister.Collection.CollectionPropertyNames
RestrictionExtensions+RestrictionBetweenBuilderNHibernate.Criterion.RestrictionExtensions+RestrictionBetweenBuilder
SubqueriesNHibernate.Criterion.Subqueries
ProjectionsNHibernate.Criterion.Projections
NameGeneratorNHibernate.Hql.NameGenerator
QuerySplitterNHibernate.Hql.QuerySplitter
CollectionSubqueryFactoryNHibernate.Hql.CollectionSubqueryFactory
ParserHelperNHibernate.Hql.Classic.ParserHelper
ASTPrinterNHibernate.Hql.Ast.ANTLR.Util.ASTPrinter
ColumnHelperNHibernate.Hql.Ast.ANTLR.Util.ColumnHelper
NHibernateProxyHelperNHibernate.Proxy.NHibernateProxyHelper
TimestamperNHibernate.Cache.Timestamper
IdentifierGeneratorFactoryNHibernate.Id.IdentifierGeneratorFactory
OptimizerFactoryNHibernate.Id.Enhanced.OptimizerFactory
XmlSchemasNHibernate.Cfg.XmlSchemas
ClassExtractorNHibernate.Cfg.ClassExtractor
SettingsFactoryNHibernate.Cfg.SettingsFactory
HbmConstantsNHibernate.Cfg.HbmConstants
FilterDefinitionFactoryNHibernate.Cfg.XmlHbmBinding.FilterDefinitionFactory
AuxiliaryDatabaseObjectFactoryNHibernate.Cfg.XmlHbmBinding.AuxiliaryDatabaseObjectFactory
EmitUtilNHibernate.Bytecode.EmitUtil
AggregatingGroupJoinRewriterNHibernate.Linq.GroupJoin.AggregatingGroupJoinRewriter
LinqToHqlGeneratorsRegistryFactoryNHibernate.Linq.Functions.LinqToHqlGeneratorsRegistryFactory
AggregatingGroupByRewriterNHibernate.Linq.GroupBy.AggregatingGroupByRewriter
NonAggregatingGroupByRewriterNHibernate.Linq.GroupBy.NonAggregatingGroupByRewriter
VersioningNHibernate.Engine.Versioning
JoinHelperNHibernate.Engine.JoinHelper
UnsavedValueFactoryNHibernate.Engine.UnsavedValueFactory
IsolaterNHibernate.Engine.Transaction.Isolater
ParameterParserNHibernate.Engine.Query.ParameterParser
ExpectationsNHibernate.AdoNet.Expectations

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Non-static classes should be instantiated or turned to static
// <Name>Non-static classes should be instantiated or turned to static</Name>
// Notice that classes only instantiated through reflection, like plug-in root classes
// are matched by this rules.
warnif count > 0
from t in JustMyCode.Types
where  t.IsClass &&
    
//!t.IsPublic &&   // if you are developping a framework, 
                       // you might not want to match public classes
      !t.IsStatic && 
      
!t.IsAttributeClass && // Attributes class are never seen as instantiated
      !t.DeriveFrom("System.MarshalByRefObject".AllowNoMatch()) // Types instantiated through remoting infrstructure
       
// find the first constructor of t called
let ctorCalled = t.Constructors.FirstOrDefault(ctor => ctor.NbMethodsCallingMe > 0)

// match t if none of its constructors is called.
where ctorCalled == null
select new { t, t.Visibility }

158 types matched

typesVisibilityFull Name
Log4NetLoggerFactoryPublicNHibernate.Log4NetLoggerFactory
LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>ProtectedNHibernate.Util.LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>
CollectionHelperPublicNHibernate.Util.CollectionHelper
ObjectUtilsPublicNHibernate.Util.ObjectUtils
CollectionPrinterPublicNHibernate.Util.CollectionPrinter
ADOExceptionReporterPublicNHibernate.Util.ADOExceptionReporter
SerializationHelperPublicNHibernate.Util.SerializationHelper
DefaultCollectionTypeFactoryPublicNHibernate.Type.DefaultCollectionTypeFactory
EnumType<T>PublicNHibernate.Type.EnumType<T>
EnumStringType<T>PublicNHibernate.Type.EnumStringType<T>
EnumCharType<T>PublicNHibernate.Type.EnumCharType<T>
PropertyAccessorFactoryPublicNHibernate.Properties.PropertyAccessorFactory
IndexPropertyAccessor+IndexSetterPublicNHibernate.Properties.IndexPropertyAccessor+IndexSetter
IndexPropertyAccessor+IndexGetterPublicNHibernate.Properties.IndexPropertyAccessor+IndexGetter
IndexBackrefPublicNHibernate.Mapping.IndexBackref
BackrefPublicNHibernate.Mapping.Backref
ConstraintViolationExceptionPublicNHibernate.Exceptions.ConstraintViolationException
DataExceptionPublicNHibernate.Exceptions.DataException
LockAcquisitionExceptionPublicNHibernate.Exceptions.LockAcquisitionException
SQLGrammarExceptionPublicNHibernate.Exceptions.SQLGrammarException
ADOConnectionExceptionPublicNHibernate.Exceptions.ADOConnectionException
ValidationFailurePublicNHibernate.Classic.ValidationFailure
OracleLiteDataClientDriverPublicNHibernate.Driver.OracleLiteDataClientDriver
OleDbDriverPublicNHibernate.Driver.OleDbDriver
MySqlDataDriverPublicNHibernate.Driver.MySqlDataDriver
ASAClientDriverPublicNHibernate.Driver.ASAClientDriver
OracleDataClientDriverPublicNHibernate.Driver.OracleDataClientDriver
FirebirdDriverPublicNHibernate.Driver.FirebirdDriver
NpgsqlDriverPublicNHibernate.Driver.NpgsqlDriver
CsharpSqliteDriverPublicNHibernate.Driver.CsharpSqliteDriver
IngresDriverPublicNHibernate.Driver.IngresDriver
SQLite20DriverPublicNHibernate.Driver.SQLite20Driver
FirebirdClientDriverPublicNHibernate.Driver.FirebirdClientDriver
OdbcDriverPublicNHibernate.Driver.OdbcDriver
SqlServerCeDriverPublicNHibernate.Driver.SqlServerCeDriver
IfxDriverPublicNHibernate.Driver.IfxDriver
ASA10ClientDriverPublicNHibernate.Driver.ASA10ClientDriver
SQLiteDriverPublicNHibernate.Driver.SQLiteDriver
DB2400DriverPublicNHibernate.Driver.DB2400Driver
SqlClientDriverPublicNHibernate.Driver.SqlClientDriver
OracleClientDriverPublicNHibernate.Driver.OracleClientDriver
DB2DriverPublicNHibernate.Driver.DB2Driver
MessageHelperPublicNHibernate.Impl.MessageHelper
TransformersPublicNHibernate.Transform.Transformers
TemplatePublicNHibernate.SqlCommand.Template
WhereBuilderPublicNHibernate.SqlCommand.WhereBuilder
ThreadLocalSessionContextPublicNHibernate.Context.ThreadLocalSessionContext
AdoNetWithDistrubtedTransactionFactoryPublicNHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory
ConnectionProviderFactoryPublicNHibernate.Connection.ConnectionProviderFactory
DictionaryProxyPublicNHibernate.DebugHelpers.DictionaryProxy
DictionaryProxy<K,V>PublicNHibernate.DebugHelpers.DictionaryProxy<K,V>
CollectionProxyPublicNHibernate.DebugHelpers.CollectionProxy
CollectionProxy<T>PublicNHibernate.DebugHelpers.CollectionProxy<T>
PropertyFactoryPublicNHibernate.Tuple.PropertyFactory
DB2400DialectPublicNHibernate.Dialect.DB2400Dialect
PostgreSQL82DialectPublicNHibernate.Dialect.PostgreSQL82Dialect
Oracle10gDialectPublicNHibernate.Dialect.Oracle10gDialect
MySQL5DialectPublicNHibernate.Dialect.MySQL5Dialect
SybaseASA10DialectPublicNHibernate.Dialect.SybaseASA10Dialect
FirebirdDialectPublicNHibernate.Dialect.FirebirdDialect
MsSql2008DialectPublicNHibernate.Dialect.MsSql2008Dialect
SQLiteDialectPublicNHibernate.Dialect.SQLiteDialect
OracleLiteDialectPublicNHibernate.Dialect.OracleLiteDialect
SybaseSQLAnywhere11DialectPublicNHibernate.Dialect.SybaseSQLAnywhere11Dialect
IngresDialectPublicNHibernate.Dialect.IngresDialect
MsSql7DialectPublicNHibernate.Dialect.MsSql7Dialect
InformixDialect1000PublicNHibernate.Dialect.InformixDialect1000
MsSqlCe40DialectPublicNHibernate.Dialect.MsSqlCe40Dialect
CharIndexFunctionPublicNHibernate.Dialect.Function.CharIndexFunction
ClassicCountFunctionPublicNHibernate.Dialect.Function.ClassicCountFunction
ClassicAvgFunctionPublicNHibernate.Dialect.Function.ClassicAvgFunction
ClassicSumFunctionPublicNHibernate.Dialect.Function.ClassicSumFunction
UpdateLockingStrategyPublicNHibernate.Dialect.Lock.UpdateLockingStrategy
PersisterFactoryPublicNHibernate.Persister.PersisterFactory
CollectionPropertyNamesPublicNHibernate.Persister.Collection.CollectionPropertyNames
RestrictionExtensions+RestrictionBetweenBuilderPublicNHibernate.Criterion.RestrictionExtensions+RestrictionBetweenBuilder
SubqueriesPublicNHibernate.Criterion.Subqueries
ExpressionPublicNHibernate.Criterion.Expression
ProjectionsPublicNHibernate.Criterion.Projections
QueryOverSubqueryPropertyBuilder<TRoot,TSubType>PublicNHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilder<TRoot ,TSubType>
IQueryOverSubqueryPropertyBuilder<TRoot,TSubType>PublicNHibernate.Criterion.Lambda.IQueryOverSubqueryPropertyBuilder<TRoot ,TSubType>
NameGeneratorPublicNHibernate.Hql.NameGenerator
QuerySplitterPublicNHibernate.Hql.QuerySplitter
CollectionSubqueryFactoryPublicNHibernate.Hql.CollectionSubqueryFactory
ClassicQueryTranslatorFactoryPublicNHibernate.Hql.Classic.ClassicQueryTranslatorFactory
ParserHelperPublicNHibernate.Hql.Classic.ParserHelper
HqlAsPublicNHibernate.Hql.Ast.HqlAs
DetailedSemanticExceptionPublicNHibernate.Hql.Ast.ANTLR.DetailedSemanticException
ColumnHelperPublicNHibernate.Hql.Ast.ANTLR.Util.ColumnHelper
NHibernateProxyHelperPublicNHibernate.Proxy.NHibernateProxyHelper
HashtableCacheProviderPublicNHibernate.Cache.HashtableCacheProvider
TimestamperPublicNHibernate.Cache.Timestamper
CacheExceptionPublicNHibernate.Cache.CacheException
StandardQueryCacheFactoryPublicNHibernate.Cache.StandardQueryCacheFactory
IdentifierGeneratorFactoryPublicNHibernate.Id.IdentifierGeneratorFactory
SequenceHiLoGeneratorPublicNHibernate.Id.SequenceHiLoGenerator
TriggerIdentityGeneratorPublicNHibernate.Id.TriggerIdentityGenerator
NativeGuidGeneratorPublicNHibernate.Id.NativeGuidGenerator
AssignedPublicNHibernate.Id.Assigned
SequenceIdentityGeneratorPublicNHibernate.Id.SequenceIdentityGenerator

Statistics

Stat   Visibility
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Methods should be declared static if possible
// <Name>Methods should be declared static if possible</Name>
warnif count > 0

// When an instance method can be safely declared as static you should declare it as static.
// Since it doesn't use any instance data and method of its type and base-types,
// you should consider if such a method could be moved to a static utility class
// or if it is strongly related enough to its current declaring type to stay in it.
//
// Turning an instance method into a static method is a micro performance optimization
// since a static method is a bit cheaper to invoke than an instance method.

from t in JustMyCode.Types.Where(t =>
   
!t.IsStatic && !t.IsInterface &&
   
!t.IsEnumeration && !t.IsDelegate &&
   
!t.IsGeneratedByCompiler)

let methodsThatCanBeMadeStatic = 
   
from m in t.InstanceMethods

   
// An instance method can be turned to static if it is not virtual, 
   // not using the this reference and also, not using
   // any of its class or base classes instance fields or instance methods.
   where !m.IsAbstract && !m.IsVirtual &&
         
!m.AccessThis && !m.IsExplicitInterfaceImpl &&

          
// Optimization: Using FirstOrDefault() avoid do check all members, 
          //               as soon as one member is found
          //               we know the method m cannot be made static.
          m.MembersUsed.FirstOrDefault(
              
mUsed => !mUsed.IsStatic && 
                       
(mUsed.ParentType == t || 
                        
t.DeriveFrom(mUsed.ParentType))
          
) == null 
   
select m

from m in methodsThatCanBeMadeStatic
let staticFieldsUsed = m.ParentType.StaticFields.UsedBy(m).Where(f => !f.IsGeneratedByCompiler)
select new { m, staticFieldsUsed }

129 methods matched

methodsstaticFieldsUsedFull Name
RemoveEntry(SequencedHashMap+Entry)0 fieldNHibernate.Util.SequencedHashMap.RemoveEntry(SequencedHashMap+Entry)
ProcessRemovedLRU(Object,Object)0 fieldNHibernate.Util.LRUMap.ProcessRemovedLRU(Object,Object)
Equals(ForeignKeyDirection+ForeignKeyFromParentClass)0 fieldNHibernate.Type.ForeignKeyDirection+ForeignKeyFromParentClass.Equals (ForeignKeyDirection+ForeignKeyFromParentClass)
Equals(ForeignKeyDirection+ForeignKeyToParentClass)0 fieldNHibernate.Type.ForeignKeyDirection+ForeignKeyToParentClass.Equals (ForeignKeyDirection+ForeignKeyToParentClass)
StringToObject(String)0 fieldNHibernate.Type.TimestampType.StringToObject(String)
GetReferencedColumns(ISessionFactoryImplementor)0 fieldNHibernate.Type.AnyType.GetReferencedColumns (ISessionFactoryImplementor)
get_ReferenceToPrimaryKey()0 fieldNHibernate.Type.AnyType.get_ReferenceToPrimaryKey()
ResolveAny(String,Object,ISessionImplementor)0 fieldNHibernate.Type.AnyType.ResolveAny(String,Object,ISessionImplementor)
get_Comparator()0 fieldNHibernate.Type.SByteType.get_Comparator()
StringToObject(String)0 fieldNHibernate.Type.TimeAsTimeSpanType.StringToObject(String)
FromXMLString(String,IMapping)0 fieldNHibernate.Type.ClassMetaType.FromXMLString(String,IMapping)
ToXMLString(Object,ISessionFactoryImplementor)0 fieldNHibernate.Type.ClassMetaType.ToXMLString(Object ,ISessionFactoryImplementor)
ToBytes(Object)0 fieldNHibernate.Type.SerializableType.ToBytes(Object)
FromBytes(Byte[])0 fieldNHibernate.Type.SerializableType.FromBytes(Byte[])
StringToObject(String)0 fieldNHibernate.Type.TicksType.StringToObject(String)
get_CollectionTypeFactory()0 fieldNHibernate.Type.TypeFactory.get_CollectionTypeFactory()
FromXMLString(String,IMapping)0 fieldNHibernate.Type.MetaType.FromXMLString(String,IMapping)
ToXMLString(Object,ISessionFactoryImplementor)0 fieldNHibernate.Type.MetaType.ToXMLString(Object,ISessionFactoryImplementor )
StringToObject(String)0 fieldNHibernate.Type.TimeSpanType.StringToObject(String)
Alternate(Char)0 fieldNHibernate.Type.EnumCharType<T>.Alternate(Char)
CheckColumnDuplication(ISet<String>,IEnumerable<ISelectable>)0 fieldNHibernate.Mapping.PersistentClass.CheckColumnDuplication(ISet<String> ,IEnumerable<ISelectable>)
get_Formula()0 fieldNHibernate.Mapping.Collection.get_Formula()
get_IsUnique()0 fieldNHibernate.Mapping.Collection.get_IsUnique()
SetTypeUsingReflection(String,String)0 fieldNHibernate.Mapping.DependantValue.SetTypeUsingReflection(String,String )
get_Formula()0 fieldNHibernate.Mapping.OneToMany.get_Formula()
get_IsUnique()0 fieldNHibernate.Mapping.OneToMany.get_IsUnique()
ExtractUsingTemplate(String,String,String)0 fieldNHibernate.Exceptions.TemplatedViolatedConstraintNameExtracter .ExtractUsingTemplate(String,String,String)
AffectedEntity(ISet<String>,String[])0 fieldNHibernate.Action.BulkOperationCleanupAction.AffectedEntity(ISet <String>,String[])
GetTransformedResults(IList,HolderInstantiator)0 fieldNHibernate.Impl.MultiQueryImpl.GetTransformedResults(IList ,HolderInstantiator)
ThrowNotSupportedIfSqlQuery(IQuery)0 fieldNHibernate.Impl.MultiQueryImpl.ThrowNotSupportedIfSqlQuery(IQuery)
AddCondition(SqlStringBuilder,String)0 fieldNHibernate.SqlCommand.JoinFragment.AddCondition(SqlStringBuilder ,String)
AddCondition(SqlStringBuilder,SqlString)0 fieldNHibernate.SqlCommand.JoinFragment.AddCondition(SqlStringBuilder ,SqlString)
ToWhereString(String,String[],String)0 fieldNHibernate.SqlCommand.SqlBaseBuilder.ToWhereString(String,String[] ,String)
ToWhereString(String,String)0 fieldNHibernate.SqlCommand.SqlBaseBuilder.ToWhereString(String,String)
get_CommandType()0 fieldNHibernate.SqlCommand.SqlCommandInfo.get_CommandType()
Wrap(ISession)0 fieldNHibernate.Context.ThreadLocalSessionContext.Wrap(ISession)
NeedsWrapping(ISession)0 fieldNHibernate.Context.ThreadLocalSessionContext.NeedsWrapping(ISession)
CloseIfRequired()0 fieldNHibernate.Transaction.AdoTransaction.CloseIfRequired()
get_ElementCountInMemory()0 fieldNHibernate.Stat.SecondLevelCacheStatistics.get_ElementCountInMemory()
get_ElementCountOnDisk()0 fieldNHibernate.Stat.SecondLevelCacheStatistics.get_ElementCountOnDisk()
get_SizeInMemory()0 fieldNHibernate.Stat.SecondLevelCacheStatistics.get_SizeInMemory()
get_Entries()0 fieldNHibernate.Stat.SecondLevelCacheStatistics.get_Entries()
BuildComponentTuplizer(String,Component)1 fieldNHibernate.Tuple.Component.ComponentEntityModeToTuplizerMapping .BuildComponentTuplizer(String,Component)
BuildPropertyAccessor(Property)0 fieldNHibernate.Tuple.Component.DynamicMapComponentTuplizer .BuildPropertyAccessor(Property)
BuildPropertyAccessor(Property)0 fieldNHibernate.Tuple.Entity.DynamicMapEntityTuplizer.BuildPropertyAccessor (Property)
ExtractColumnOrAliasNames(SqlString)0 fieldNHibernate.Dialect.Oracle8iDialect.ExtractColumnOrAliasNames(SqlString )
NeedsLockHint(LockMode)0 fieldNHibernate.Dialect.MsSql2000Dialect.NeedsLockHint(LockMode)
GetAfterSelectInsertPoint(SqlString)0 fieldNHibernate.Dialect.MsSql2005Dialect.GetAfterSelectInsertPoint (SqlString)
RegisterReverseNHibernateTypeMappings()0 fieldNHibernate.Dialect.SybaseSQLAnywhere10Dialect .RegisterReverseNHibernateTypeMappings()
get_ForReadOnlyString()0 fieldNHibernate.Dialect.SybaseSQLAnywhere10Dialect.get_ForReadOnlyString()
get_ForUpdateByLockString()0 fieldNHibernate.Dialect.SybaseSQLAnywhere10Dialect .get_ForUpdateByLockString()
GetFirstLimitParameterCount(Dialect,Boolean,Boolean,Boolean)0 fieldNHibernate.Loader.Loader.GetFirstLimitParameterCount(Dialect,Boolean ,Boolean,Boolean)
SetMaxRows(IDbCommand,RowSelection)0 fieldNHibernate.Loader.Loader.SetMaxRows(IDbCommand,RowSelection)
GetJoinType(Boolean,Int32)0 fieldNHibernate.Loader.JoinWalker.GetJoinType(Boolean,Int32)
MergeOrderings(SqlString,SqlString)0 fieldNHibernate.Loader.JoinWalker.MergeOrderings(SqlString,SqlString)
OrderBy(IList<OuterJoinableAssociation>)0 fieldNHibernate.Loader.JoinWalker.OrderBy(IList<OuterJoinableAssociation>)
ProcessScalarReturn(NativeSQLQueryScalarReturn)0 fieldNHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor .ProcessScalarReturn(NativeSQLQueryScalarReturn)
Filter(IDictionary<String,String[]>)0 fieldNHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.Filter (IDictionary<String,String[]>)
HasNonIdentifierPropertyNamedId(EntityType,IMapping)0 fieldNHibernate.Persister.Entity.AbstractPropertyMapping .HasNonIdentifierPropertyNamedId(EntityType,IMapping)
get_DiscriminatorFormula()0 fieldNHibernate.Persister.Entity.UnionSubclassEntityPersister .get_DiscriminatorFormula()
And(Object)0 fieldNHibernate.Criterion.RestrictionExtensions+RestrictionBetweenBuilder .And(Object)
GetQueryableCollection(String,String,ISessionFactoryImplementor)0 fieldNHibernate.Criterion.AbstractEmptinessExpression .GetQueryableCollection(String,String,ISessionFactoryImplementor)
As<S>()0 fieldNHibernate.Criterion.QueryOver<TRoot>.As<S>()
InitializeCyclicDFAs()0 fieldNHibernate.Hql.Ast.ANTLR.HqlParser.InitializeCyclicDFAs()
InitializeCyclicDFAs()0 fieldNHibernate.Hql.Ast.ANTLR.HqlSqlWalker.InitializeCyclicDFAs()
HasPhysicalDiscriminatorColumn(IQueryable)0 fieldNHibernate.Hql.Ast.ANTLR.SessionFactoryHelperExtensions .HasPhysicalDiscriminatorColumn(IQueryable)
get_IsStrictJPAQLComplianceEnabled()0 fieldNHibernate.Hql.Ast.ANTLR.SessionFactoryHelperExtensions .get_IsStrictJPAQLComplianceEnabled()
ShowAsString(IASTNode,String)0 fieldNHibernate.Hql.Ast.ANTLR.Util.ASTPrinter.ShowAsString(IASTNode,String)
DetermineIntegerRepresentation(String,Int32)1 fieldNHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor .DetermineIntegerRepresentation(String,Int32)
SetSQLValue(DotNode,String,String)1 fieldNHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor.SetSQLValue(DotNode ,String,String)
AreSame(String,String)0 fieldNHibernate.Hql.Ast.ANTLR.Tree.DotNode.AreSame(String,String)
GenerateIdSubselect(IQueryable)0 fieldNHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor .GenerateIdSubselect(IQueryable)
IsUnlockable(ISoftLock,ReadWriteCache+ILockable)0 fieldNHibernate.Cache.ReadWriteCache.IsUnlockable(ISoftLock ,ReadWriteCache+ILockable)
get_Count()1 fieldNHibernate.Id.CounterGenerator.get_Count()
DetermineGeneratedIdentifier(ISessionImplementor,Object)0 fieldNHibernate.Id.IdentityGenerator+InsertSelectDelegate .DetermineGeneratedIdentifier(ISessionImplementor,Object)
GenerateComb()0 fieldNHibernate.Id.GuidCombGenerator.GenerateComb()
GetListenerClassFor(ListenerType)1 fieldNHibernate.Event.EventListeners.GetListenerClassFor(ListenerType)
Reassociate(AbstractEvent,Object,Object,IEntityPersister)1 fieldNHibernate.Event.Default.AbstractReassociateEventListener.Reassociate (AbstractEvent,Object,Object,IEntityPersister)
MarkInterceptorDirty(Object,IEntityPersister,IEventSource)0 fieldNHibernate.Event.Default.AbstractSaveEventListener .MarkInterceptorDirty(Object,IEntityPersister,IEventSource)
CascadeOnUpdate(SaveOrUpdateEvent,IEntityPersister,Object)0 fieldNHibernate.Event.Default.DefaultSaveOrUpdateEventListener .CascadeOnUpdate(SaveOrUpdateEvent,IEntityPersister,Object)
InitializeCollectionFromCache(Object,ICollectionPersister ,IPersistentCollection,ISessionImplementor)1 fieldNHibernate.Event.Default.DefaultInitializeCollectionEventListener .InitializeCollectionFromCache(Object,ICollectionPersister ,IPersistentCollection,ISessionImplementor)
IncludeProperty(Object[],Int32)0 fieldNHibernate.Event.Default.AbstractVisitor.IncludeProperty(Object[] ,Int32)
CreateProxyIfNecessary(LoadEvent,IEntityPersister,EntityKey,LoadType ,IPersistenceContext)1 fieldNHibernate.Event.Default.DefaultLoadEventListener .CreateProxyIfNecessary(LoadEvent,IEntityPersister,EntityKey,LoadType ,IPersistenceContext)
AssembleCacheEntry(CacheEntry,Object,IEntityPersister,LoadEvent)1 fieldNHibernate.Event.Default.DefaultLoadEventListener.AssembleCacheEntry (CacheEntry,Object,IEntityPersister,LoadEvent)
FlushCollections(IEventSource)1 fieldNHibernate.Event.Default.AbstractFlushingEventListener .FlushCollections(IEventSource)
FlushEntities(FlushEvent)1 fieldNHibernate.Event.Default.AbstractFlushingEventListener.FlushEntities (FlushEvent)
PrepareCollectionFlushes(ISessionImplementor)1 fieldNHibernate.Event.Default.AbstractFlushingEventListener .PrepareCollectionFlushes(ISessionImplementor)
FlushIsReallyNeeded(AutoFlushEvent,IEventSource)0 fieldNHibernate.Event.Default.DefaultAutoFlushEventListener .FlushIsReallyNeeded(AutoFlushEvent,IEventSource)
FlushMightBeNeeded(ISessionImplementor)0 fieldNHibernate.Event.Default.DefaultAutoFlushEventListener .FlushMightBeNeeded(ISessionImplementor)
CascadeOnLock(LockEvent,IEntityPersister,Object)0 fieldNHibernate.Event.Default.DefaultLockEventListener.CascadeOnLock (LockEvent,IEntityPersister,Object)
MarkInterceptorDirty(Object,Object)0 fieldNHibernate.Event.Default.DefaultMergeEventListener .MarkInterceptorDirty(Object,Object)
CreateDeletedState(IEntityPersister,Object[],IEventSource)0 fieldNHibernate.Event.Default.DefaultDeleteEventListener.CreateDeletedState (IEntityPersister,Object[],IEventSource)
CascadeAfterReplicate(Object,IEntityPersister,ReplicationMode ,IEventSource)0 fieldNHibernate.Event.Default.DefaultReplicateEventListener .CascadeAfterReplicate(Object,IEntityPersister,ReplicationMode ,IEventSource)
CheckNaturalId(IEntityPersister,EntityEntry,Object[],Object[] ,EntityMode,ISessionImplementor)0 fieldNHibernate.Event.Default.DefaultFlushEntityEventListener .CheckNaturalId(IEntityPersister,EntityEntry,Object[],Object[] ,EntityMode,ISessionImplementor)
WrapCollections(IEventSource,IEntityPersister,IType[],Object[])0 fieldNHibernate.Event.Default.DefaultFlushEntityEventListener .WrapCollections(IEventSource,IEntityPersister,IType[],Object[])
IsVersionIncrementRequired(FlushEntityEvent,EntityEntry ,IEntityPersister,Int32[])0 fieldNHibernate.Event.Default.DefaultFlushEntityEventListener .IsVersionIncrementRequired(FlushEntityEvent,EntityEntry ,IEntityPersister,Int32[])
IsCollectionDirtyCheckNecessary(IEntityPersister,Status)0 fieldNHibernate.Event.Default.DefaultFlushEntityEventListener .IsCollectionDirtyCheckNecessary(IEntityPersister,Status)
GetDatabaseSnapshot(ISessionImplementor,IEntityPersister,Object)0 fieldNHibernate.Event.Default.DefaultFlushEntityEventListener .GetDatabaseSnapshot(ISessionImplementor,IEntityPersister,Object)
CreateConfigReaderSettings()1 fieldNHibernate.Cfg.XmlSchemas.CreateConfigReaderSettings()
CreateMappingReaderSettings()1 fieldNHibernate.Cfg.XmlSchemas.CreateMappingReaderSettings()

Statistics

Stat   staticFieldsUsed
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Constructor should not call a virtual methods
// <Name>Constructor should not call a virtual methods</Name>

// Returns constructor of a non-sealed type calling virtual methods.
// In such a situation, if a derived class overrides the method,
// then the override method will be called before the derived constructor.
// This makes the class fragile to derive from.
//
// Violations reported can be solved by re-designing object initialisation
// or by marking the parent class as sealed, if possible.

warnif count > 0
from t in Application.Types where 
   
t.IsClass &&
  
!t.IsGeneratedByCompiler &&
  
!t.IsSealed

from ctor in t.Constructors 
let virtualMethodsCalled = from mCalled in ctor.MethodsCalled
                           
where mCalled.IsVirtual &&
                                
(mCalled.ParentType == t ||
                                 
t.DeriveFrom(mCalled.ParentType))
                           
select mCalled
where virtualMethodsCalled.Count() > 0

select new { ctor , 
             
virtualMethodsCalled, 
             
// If there is no derived type, it might be 
             // an opportunity to mark t as sealed.
             t.DerivedTypes }

51 methods matched

methodsvirtualMethodsCalledDerivedTypesFull Name
.ctor(Exception)1 method47 typesNHibernate.HibernateException..ctor(Exception)
.ctor(String,String)1 method0 typeNHibernate.Util.AssemblyQualifiedTypeName..ctor(String,String)
.ctor(Object)1 method0 typeNHibernate.Util.WeakRefWrapper..ctor(Object)
.ctor(PersistentClass)1 method3 typesNHibernate.Mapping.Subclass..ctor(PersistentClass)
.ctor(Component)1 method0 typeNHibernate.Mapping.Component..ctor(Component)
.ctor(IDbConnection,SessionFactoryImpl)2 methods0 typeNHibernate.Impl.StatelessSessionImpl..ctor(IDbConnection ,SessionFactoryImpl)
.ctor()1 method0 typeNHibernate.Stat.StatisticsImpl..ctor()
.ctor(Component)3 methods2 typesNHibernate.Tuple.Component.AbstractComponentTuplizer..ctor(Component)
.ctor(EntityMetamodel,PersistentClass)3 methods2 typesNHibernate.Tuple.Entity.AbstractEntityTuplizer..ctor(EntityMetamodel ,PersistentClass)
.ctor(EntityMetamodel,PersistentClass)2 methods0 typeNHibernate.Tuple.Entity.PocoEntityTuplizer..ctor(EntityMetamodel ,PersistentClass)
.ctor(EntityMetamodel,PersistentClass)2 methods0 typeNHibernate.Tuple.Entity.DynamicMapEntityTuplizer..ctor(EntityMetamodel ,PersistentClass)
.ctor()8 methods3 typesNHibernate.Dialect.Oracle8iDialect..ctor()
.ctor()1 method1 typeNHibernate.Dialect.MySQLDialect..ctor()
.ctor(DataRow,IDataBaseSchema,Boolean)1 method7 typesNHibernate.Dialect.Schema.AbstractTableMetadata..ctor(DataRow ,IDataBaseSchema,Boolean)
.ctor(IDictionary<String,String[]>,ILoadable,String)3 methods1 typeNHibernate.Loader.DefaultEntityAliases..ctor(IDictionary<String ,String[]>,ILoadable,String)
.ctor(IOuterJoinLoadable,ISessionFactoryImplementor,IDictionary<String ,IFilter>)1 method3 typesNHibernate.Loader.AbstractEntityJoinWalker..ctor(IOuterJoinLoadable ,ISessionFactoryImplementor,IDictionary<String,IFilter>)
.ctor(IOuterJoinLoadable,CascadingAction,ISessionFactoryImplementor)2 methods0 typeNHibernate.Loader.Entity.CascadeEntityLoader..ctor(IOuterJoinLoadable ,CascadingAction,ISessionFactoryImplementor)
.ctor(IOuterJoinLoadable,String[],Int32,LockMode ,ISessionFactoryImplementor,IDictionary<String,IFilter>)1 method0 typeNHibernate.Loader.Entity.EntityJoinWalker..ctor(IOuterJoinLoadable ,String[],Int32,LockMode,ISessionFactoryImplementor,IDictionary<String ,IFilter>)
.ctor(IOuterJoinLoadable,CascadingAction,ISessionFactoryImplementor)1 method0 typeNHibernate.Loader.Entity.CascadeEntityJoinWalker..ctor (IOuterJoinLoadable,CascadingAction,ISessionFactoryImplementor)
.ctor(IQueryableCollection,ISessionFactoryImplementor,IDictionary <String,IFilter>)2 methods0 typeNHibernate.Loader.Entity.CollectionElementLoader..ctor (IQueryableCollection,ISessionFactoryImplementor,IDictionary<String ,IFilter>)
.ctor(IOuterJoinLoadable,String[],IType,Int32,LockMode ,ISessionFactoryImplementor,IDictionary<String,IFilter>)2 methods0 typeNHibernate.Loader.Entity.EntityLoader..ctor(IOuterJoinLoadable ,String[],IType,Int32,LockMode,ISessionFactoryImplementor,IDictionary <String,IFilter>)
.ctor(IQueryableCollection,Int32,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)1 method0 typeNHibernate.Loader.Collection.OneToManyJoinWalker..ctor (IQueryableCollection,Int32,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)
.ctor(IQueryableCollection,Int32,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)2 methods1 typeNHibernate.Loader.Collection.BasicCollectionLoader..ctor (IQueryableCollection,Int32,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)
.ctor(IQueryableCollection,Int32,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)1 method0 typeNHibernate.Loader.Collection.BasicCollectionJoinWalker..ctor (IQueryableCollection,Int32,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)
.ctor(IQueryableCollection,Int32,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)2 methods1 typeNHibernate.Loader.Collection.OneToManyLoader..ctor (IQueryableCollection,Int32,SqlString,ISessionFactoryImplementor ,IDictionary<String,IFilter>)
.ctor(IOuterJoinLoadable,ISessionFactoryImplementor,CriteriaImpl ,String,IDictionary<String,IFilter>)1 method0 typeNHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable ,ISessionFactoryImplementor,CriteriaImpl,String,IDictionary<String ,IFilter>)
.ctor(IOuterJoinLoadable,CriteriaQueryTranslator ,ISessionFactoryImplementor,ICriteria,String,IDictionary<String ,IFilter>)1 method0 typeNHibernate.Loader.Criteria.CriteriaJoinWalker..ctor(IOuterJoinLoadable ,CriteriaQueryTranslator,ISessionFactoryImplementor,ICriteria,String ,IDictionary<String,IFilter>)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor)1 method3 typesNHibernate.Persister.Entity.AbstractEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)6 methods0 typeNHibernate.Persister.Entity.UnionSubclassEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)3 methods0 typeNHibernate.Persister.Entity.JoinedSubclassEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
.ctor(PersistentClass,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping)4 methods0 typeNHibernate.Persister.Entity.SingleTableEntityPersister..ctor (PersistentClass,ICacheConcurrencyStrategy,ISessionFactoryImplementor ,IMapping)
.ctor(Collection,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor)6 methods2 typesNHibernate.Persister.Collection.AbstractCollectionPersister..ctor (Collection,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor)
.ctor(QueryTranslatorImpl,ISessionFactoryImplementor,SelectClause)1 method0 typeNHibernate.Hql.Ast.ANTLR.Loader.QueryLoader..ctor(QueryTranslatorImpl ,ISessionFactoryImplementor,SelectClause)
.ctor(ISessionImplementor,ICollection)1 method1 typeNHibernate.Collection.PersistentIdentifierBag..ctor (ISessionImplementor,ICollection)
.ctor(ISessionImplementor,IList)1 method1 typeNHibernate.Collection.PersistentList..ctor(ISessionImplementor,IList)
.ctor(ISessionImplementor,ISet)1 method1 typeNHibernate.Collection.PersistentSet..ctor(ISessionImplementor,ISet)
.ctor(ISessionImplementor,IDictionary)1 method1 typeNHibernate.Collection.PersistentMap..ctor(ISessionImplementor ,IDictionary)
.ctor(ISessionImplementor,ICollection)1 method1 typeNHibernate.Collection.PersistentBag..ctor(ISessionImplementor ,ICollection)
.ctor(String,String,String,String,String)1 method0 typeNHibernate.Cfg.ClassExtractor+ClassEntry..ctor(String,String,String ,String,String)
.ctor()1 method0 typeNHibernate.Cfg.Loquacious.TypeDefConfigurationProperties<T>..ctor()
.ctor()1 method0 typeNHibernate.Cfg.Loquacious.EntityCacheConfigurationProperties<TEntity>. .ctor()
.ctor()1 method0 typeNHibernate.Cfg.Loquacious.EntityCollectionCacheConfigurationProperties ..ctor()
.ctor(Type,IGetter[],ISetter[])1 method0 typeNHibernate.Bytecode.Lightweight.ReflectionOptimizer..ctor(Type ,IGetter[],ISetter[])
.ctor(Expression)1 method0 typeNHibernate.Linq.NhLinqExpression..ctor(Expression)
.ctor()1 method0 typeNHibernate.Linq.Functions.DefaultLinqToHqlGeneratorsRegistry..ctor()
.ctor(Expression,NhExpressionType)1 method8 typesNHibernate.Linq.Expressions.NhAggregatedExpression..ctor(Expression ,NhExpressionType)
.ctor(Expression)1 method0 typeNHibernate.Linq.Expressions.NhAverageExpression..ctor(Expression)
.ctor(Expression)1 method0 typeNHibernate.Linq.Expressions.NhStarExpression..ctor(Expression)
.ctor(String,Boolean,IDictionary<String,IFilter>)1 method0 typeNHibernate.Engine.Query.QueryPlanCache+HQLQueryPlanKey..ctor(String ,Boolean,IDictionary<String,IFilter>)
.ctor(String,String,Boolean,IDictionary<String,IFilter>)1 method0 typeNHibernate.Engine.Query.QueryPlanCache+FilterQueryPlanKey..ctor(String ,String,Boolean,IDictionary<String,IFilter>)
.ctor(String,INativeSQLQueryReturn[],ICollection<String>)1 method0 typeNHibernate.Engine.Query.Sql.NativeSQLQuerySpecification..ctor(String ,INativeSQLQueryReturn[],ICollection<String>)

Statistics

Stat   virtualMethodsCalled   DerivedTypes
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
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 || t.IsStructure)

// 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://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members/
//  http://adamschepis.com/blog/2011/05/02/im-adam-and-im-a-recovering-singleton-addict/

2 types matched

typesstaticFieldInstanceFull Name
LoggerProviderinstanceNHibernate.LoggerProvider
TypeFactoryInstanceNHibernate.Type.TypeFactory

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 }

6 fields matched

fieldsassignedByFull Name
formulaUniqueInteger1 methodNHibernate.Mapping.Formula.formulaUniqueInteger
tableCounter1 methodNHibernate.Mapping.Table.tableCounter
_Sequence1 methodNHibernate.Action.DelayedPostInsertIdentifier._Sequence
_session1 methodNHibernate.Context.ThreadStaticSessionContext._session
counter1 methodNHibernate.Id.CounterGenerator.counter
openCommandCount2 methodsNHibernate.AdoNet.AbstractBatcher.openCommandCount

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.

5 types matched

typesTypesThatImplementMeFull Name
IDiscriminatorType28 typesNHibernate.Type.IDiscriminatorType
IReturn7 typesNHibernate.Loader.Custom.IReturn
ISoftLock1 typeNHibernate.Cache.Access.ISoftLock
INhFetchRequest<TQueried,TFetch>1 typeNHibernate.Linq.INhFetchRequest<TQueried,TFetch>
INativeSQLQueryReturn5 typesNHibernate.Engine.Query.Sql.INativeSQLQueryReturn

Statistics

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

4100
Design  

warningCritical    Rule warning: Avoid custom delegates
// <Name>Avoid custom delegates</Name>

// Prefer using one of the standard generic delegate type in
// Predicate<T> Func<T0,T1,..,TResult> Action<T0,T1,..> 
// instead of creating your own delegate type.
// Not only the code using these custom delegates will become clearer,
// but you'll be relieved from the maintenance of these delegate types.
//
// Notice that delegate that are consumed by DllImport extern methods
// must not be converted, else this could provoke marshalling issues.

warnif count > 0 
from t in Application.Types where t.IsDelegate

let invokeMethod = (from m in t.Methods where m.SimpleName == "Invoke" select m).Single()
let signature1 = invokeMethod.Name.Substring(invokeMethod.SimpleName.Length, invokeMethod.Name.Length - invokeMethod.SimpleName.Length)

// 'ref' and 'out' parameters canot be supported
where !signature1.Contains("&")

let signature2 = signature1.Replace("(","<").Replace(")",">")
let signature3 = signature2 == "<>" ? "" : signature2
let resultTypeName = invokeMethod.ReturnType == null ? "????" :
                     
invokeMethod.ReturnType.FullName == "System.Void" ? "" :
                     
invokeMethod.ReturnType.Name
let replaceWith = resultTypeName == "Boolean" ?
      
"Predicate" + signature3 : resultTypeName == "" ?
      
"Action" + signature3  :
      
"Func" + signature3.Replace(">", "," + resultTypeName + ">")
             

select new { t, replaceWith }

21 types matched

typesreplaceWithFull Name
TypeFactory+GetNullableTypeWithLengthFunc<Int32,NullableType>NHibernate.Type.TypeFactory+GetNullableTypeWithLength
TypeFactory+GetNullableTypeWithPrecisionFunc<Byte,Byte,NullableType>NHibernate.Type.TypeFactory+GetNullableTypeWithPrecision
TypeFactory+NullableTypeCreatorDelegateFunc<SqlType,NullableType>NHibernate.Type.TypeFactory+NullableTypeCreatorDelegate
BeforeTransactionCompletionProcessDelegateActionNHibernate.Action.BeforeTransactionCompletionProcessDelegate
AfterTransactionCompletionProcessDelegateAction<Boolean>NHibernate.Action.AfterTransactionCompletionProcessDelegate
DelayedEnumerator<T>+GetResultFuncNHibernate.Impl.DelayedEnumerator<T>+GetResult
FutureValue<T>+GetResultFuncNHibernate.Impl.FutureValue<T>+GetResult
SqlTypeFactory+TypeWithLenCreateDelegateFunc<Int32,SqlType>NHibernate.SqlTypes.SqlTypeFactory+TypeWithLenCreateDelegate
FilterPredicatePredicate<IASTNode>NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate
SecondPassCommandAction<IDictionary<String,PersistentClass>>NHibernate.Cfg.SecondPassCommand
SetterCallbackAction<Object,Int32,Object>NHibernate.Bytecode.Lightweight.SetterCallback
GetterCallbackFunc<Object,Int32,Object>NHibernate.Bytecode.Lightweight.GetterCallback
GetPropertyValuesInvokerFunc<Object,GetterCallback,Array>NHibernate.Bytecode.Lightweight.GetPropertyValuesInvoker
SetPropertyValuesInvokerAction<Object,Object[],SetterCallback>NHibernate.Bytecode.Lightweight.SetPropertyValuesInvoker
CreateInstanceInvokerFuncNHibernate.Bytecode.Lightweight.CreateInstanceInvoker
QueryParameters+GetNamedParameterLocationsFunc<String,Array>NHibernate.Engine.QueryParameters+GetNamedParameterLocations
SqlClientSqlCommandSet+PropSetter<T>Action<T>NHibernate.AdoNet.SqlClientSqlCommandSet+PropSetter<T>
SqlClientSqlCommandSet+PropGetter<T>FuncNHibernate.AdoNet.SqlClientSqlCommandSet+PropGetter<T>
SqlClientSqlCommandSet+AppendCommandAction<SqlCommand>NHibernate.AdoNet.SqlClientSqlCommandSet+AppendCommand
SqlClientSqlCommandSet+ExecuteNonQueryCommandFuncNHibernate.AdoNet.SqlClientSqlCommandSet+ExecuteNonQueryCommand
SqlClientSqlCommandSet+DisposeCommandActionNHibernate.AdoNet.SqlClientSqlCommandSet+DisposeCommand

Statistics

Stat   replaceWith
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Types with disposable instance fields must be disposable
// <Name>Types with disposable instance fields must be disposable</Name>
warnif count > 0

let iDisposable = ThirdParty.Types.WithFullName("System.IDisposable").FirstOrDefault() 
where iDisposable != null // iDisposable can be null if the code base doesn't use at all System.IDisposable

from t in Application.Types where 
   
!t.Implement(iDisposable) && 
   
!t.IsGeneratedByCompiler 

let instanceFieldsDisposable = 
    
t.InstanceFields.Where(f => f.FieldType != null &&
                                
f.FieldType.Implement(iDisposable))

where instanceFieldsDisposable.Count() > 0
select new { t, instanceFieldsDisposable }

57 types matched

typesinstanceFieldsDisposableFull Name
XmlAccessor1 fieldNHibernate.Properties.XmlAccessor
XmlAccessor+XmlGetter1 fieldNHibernate.Properties.XmlAccessor+XmlGetter
FutureBatch<TQueryApproach,TMultiApproach>1 fieldNHibernate.Impl.FutureBatch<TQueryApproach,TMultiApproach>
MultiCriteriaImpl2 fieldsNHibernate.Impl.MultiCriteriaImpl
AbstractSessionImpl2 fieldsNHibernate.Impl.AbstractSessionImpl
Printer1 fieldNHibernate.Impl.Printer
SqlInsertBuilder1 fieldNHibernate.SqlCommand.SqlInsertBuilder
ThreadLocalSessionContext1 fieldNHibernate.Context.ThreadLocalSessionContext
MapBasedSessionContext1 fieldNHibernate.Context.MapBasedSessionContext
ManagedWebSessionContext1 fieldNHibernate.Context.ManagedWebSessionContext
StatisticsImpl1 fieldNHibernate.Stat.StatisticsImpl
EntityMetamodel1 fieldNHibernate.Tuple.Entity.EntityMetamodel
AbstractDataBaseSchema1 fieldNHibernate.Dialect.Schema.AbstractDataBaseSchema
Loader1 fieldNHibernate.Loader.Loader
JoinWalker1 fieldNHibernate.Loader.JoinWalker
CriteriaQueryTranslator1 fieldNHibernate.Loader.Criteria.CriteriaQueryTranslator
CustomLoader+MetaData1 fieldNHibernate.Loader.Custom.CustomLoader+MetaData
SQLQueryReturnProcessor1 fieldNHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor
AbstractEntityPersister1 fieldNHibernate.Persister.Entity.AbstractEntityPersister
AbstractCollectionPersister1 fieldNHibernate.Persister.Collection.AbstractCollectionPersister
SessionFactoryHelper1 fieldNHibernate.Hql.Util.SessionFactoryHelper
PolymorphicQuerySourceDetector1 fieldNHibernate.Hql.Ast.ANTLR.PolymorphicQuerySourceDetector
SessionFactoryHelperExtensions1 fieldNHibernate.Hql.Ast.ANTLR.SessionFactoryHelperExtensions
QueryTranslatorImpl1 fieldNHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl
HqlParseEngine1 fieldNHibernate.Hql.Ast.ANTLR.HqlParseEngine
HqlParseEngine+ConstantConverter1 fieldNHibernate.Hql.Ast.ANTLR.HqlParseEngine+ConstantConverter
HqlSqlTranslator1 fieldNHibernate.Hql.Ast.ANTLR.HqlSqlTranslator
HqlSqlGenerator1 fieldNHibernate.Hql.Ast.ANTLR.HqlSqlGenerator
SqlGenerator1 fieldNHibernate.Hql.Ast.ANTLR.SqlGenerator
AstPolymorphicProcessor1 fieldNHibernate.Hql.Ast.ANTLR.AstPolymorphicProcessor
JavaConstantNode1 fieldNHibernate.Hql.Ast.ANTLR.Tree.JavaConstantNode
AssignmentSpecification1 fieldNHibernate.Hql.Ast.ANTLR.Tree.AssignmentSpecification
QueryKey1 fieldNHibernate.Cache.QueryKey
SelectGenerator+SelectGeneratorDelegate1 fieldNHibernate.Id.SelectGenerator+SelectGeneratorDelegate
IdentityGenerator+InsertSelectDelegate1 fieldNHibernate.Id.IdentityGenerator+InsertSelectDelegate
IdentityGenerator+BasicDelegate1 fieldNHibernate.Id.IdentityGenerator+BasicDelegate
OutputParamReturningDelegate1 fieldNHibernate.Id.Insert.OutputParamReturningDelegate
AbstractEvent1 fieldNHibernate.Event.AbstractEvent
AbstractVisitor1 fieldNHibernate.Event.Default.AbstractVisitor
Settings1 fieldNHibernate.Cfg.Settings
NhQueryProvider1 fieldNHibernate.Linq.NhQueryProvider
AddLeftJoinsReWriter1 fieldNHibernate.Linq.Visitors.AddLeftJoinsReWriter
VisitorParameters1 fieldNHibernate.Linq.Visitors.VisitorParameters
LeftJoinDetector1 fieldNHibernate.Linq.Visitors.LeftJoinDetector
CollectionKey1 fieldNHibernate.Engine.CollectionKey
JoinSequence1 fieldNHibernate.Engine.JoinSequence
Cascade1 fieldNHibernate.Engine.Cascade
EntityKey1 fieldNHibernate.Engine.EntityKey
LoadingCollectionEntry1 fieldNHibernate.Engine.Loading.LoadingCollectionEntry
CollectionLoadContext1 fieldNHibernate.Engine.Loading.CollectionLoadContext
QueryPlanCache1 fieldNHibernate.Engine.Query.QueryPlanCache
ConnectionManager3 fieldsNHibernate.AdoNet.ConnectionManager
BasicFormatter+FormatProcess1 fieldNHibernate.AdoNet.Util.BasicFormatter+FormatProcess
ManagedProviderConnectionHelper2 fieldsNHibernate.Tool.hbm2ddl.ManagedProviderConnectionHelper
SuppliedConnectionProviderConnectionHelper2 fieldsNHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper
SuppliedConnectionHelper1 fieldNHibernate.Tool.hbm2ddl.SuppliedConnectionHelper
ScriptSplitter1 fieldNHibernate.Tool.hbm2ddl.ScriptSplitter

Statistics

Stat   instanceFieldsDisposable
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Classes that are candidate to be turned into structures
// <Name>Classes that are candidate to be turned into structures</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsClass &&
 
!t.IsGeneratedByCompiler &&
 
!t.IsStatic &&
  
t.SizeOfInst > 0 &&
  
t.SizeOfInst <= 16 &&   // Structure instance must not be too big, 
                          // else it degrades performance.

  
t.NbChildren == 0 &&    // Must not have children

  
// Must have no base class
  t.DepthOfDeriveFrom("System.Object".AllowNoMatch()) == 1

select new { t, t.SizeOfInst, t.InstanceFields } // Must derive directly from System.Object

  
// && t.IsSealed    <-- You might want to add this condition 
  //                      to restreint the set.
  // && t.IsImmutable <-- Structures should be immutable type.
  // && 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.

317 types matched

typesSize of instanceInstanceFieldsFull Name
LoggerProvider41 fieldNHibernate.LoggerProvider
Log4NetLogger41 fieldNHibernate.Log4NetLogger
LockMode123 fieldsNHibernate.LockMode
LinkedHashMap<TKey,TValue>163 fieldsNHibernate.Util.LinkedHashMap<TKey,TValue>
LinkedHashMap<TKey,TValue>+Entry164 fieldsNHibernate.Util.LinkedHashMap<TKey,TValue>+Entry
LinkedHashMap<TKey,TValue>+KeyCollection41 fieldNHibernate.Util.LinkedHashMap<TKey,TValue>+KeyCollection
LinkedHashMap<TKey,TValue>+ValuesCollection41 fieldNHibernate.Util.LinkedHashMap<TKey,TValue>+ValuesCollection
LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>163 fieldsNHibernate.Util.LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>
AssemblyQualifiedTypeName123 fieldsNHibernate.Util.AssemblyQualifiedTypeName
SequencedHashMap+Entry164 fieldsNHibernate.Util.SequencedHashMap+Entry
SequencedHashMap+KeyCollection41 fieldNHibernate.Util.SequencedHashMap+KeyCollection
SequencedHashMap+ValuesCollection41 fieldNHibernate.Util.SequencedHashMap+ValuesCollection
ThreadSafeDictionary<TKey,TValue>82 fieldsNHibernate.Util.ThreadSafeDictionary<TKey,TValue>
TypeNameParser82 fieldsNHibernate.Util.TypeNameParser
NullableDictionary<TKey,TValue>93 fieldsNHibernate.Util.NullableDictionary<TKey,TValue>
UnmodifiableDictionary<TKey,TValue>41 fieldNHibernate.Util.UnmodifiableDictionary<TKey,TValue>
JoinedEnumerable93 fieldsNHibernate.Util.JoinedEnumerable
JoinedEnumerable<T>41 fieldNHibernate.Util.JoinedEnumerable<T>
JoinedEnumerable<T>+JoinedEnumerator93 fieldsNHibernate.Util.JoinedEnumerable<T>+JoinedEnumerator
SoftLimitMRUCache164 fieldsNHibernate.Util.SoftLimitMRUCache
FilterHelper82 fieldsNHibernate.Util.FilterHelper
IdentityMap41 fieldNHibernate.Util.IdentityMap
WeakRefWrapper82 fieldsNHibernate.Util.WeakRefWrapper
WeakEnumerator123 fieldsNHibernate.Util.WeakEnumerator
WeakHashtable41 fieldNHibernate.Util.WeakHashtable
SafetyEnumerable<T>41 fieldNHibernate.Util.SafetyEnumerable<T>
StringTokenizer93 fieldsNHibernate.Util.StringTokenizer
StringTokenizer+StringTokenizerEnumerator123 fieldsNHibernate.Util.StringTokenizer+StringTokenizerEnumerator
SingletonEnumerable<T>41 fieldNHibernate.Util.SingletonEnumerable<T>
SingletonEnumerable<T>+SingletonEnumerator52 fieldsNHibernate.Util.SingletonEnumerable<T>+SingletonEnumerator
SimpleMRUCache123 fieldsNHibernate.Util.SimpleMRUCache
AnyType+ObjectTypeCacheEntry82 fieldsNHibernate.Type.AnyType+ObjectTypeCacheEntry
FieldAccessor41 fieldNHibernate.Properties.FieldAccessor
FieldAccessor+FieldGetter123 fieldsNHibernate.Properties.FieldAccessor+FieldGetter
FieldAccessor+FieldSetter123 fieldsNHibernate.Properties.FieldAccessor+FieldSetter
XmlAccessor123 fieldsNHibernate.Properties.XmlAccessor
ChainedPropertyAccessor41 fieldNHibernate.Properties.ChainedPropertyAccessor
NoSetterAccessor41 fieldNHibernate.Properties.NoSetterAccessor
IndexPropertyAccessor82 fieldsNHibernate.Properties.IndexPropertyAccessor
IndexPropertyAccessor+IndexGetter41 fieldNHibernate.Properties.IndexPropertyAccessor+IndexGetter
EmbeddedPropertyAccessor+EmbeddedGetter41 fieldNHibernate.Properties.EmbeddedPropertyAccessor+EmbeddedGetter
EmbeddedPropertyAccessor+EmbeddedSetter41 fieldNHibernate.Properties.EmbeddedPropertyAccessor+EmbeddedSetter
BackrefPropertyAccessor82 fieldsNHibernate.Properties.BackrefPropertyAccessor
BackrefPropertyAccessor+BackrefGetter41 fieldNHibernate.Properties.BackrefPropertyAccessor+BackrefGetter
MapAccessor+MapSetter41 fieldNHibernate.Properties.MapAccessor+MapSetter
MapAccessor+MapGetter41 fieldNHibernate.Properties.MapAccessor+MapGetter
BasicPropertyAccessor+BasicGetter123 fieldsNHibernate.Properties.BasicPropertyAccessor+BasicGetter
BasicPropertyAccessor+BasicSetter123 fieldsNHibernate.Properties.BasicPropertyAccessor+BasicSetter
Formula82 fieldsNHibernate.Mapping.Formula
TypeDef82 fieldsNHibernate.Mapping.TypeDef
OneToMany145 fieldsNHibernate.Mapping.OneToMany
MetaAttribute82 fieldsNHibernate.Mapping.MetaAttribute
Table+ForeignKeyKey123 fieldsNHibernate.Mapping.Table+ForeignKeyKey
Index123 fieldsNHibernate.Mapping.Index
DynamicFilterParameterSpecification123 fieldsNHibernate.Param.DynamicFilterParameterSpecification
ParameterTranslationsImpl82 fieldsNHibernate.Param.ParameterTranslationsImpl
ParameterTranslationsImpl+NamedParamTempHolder123 fieldsNHibernate.Param.ParameterTranslationsImpl+NamedParamTempHolder
ParameterInfo123 fieldsNHibernate.Param.ParameterInfo
CollectionFilterKeyParameterSpecification123 fieldsNHibernate.Param.CollectionFilterKeyParameterSpecification
AggregatedIndexCollectionSelectorParameterSpecifications41 fieldNHibernate.Param .AggregatedIndexCollectionSelectorParameterSpecifications
VersionTypeSeedParameterSpecification41 fieldNHibernate.Param.VersionTypeSeedParameterSpecification
ReflectionDriveConnectionCommandProvider82 fieldsNHibernate.Driver.ReflectionDriveConnectionCommandProvider
DbProviderFactoryDriveConnectionCommandProvider41 fieldNHibernate.Driver.DbProviderFactoryDriveConnectionCommandProvider
NHybridDataReader104 fieldsNHibernate.Driver.NHybridDataReader
DelayedPostInsertIdentifier81 fieldNHibernate.Action.DelayedPostInsertIdentifier
BulkOperationCleanupAction164 fieldsNHibernate.Action.BulkOperationCleanupAction
MultipleQueriesCacheAssembler41 fieldNHibernate.Impl.MultipleQueriesCacheAssembler
SessionIdLoggingContext51 fieldNHibernate.Impl.SessionIdLoggingContext
CriteriaImpl+CriterionEntry82 fieldsNHibernate.Impl.CriteriaImpl+CriterionEntry
CriteriaImpl+OrderEntry82 fieldsNHibernate.Impl.CriteriaImpl+OrderEntry
FilterImpl82 fieldsNHibernate.Impl.FilterImpl
DelayedEnumerator<T>82 fieldsNHibernate.Impl.DelayedEnumerator<T>
ExpandedQueryExpression164 fieldsNHibernate.Impl.ExpandedQueryExpression
ParameterExpander82 fieldsNHibernate.Impl.ParameterExpander
ParameterDetector123 fieldsNHibernate.Impl.ParameterDetector
FutureValue<T>82 fieldsNHibernate.Impl.FutureValue<T>
Printer41 fieldNHibernate.Impl.Printer
AliasToBeanConstructorResultTransformer41 fieldNHibernate.Transform.AliasToBeanConstructorResultTransformer
DistinctRootEntityResultTransformer+Identity41 fieldNHibernate.Transform.DistinctRootEntityResultTransformer+Identity
AliasToBeanResultTransformer164 fieldsNHibernate.Transform.AliasToBeanResultTransformer
InFragment82 fieldsNHibernate.SqlCommand.InFragment
Parameter51 fieldNHibernate.SqlCommand.Parameter
Alias82 fieldsNHibernate.SqlCommand.Alias
DisjunctionFragment41 fieldNHibernate.SqlCommand.DisjunctionFragment
SqlString52 fieldsNHibernate.SqlCommand.SqlString
ForUpdateFragment93 fieldsNHibernate.SqlCommand.ForUpdateFragment
InsertSelect164 fieldsNHibernate.SqlCommand.InsertSelect
SqlStringBuilder82 fieldsNHibernate.SqlCommand.SqlStringBuilder
SqlStringBuilder+AddingSqlStringVisitor41 fieldNHibernate.SqlCommand.SqlStringBuilder+AddingSqlStringVisitor
SqlCommandInfo82 fieldsNHibernate.SqlCommand.SqlCommandInfo
ConditionalFragment164 fieldsNHibernate.SqlCommand.ConditionalFragment
ThreadLocalSessionContext41 fieldNHibernate.Context.ThreadLocalSessionContext
ManagedWebSessionContext41 fieldNHibernate.Context.ManagedWebSessionContext
WcfStateExtension41 fieldNHibernate.Context.WcfStateExtension
AdoNetWithDistributedTransactionFactory+DistributedTransactionContext104 fieldsNHibernate.Transaction .AdoNetWithDistributedTransactionFactory+DistributedTransactionContext
AdoNetTransactionFactory41 fieldNHibernate.Transaction.AdoNetTransactionFactory
SessionStatisticsImpl41 fieldNHibernate.Stat.SessionStatisticsImpl
DictionaryProxy41 fieldNHibernate.DebugHelpers.DictionaryProxy
DictionaryProxy<K,V>41 fieldNHibernate.DebugHelpers.DictionaryProxy<K,V>
CollectionProxy41 fieldNHibernate.DebugHelpers.CollectionProxy

Statistics

Stat   Size of instance   InstanceFields
Sum:2 6010
Average:8.210
Minimum:10
Maximum:160
Standard deviation:3.940
Variance:15.550
warningCritical    Rule warning: Avoid namespaces with few types
// <Name>Avoid namespaces with few types</Name>
warnif count > 0 from n in JustMyCode.Namespaces 
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 namespaces, and that there is a 
// valid reason for putting types in a sparsely 
// populated namespace. Namespaces should contain 
// types that are used together in most scenarios. 
// When their applications are mutually exclusive, 
// types should be located in separate namespaces

18 namespaces matched

namespacestypesFull Name
0 type
NHibernate.Persister1 typeNHibernate.Persister
NHibernate.Hql.Util1 typeNHibernate.Hql.Util
NHibernate.Hql.Ast.ANTLR.Loader1 typeNHibernate.Hql.Ast.ANTLR.Loader
NHibernate.Proxy.Poco1 typeNHibernate.Proxy.Poco
NHibernate.Cache.Access1 typeNHibernate.Cache.Access
NHibernate.Metadata2 typesNHibernate.Metadata
NHibernate.Bytecode.CodeDom2 typesNHibernate.Bytecode.CodeDom
NHibernate.Engine.Transaction2 typesNHibernate.Engine.Transaction
NHibernate.Dialect.Lock3 typesNHibernate.Dialect.Lock
NHibernate.Proxy.Map3 typesNHibernate.Proxy.Map
NHibernate.Linq.ResultOperators3 typesNHibernate.Linq.ResultOperators
NHibernate.Engine.Loading3 typesNHibernate.Engine.Loading
NHibernate.ByteCode.LinFu3 typesNHibernate.ByteCode.LinFu
NHibernate.Classic4 typesNHibernate.Classic
NHibernate.DebugHelpers4 typesNHibernate.DebugHelpers
NHibernate.Linq.ReWriters4 typesNHibernate.Linq.ReWriters
NHibernate.ByteCode.Castle4 typesNHibernate.ByteCode.Castle

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 namespaces.

102 types matched

types# lines of code (LOC)VisibilityFull Name
LinkedHashMap<TKey,TValue>+Entry18ProtectedNHibernate.Util.LinkedHashMap<TKey,TValue>+Entry
LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>12ProtectedNHibernate.Util.LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>
CollectionHelper+EmptyEnumerableClass<T>2PublicNHibernate.Util.CollectionHelper+EmptyEnumerableClass<T>
CollectionHelper+EmptyMapClass<TKey,TValue>18PublicNHibernate.Util.CollectionHelper+EmptyMapClass<TKey,TValue>
AnyType+ObjectTypeCacheEntry3PublicNHibernate.Type.AnyType+ObjectTypeCacheEntry
PersistentEnumType+IEnumConverterN/APublicNHibernate.Type.PersistentEnumType+IEnumConverter
FieldAccessor+FieldGetter12PublicNHibernate.Properties.FieldAccessor+FieldGetter
FieldAccessor+FieldSetter15PublicNHibernate.Properties.FieldAccessor+FieldSetter
XmlAccessor+XmlGetter7PublicNHibernate.Properties.XmlAccessor+XmlGetter
XmlAccessor+AttributeGetter5PublicNHibernate.Properties.XmlAccessor+AttributeGetter
XmlAccessor+XmlSetter4PublicNHibernate.Properties.XmlAccessor+XmlSetter
XmlAccessor+AttributeSetter11PublicNHibernate.Properties.XmlAccessor+AttributeSetter
XmlAccessor+ElementAttributeGetter11PublicNHibernate.Properties.XmlAccessor+ElementAttributeGetter
XmlAccessor+ElementAttributeSetter17PublicNHibernate.Properties.XmlAccessor+ElementAttributeSetter
XmlAccessor+ElementGetter5PublicNHibernate.Properties.XmlAccessor+ElementGetter
XmlAccessor+ElementSetter11PublicNHibernate.Properties.XmlAccessor+ElementSetter
XmlAccessor+TextGetter3PublicNHibernate.Properties.XmlAccessor+TextGetter
XmlAccessor+TextSetter6PublicNHibernate.Properties.XmlAccessor+TextSetter
IndexPropertyAccessor+IndexSetter2PublicNHibernate.Properties.IndexPropertyAccessor+IndexSetter
IndexPropertyAccessor+IndexGetter9PublicNHibernate.Properties.IndexPropertyAccessor+IndexGetter
EmbeddedPropertyAccessor+EmbeddedGetter8PublicNHibernate.Properties.EmbeddedPropertyAccessor+EmbeddedGetter
EmbeddedPropertyAccessor+EmbeddedSetter5PublicNHibernate.Properties.EmbeddedPropertyAccessor+EmbeddedSetter
MapAccessor+MapSetter5PublicNHibernate.Properties.MapAccessor+MapSetter
MapAccessor+MapGetter7PublicNHibernate.Properties.MapAccessor+MapGetter
BasicPropertyAccessor+BasicGetter16PublicNHibernate.Properties.BasicPropertyAccessor+BasicGetter
BasicPropertyAccessor+BasicSetter19PublicNHibernate.Properties.BasicPropertyAccessor+BasicSetter
Table+ForeignKeyKey14InternalNHibernate.Mapping.Table+ForeignKeyKey
CriteriaImpl+Subcriteria79PublicNHibernate.Impl.CriteriaImpl+Subcriteria
CriteriaImpl+CriterionEntry6PublicNHibernate.Impl.CriteriaImpl+CriterionEntry
CriteriaImpl+OrderEntry6PublicNHibernate.Impl.CriteriaImpl+OrderEntry
DistinctRootEntityResultTransformer+Identity5InternalNHibernate.Transform.DistinctRootEntityResultTransformer+Identity
AdoNetWithDistributedTransactionFactory+DistributedTransactionContext33PublicNHibernate.Transaction .AdoNetWithDistributedTransactionFactory+DistributedTransactionContext
Dialect+QuotedAndParenthesisStringTokenizer4PublicNHibernate.Dialect.Dialect+QuotedAndParenthesisStringTokenizer
Dialect+QuotedAndParenthesisStringTokenizer+TokenizerStateN/APublicNHibernate.Dialect .Dialect+QuotedAndParenthesisStringTokenizer+TokenizerState
Dialect+CountQueryFunctionInfo2ProtectedNHibernate.Dialect.Dialect+CountQueryFunctionInfo
Dialect+AvgQueryFunctionInfo9ProtectedNHibernate.Dialect.Dialect+AvgQueryFunctionInfo
Dialect+SumQueryFunctionInfo14ProtectedNHibernate.Dialect.Dialect+SumQueryFunctionInfo
Dialect+NoOpViolatedConstraintNameExtracter1PublicNHibernate.Dialect.Dialect+NoOpViolatedConstraintNameExtracter
MsSql2000Dialect+CountBigQueryFunction2ProtectedNHibernate.Dialect.MsSql2000Dialect+CountBigQueryFunction
JoinWalker+AssociationKey9ProtectedNHibernate.Loader.JoinWalker+AssociationKey
CustomLoader+ResultRowProcessor19PublicNHibernate.Loader.Custom.CustomLoader+ResultRowProcessor
CustomLoader+IResultColumnProcessorN/APublicNHibernate.Loader.Custom.CustomLoader+IResultColumnProcessor
CustomLoader+NonScalarResultColumnProcessor3PublicNHibernate.Loader.Custom.CustomLoader+NonScalarResultColumnProcessor
CustomLoader+ScalarResultColumnProcessor16PublicNHibernate.Loader.Custom.CustomLoader+ScalarResultColumnProcessor
CustomLoader+MetaData6PublicNHibernate.Loader.Custom.CustomLoader+MetaData
SQLQueryParser+IParserContextN/APublicNHibernate.Loader.Custom.Sql.SQLQueryParser+IParserContext
SQLQueryParser+ParameterSubstitutionRecognizer19PublicNHibernate.Loader.Custom.Sql .SQLQueryParser+ParameterSubstitutionRecognizer
SQLQueryReturnProcessor+ResultAliasContext13PublicNHibernate.Loader.Custom.Sql .SQLQueryReturnProcessor+ResultAliasContext
AbstractEntityPersister+IInclusionCheckerN/AProtectedOrInternalNHibernate.Persister.Entity.AbstractEntityPersister+IInclusionChecker
AbstractCollectionPersister+GeneratedIdentifierBinder13ProtectedNHibernate.Persister.Collection .AbstractCollectionPersister+GeneratedIdentifierBinder
Example+IPropertySelectorN/APublicNHibernate.Criterion.Example+IPropertySelector
RestrictionExtensions+RestrictionBetweenBuilder1PublicNHibernate.Criterion.RestrictionExtensions+RestrictionBetweenBuilder
QueryOverRestrictionBuilderBase<TReturn,TRoot,TSubType >+LambdaBetweenBuilder9PublicNHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn ,TRoot,TSubType>+LambdaBetweenBuilder
LambdaRestrictionBuilder+LambdaBetweenBuilder7PublicNHibernate.Criterion.Lambda .LambdaRestrictionBuilder+LambdaBetweenBuilder
PathExpressionParser+CollectionElement1PublicNHibernate.Hql.Classic.PathExpressionParser+CollectionElement
ReadWriteCache+ILockableN/APublicNHibernate.Cache.ReadWriteCache+ILockable
SequenceIdentityGenerator+SequenceIdentityDelegate5PublicNHibernate.Id.SequenceIdentityGenerator+SequenceIdentityDelegate
SelectGenerator+SelectGeneratorDelegate15PublicNHibernate.Id.SelectGenerator+SelectGeneratorDelegate
IdentityGenerator+InsertSelectDelegate11PublicNHibernate.Id.IdentityGenerator+InsertSelectDelegate
IdentityGenerator+BasicDelegate8PublicNHibernate.Id.IdentityGenerator+BasicDelegate
OptimizerFactory+OptimizerSupport6PublicNHibernate.Id.Enhanced.OptimizerFactory+OptimizerSupport
OptimizerFactory+HiLoOptimizer20PublicNHibernate.Id.Enhanced.OptimizerFactory+HiLoOptimizer
OptimizerFactory+NoopOptimizer9PublicNHibernate.Id.Enhanced.OptimizerFactory+NoopOptimizer
OptimizerFactory+PooledOptimizer18PublicNHibernate.Id.Enhanced.OptimizerFactory+PooledOptimizer
AbstractPersistentCollection+IDelayedOperationN/AProtectedNHibernate.Collection.AbstractPersistentCollection+IDelayedOperation
PersistentList+ClearDelayedOperation5ProtectedNHibernate.Collection.PersistentList+ClearDelayedOperation
PersistentList+SimpleAddDelayedOperation6ProtectedNHibernate.Collection.PersistentList+SimpleAddDelayedOperation
PersistentList+AddDelayedOperation7ProtectedNHibernate.Collection.PersistentList+AddDelayedOperation
PersistentList+SetDelayedOperation8ProtectedNHibernate.Collection.PersistentList+SetDelayedOperation
PersistentList+RemoveDelayedOperation7ProtectedNHibernate.Collection.PersistentList+RemoveDelayedOperation
PersistentList+SimpleRemoveDelayedOperation6ProtectedNHibernate.Collection.PersistentList+SimpleRemoveDelayedOperation
PersistentSet+ClearDelayedOperation5ProtectedNHibernate.Collection.PersistentSet+ClearDelayedOperation
PersistentSet+SimpleAddDelayedOperation6ProtectedNHibernate.Collection.PersistentSet+SimpleAddDelayedOperation
PersistentSet+SimpleRemoveDelayedOperation6ProtectedNHibernate.Collection.PersistentSet+SimpleRemoveDelayedOperation
PersistentMap+ClearDelayedOperation5ProtectedNHibernate.Collection.PersistentMap+ClearDelayedOperation
PersistentMap+PutDelayedOperation8ProtectedNHibernate.Collection.PersistentMap+PutDelayedOperation
PersistentMap+RemoveDelayedOperation7ProtectedNHibernate.Collection.PersistentMap+RemoveDelayedOperation
PersistentBag+ClearDelayedOperation5ProtectedNHibernate.Collection.PersistentBag+ClearDelayedOperation
PersistentBag+SimpleAddDelayedOperation6ProtectedNHibernate.Collection.PersistentBag+SimpleAddDelayedOperation
Mappings+ColumnNames2PublicNHibernate.Cfg.Mappings+ColumnNames
Mappings+TableDescription3PublicNHibernate.Cfg.Mappings+TableDescription
Mappings+PropertyReference0PublicNHibernate.Cfg.Mappings+PropertyReference
ClassExtractor+ClassEntry19PublicNHibernate.Cfg.ClassExtractor+ClassEntry
MappingsQueueEntry+RequiredEntityName19PublicNHibernate.Cfg.MappingsQueueEntry+RequiredEntityName
BytecodeProviderImpl+Generator74PublicNHibernate.Bytecode.CodeDom.BytecodeProviderImpl+Generator
GroupJoinAggregateDetectionVisitor+StackFlag2InternalNHibernate.Linq.GroupJoin.GroupJoinAggregateDetectionVisitor+StackFlag
GroupJoinAggregateDetectionVisitor+StackFlag+StackFlagDisposable5InternalNHibernate.Linq.GroupJoin .GroupJoinAggregateDetectionVisitor+StackFlag+StackFlagDisposable
LeftJoinDetector+Results4PublicNHibernate.Linq.Visitors.LeftJoinDetector+Results
IdentifierValue+UndefinedClass3PublicNHibernate.Engine.IdentifierValue+UndefinedClass
Versioning+OptimisticLockN/APublicNHibernate.Engine.Versioning+OptimisticLock
ForeignKeys+Nullifier47PublicNHibernate.Engine.ForeignKeys+Nullifier
TransactionHelper+Work6PublicNHibernate.Engine.TransactionHelper+Work
JoinSequence+ISelectorN/APublicNHibernate.Engine.JoinSequence+ISelector
CascadeStyle+MultipleCascadeStyle21PublicNHibernate.Engine.CascadeStyle+MultipleCascadeStyle
TypedValue+ParameterListComparer30PublicNHibernate.Engine.TypedValue+ParameterListComparer
TypedValue+DefaultComparer8PublicNHibernate.Engine.TypedValue+DefaultComparer
ParameterParser+IRecognizerN/APublicNHibernate.Engine.Query.ParameterParser+IRecognizer
ParamLocationRecognizer+NamedParameterDescription6PublicNHibernate.Engine.Query .ParamLocationRecognizer+NamedParameterDescription
CallableParser+Detail0PublicNHibernate.Engine.Query.CallableParser+Detail
ConnectionManager+CallbackN/APublicNHibernate.AdoNet.ConnectionManager+Callback

Statistics

Stat   # lines of code (LOC)   Visibility
Sum:9650
Average:10.720
Minimum:00
Maximum:790
Standard deviation:12.450
Variance:155.090
warningCritical    Rule warning: Declare types in namespaces
// <Name>Declare types in namespaces</Name>
warnif count > 0 from n in Application.Namespaces where 
  
n.Name == ""
select new { n, n.ChildTypes, n.NbLinesOfCode } 

// Types are declared within namespaces to 
// prevent name collisions, and as a way of 
// organizing related types in an object hierarchy. 
// Types outside any named namespace are in a 
// global namespace that cannot be referenced 
// in code. If an anonymous namespace can be found, 
// it means that it contains types outside of namespaces.

1 namespaces matched

namespaceChildTypes# lines of code (LOC)Full Name
1 type0

Statistics

Stat   ChildTypes   # lines of code (LOC)
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
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 (the size of 
// instances of the System.Net.NetworkInformation.SystemIcmpV6Statistics 
// standard class is 2064 bytes).
// 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.ndepend.com/Metrics.aspx#SizeOfInst

73 types matched

typesSize of instanceInstanceFieldsFull Name
SingleTableEntityPersister45834 fieldsNHibernate.Persister.Entity.SingleTableEntityPersister
JoinedSubclassEntityPersister42724 fieldsNHibernate.Persister.Entity.JoinedSubclassEntityPersister
UnionSubclassEntityPersister37110 fieldsNHibernate.Persister.Entity.UnionSubclassEntityPersister
AbstractEntityPersister33185 fieldsNHibernate.Persister.Entity.AbstractEntityPersister
OneToManyPersister2943 fieldsNHibernate.Persister.Collection.OneToManyPersister
AbstractCollectionPersister29187 fieldsNHibernate.Persister.Collection.AbstractCollectionPersister
BasicCollectionPersister2910 fieldNHibernate.Persister.Collection.BasicCollectionPersister
StatisticsImpl26137 fieldsNHibernate.Stat.StatisticsImpl
QueryTranslator18845 fieldsNHibernate.Hql.Classic.QueryTranslator
RootClass17717 fieldsNHibernate.Mapping.RootClass
Array1702 fieldsNHibernate.Mapping.Array
PrimitiveArray1700 fieldNHibernate.Mapping.PrimitiveArray
List1621 fieldNHibernate.Mapping.List
IndexedCollection1582 fieldsNHibernate.Mapping.IndexedCollection
Map1580 fieldNHibernate.Mapping.Map
IdentifierCollection1541 fieldNHibernate.Mapping.IdentifierCollection
IdentifierBag1540 fieldNHibernate.Mapping.IdentifierBag
JoinedSubclass1502 fieldsNHibernate.Mapping.JoinedSubclass
Collection15048 fieldsNHibernate.Mapping.Collection
Bag1500 fieldNHibernate.Mapping.Bag
Set1500 fieldNHibernate.Mapping.Set
UnionSubclass1461 fieldNHibernate.Mapping.UnionSubclass
EventListeners14436 fieldsNHibernate.Event.EventListeners
Subclass1423 fieldsNHibernate.Mapping.Subclass
SingleTableSubclass1420 fieldNHibernate.Mapping.SingleTableSubclass
EntityMetamodel14050 fieldsNHibernate.Tuple.Entity.EntityMetamodel
PersistentClass13038 fieldsNHibernate.Mapping.PersistentClass
Configuration12532 fieldsNHibernate.Cfg.Configuration
SessionFactoryImpl11430 fieldsNHibernate.Impl.SessionFactoryImpl
HqlSqlWalker10829 fieldsNHibernate.Hql.Ast.ANTLR.HqlSqlWalker
Settings10845 fieldsNHibernate.Cfg.Settings
Mappings10628 fieldsNHibernate.Cfg.Mappings
ImpliedFromElement1042 fieldsNHibernate.Hql.Ast.ANTLR.Tree.ImpliedFromElement
FromElement10223 fieldsNHibernate.Hql.Ast.ANTLR.Tree.FromElement
CriteriaImpl10125 fieldsNHibernate.Impl.CriteriaImpl
QueryLoader10121 fieldsNHibernate.Hql.Ast.ANTLR.Loader.QueryLoader
SessionImpl10019 fieldsNHibernate.Impl.SessionImpl
QueryParameters10029 fieldsNHibernate.Engine.QueryParameters
SqlQueryImpl914 fieldsNHibernate.Impl.SqlQueryImpl
CollectionFilterImpl891 fieldNHibernate.Impl.CollectionFilterImpl
ExpressionQueryImpl892 fieldsNHibernate.Impl.ExpressionQueryImpl
SubselectOneToManyLoader885 fieldsNHibernate.Loader.Collection.SubselectOneToManyLoader
SubselectCollectionLoader885 fieldsNHibernate.Loader.Collection.SubselectCollectionLoader
CriteriaJoinWalker885 fieldsNHibernate.Loader.Criteria.CriteriaJoinWalker
QueryImpl851 fieldNHibernate.Impl.QueryImpl
Component8113 fieldsNHibernate.Mapping.Component
AbstractQueryImpl8122 fieldsNHibernate.Impl.AbstractQueryImpl
CollectionElementLoader804 fieldsNHibernate.Loader.Entity.CollectionElementLoader
CriteriaLoader804 fieldsNHibernate.Loader.Criteria.CriteriaLoader
DotNode788 fieldsNHibernate.Hql.Ast.ANTLR.Tree.DotNode
EntityLoader771 fieldNHibernate.Loader.Entity.EntityLoader
AbstractEntityLoader763 fieldsNHibernate.Loader.Entity.AbstractEntityLoader
CascadeEntityLoader760 fieldNHibernate.Loader.Entity.CascadeEntityLoader
FromClause769 fieldsNHibernate.Hql.Ast.ANTLR.Tree.FromClause
DetachedNamedQuery729 fieldsNHibernate.Impl.DetachedNamedQuery
EntityJoinWalker721 fieldNHibernate.Loader.Entity.EntityJoinWalker
CascadeEntityJoinWalker721 fieldNHibernate.Loader.Entity.CascadeEntityJoinWalker
CriteriaQueryTranslator7218 fieldsNHibernate.Loader.Criteria.CriteriaQueryTranslator
ClassExtractor+<GetRootClassesEntries>d__07218 fieldsNHibernate.Cfg.ClassExtractor+<GetRootClassesEntries>d__0
OneToOne705 fieldsNHibernate.Mapping.OneToOne
StatefulPersistenceContext7019 fieldsNHibernate.Engine.StatefulPersistenceContext
OracleDataClientBatchingBatcher707 fieldsNHibernate.AdoNet.OracleDataClientBatchingBatcher
DenormalizedTable681 fieldNHibernate.Mapping.DenormalizedTable
QueryStatistics688 fieldsNHibernate.Stat.QueryStatistics
AbstractEntityJoinWalker682 fieldsNHibernate.Loader.AbstractEntityJoinWalker
CollectionLoader681 fieldNHibernate.Loader.Collection.CollectionLoader
BasicCollectionLoader680 fieldNHibernate.Loader.Collection.BasicCollectionLoader
OneToManyLoader680 fieldNHibernate.Loader.Collection.OneToManyLoader
PathExpressionParser6820 fieldsNHibernate.Hql.Classic.PathExpressionParser
FromPathExpressionParser680 fieldNHibernate.Hql.Classic.FromPathExpressionParser
SelectPathExpressionParser680 fieldNHibernate.Hql.Classic.SelectPathExpressionParser
MultiQueryImpl6618 fieldsNHibernate.Impl.MultiQueryImpl
SelectClause668 fieldsNHibernate.Hql.Ast.ANTLR.Tree.SelectClause

Statistics

Stat   Size of instance   InstanceFields
Sum:9 4650
Average:129.660
Minimum:660
Maximum:4580
Standard deviation:84.280
Variance:7 1030
warningCritical    Rule warning: Attribute classes should be sealed
// <Name>Attribute classes should be sealed</Name>
warnif count > 0 from t in Application.Types where 
  
t.IsAttributeClass && 
 
!t.IsSealed && 
 
!t.IsAbstract && 
  
t.IsPublic
select new { t, t.NbLinesOfCode } 

// The .NET Framework class library provides methods 
// for retrieving custom attributes. By default, 
// these methods search the attribute inheritance 
// hierarchy; for example System.Attribute.GetCustomAttribute 
// searches for the specified attribute type, or any 
// attribute type that extends the specified attribute 
// type. Sealing the attribute eliminates the search 
// through the inheritance hierarchy, and can improve 
// performance.

1 types matched

type# lines of code (LOC)Full Name
LinqExtensionMethodAttribute3NHibernate.Linq.LinqExtensionMethodAttribute

Statistics

Stat   # lines of code (LOC)
Sum:3
Average:3
Minimum:3
Maximum:3
Standard deviation:0
Variance:0
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 }

1 methods matched

methodobsoleteTypesUsedobsoleteMethodsUsedobsoleteFieldsUsedFull Name
CreateDynamicMethod(Type,Type[])0 type1 method0 fieldNHibernate.Bytecode.Lightweight.ReflectionOptimizer .CreateDynamicMethod(Type,Type[])

Statistics

Stat   obsoleteTypesUsed   obsoleteMethodsUsed   obsoleteFieldsUsed
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Don't forget to implement methods that throw NotImplementedException
// <Name>Don't forget to implement methods that throw NotImplementedException</Name>
warnif count > 0
from m in Application.Methods
where m.CreateA("System.NotImplementedException".AllowNoMatch())
select m

48 methods matched

methodsFull Name
Add(Object)NHibernate.Util.CollectionHelper+EmptyListClass.Add(Object)
Clear()NHibernate.Util.CollectionHelper+EmptyListClass.Clear()
Insert(Int32,Object)NHibernate.Util.CollectionHelper+EmptyListClass.Insert(Int32,Object)
Remove(Object)NHibernate.Util.CollectionHelper+EmptyListClass.Remove(Object)
RemoveAt(Int32)NHibernate.Util.CollectionHelper+EmptyListClass.RemoveAt(Int32)
CopyTo(KeyValuePair<TKey,TValue>[],Int32)NHibernate.Util.NullableDictionary<TKey,TValue>.CopyTo(KeyValuePair <TKey,TValue>[],Int32)
Remove(KeyValuePair<TKey,TValue>)NHibernate.Util.NullableDictionary<TKey,TValue>.Remove(KeyValuePair <TKey,TValue>)
get_Keys()NHibernate.Util.WeakHashtable.get_Keys()
get_Values()NHibernate.Util.WeakHashtable.get_Values()
CopyTo(Array,Int32)NHibernate.Util.WeakHashtable.CopyTo(Array,Int32)
Clear(Object)NHibernate.Type.CollectionType.Clear(Object)
Add(Object,Object)NHibernate.Type.CollectionType.Add(Object,Object)
get_DefaultValue()NHibernate.Type.DateTimeOffsetType.get_DefaultValue()
GetGetter(Type,String)NHibernate.Properties.IndexPropertyAccessor.GetGetter(Type,String)
GetSetter(Type,String)NHibernate.Properties.IndexPropertyAccessor.GetSetter(Type,String)
set_IsForceDiscriminator(Boolean)NHibernate.Mapping.PersistentClass.set_IsForceDiscriminator(Boolean)
get_RecordsAffected()NHibernate.Driver.NDataReader.get_RecordsAffected()
GetData(Int32)NHibernate.Driver.NDataReader.GetData(Int32)
OnBeforePrepare(IDbCommand)NHibernate.Driver.OracleClientDriver.OnBeforePrepare(IDbCommand)
List(IQueryExpression,QueryParameters)NHibernate.Impl.StatelessSessionImpl.List(IQueryExpression ,QueryParameters)
List(IQueryExpression,QueryParameters,IList)NHibernate.Impl.StatelessSessionImpl.List(IQueryExpression ,QueryParameters,IList)
ExecuteUpdate()NHibernate.Impl.ExpressionQueryImpl.ExecuteUpdate()
Enumerable()NHibernate.Impl.ExpressionQueryImpl.Enumerable()
Enumerable<T>()NHibernate.Impl.ExpressionQueryImpl.Enumerable<T>()
List(IList)NHibernate.Impl.ExpressionQueryImpl.List(IList)
List<T>()NHibernate.Impl.ExpressionQueryImpl.List<T>()
GetConstraintName(DataRow)NHibernate.Dialect.Schema.SQLiteTableMetaData.GetConstraintName (DataRow)
Dehydrate(Object,Object[],Object,Boolean[],Boolean[][],Int32 ,IDbCommand,ISessionImplementor,Int32)NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object ,Object[],Object,Boolean[],Boolean[][],Int32,IDbCommand ,ISessionImplementor,Int32)
HasAncestor(Int32)NHibernate.Hql.Ast.ANTLR.Tree.ASTNode.HasAncestor(Int32)
GetAncestor(Int32)NHibernate.Hql.Ast.ANTLR.Tree.ASTNode.GetAncestor(Int32)
GetAncestors()NHibernate.Hql.Ast.ANTLR.Tree.ASTNode.GetAncestors()
GetParent(Object)NHibernate.Hql.Ast.ANTLR.Tree.ASTTreeAdaptor.GetParent(Object)
ReplaceChildren(Object,Int32,Int32,Object)NHibernate.Hql.Ast.ANTLR.Tree.ASTTreeAdaptor.ReplaceChildren(Object ,Int32,Int32,Object)
GetTokenStartIndex(Object)NHibernate.Hql.Ast.ANTLR.Tree.ASTTreeAdaptor.GetTokenStartIndex(Object )
GetTokenStopIndex(Object)NHibernate.Hql.Ast.ANTLR.Tree.ASTTreeAdaptor.GetTokenStopIndex(Object)
DupNode(Object)NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerTreeAdaptor.DupNode(Object)
Resolve(ParameterExpression,Expression,ClauseGenerationContext)NHibernate.Linq.CacheableExpressionNode.Resolve(ParameterExpression ,Expression,ClauseGenerationContext)
ExecuteInMemory(IStreamedData)NHibernate.Linq.CacheableResultOperator.ExecuteInMemory(IStreamedData)
Clone(CloneContext)NHibernate.Linq.CacheableResultOperator.Clone(CloneContext)
ExecuteInMemory(IStreamedData)NHibernate.Linq.ResultOperators.ClientSideTransformOperator .ExecuteInMemory(IStreamedData)
Clone(CloneContext)NHibernate.Linq.ResultOperators.ClientSideTransformOperator.Clone (CloneContext)
FlattenSubQuery(SubQueryExpression,FromClauseBase,QueryModel)NHibernate.Linq.GroupBy.AggregatingGroupByRewriter.FlattenSubQuery (SubQueryExpression,FromClauseBase,QueryModel)
FlattenSubQuery(SubQueryExpression,MainFromClause,QueryModel)NHibernate.Linq.GroupBy.NonAggregatingGroupByRewriter.FlattenSubQuery (SubQueryExpression,MainFromClause,QueryModel)
VisitMemberExpression(MemberExpression)NHibernate.Linq.GroupBy.GroupBySelectClauseRewriter .VisitMemberExpression(MemberExpression)
Resolve(ParameterExpression,Expression,ClauseGenerationContext)NHibernate.Linq.Expressions.AggregateExpressionNode.Resolve (ParameterExpression,Expression,ClauseGenerationContext)
VisitGroupJoinClause(GroupJoinClause,QueryModel,Int32)NHibernate.Linq.Visitors.QueryModelVisitor.VisitGroupJoinClause (GroupJoinClause,QueryModel,Int32)
GetOwnerId(String,String,Object,IDictionary)NHibernate.Engine.StatefulPersistenceContext.GetOwnerId(String,String ,Object,IDictionary)
GetIndexInOwner(String,String,Object,IDictionary)NHibernate.Engine.StatefulPersistenceContext.GetIndexInOwner(String ,String,Object,IDictionary)

Statistics

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

630
Architecture and Layering  

warningCritical    Rule warning: Avoid namespaces mutually dependent
// <Name>Avoid namespaces mutually dependent</Name>
warnif count > 0
// Foreach pair of namespace mutually dependent, this rule lists pairs.
// The pair { first, second } is formatted to show that first namespace shouldn't use the second namespace.
// The first/second order is inferred from the number of types used by each other.
// The first namespace is using less types of the second.
// It means that the first namespace is certainly at a lower level in the architecture, than the second.
//
// To explore the coupling between two namespaces mutually dependent:
//  1) export the first namespace to the vertical header of the dependency matrix
//  2) export the second namespace 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 namespaces dependency cycles.
// More on this in our white books relative to partitionning code.
// http://www.ndepend.com/WhiteBooks.aspx


// Optimization: restreint application assemblies set
// If some namespaces are mutually dependent
//  - They must be declared in the same assembly
//  - The parent assembly must ContainsNamespaceDependencyCycle
from assembly in Application.Assemblies.Where(a => a.ContainsNamespaceDependencyCycle != null && a.ContainsNamespaceDependencyCycle.Value)

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

// Optimization: restreint namespaces set
// If a namespace 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 namespacesSuspect = assembly.ChildNamespaces.Where(n => n.Level == null)

from nA in namespacesSuspect

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

from nB in namespacesMutuallyDependentWith_nA

// nA and nB are mutually dependent
// Select first the one that shouldn't use the other.
// The first namespace 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 }

137 namespaces matched

namespacesshouldntUsetypesOfFirstUsedBySecondtypesOfSecondUsedByFirstFull Name
NHibernateNHibernate.Hql.Ast.ANTLR.Tree9 types1 typeNHibernate
NHibernateNHibernate.Engine25 types4 typesNHibernate
NHibernateNHibernate.Engine.Query7 types1 typeNHibernate
NHibernateNHibernate.Impl39 types3 typesNHibernate
NHibernate.TypeNHibernate51 types12 typesNHibernate.Type
NHibernateNHibernate.Proxy2 types2 typesNHibernate
NHibernateNHibernate.Collection7 types1 typeNHibernate
NHibernate.InterceptNHibernate2 types1 typeNHibernate.Intercept
NHibernateNHibernate.Transform5 types1 typeNHibernate
NHibernateNHibernate.Transaction6 types1 typeNHibernate
NHibernateNHibernate.SqlCommand6 types2 typesNHibernate
NHibernateNHibernate.Util8 types1 typeNHibernate
NHibernate.MetadataNHibernate2 types1 typeNHibernate.Metadata
NHibernateNHibernate.Stat3 types2 typesNHibernate
NHibernateNHibernate.Criterion16 types5 typesNHibernate
NHibernate.Criterion.LambdaNHibernate7 types5 typesNHibernate.Criterion.Lambda
NHibernate.UtilNHibernate.SqlCommand5 types3 typesNHibernate.Util
NHibernate.UtilNHibernate.Dialect3 types1 typeNHibernate.Util
NHibernate.UtilNHibernate.Dialect.Function1 type1 typeNHibernate.Util
NHibernate.UtilNHibernate.Impl8 types1 typeNHibernate.Util
NHibernate.UtilNHibernate.Engine8 types2 typesNHibernate.Util
NHibernate.UtilNHibernate.Type7 types2 typesNHibernate.Util
NHibernate.UtilNHibernate.SqlTypes1 type1 typeNHibernate.Util
NHibernate.PropertiesNHibernate.Util3 types1 typeNHibernate.Properties
NHibernate.UserTypesNHibernate.Type6 types1 typeNHibernate.UserTypes
NHibernate.EngineNHibernate.Type13 types11 typesNHibernate.Engine
NHibernate.TypeNHibernate.Persister.Entity11 types3 typesNHibernate.Type
NHibernate.CollectionNHibernate.Type7 types3 typesNHibernate.Collection
NHibernate.TypeNHibernate.Persister.Collection6 types2 typesNHibernate.Type
NHibernate.TypeNHibernate.Engine.Loading3 types1 typeNHibernate.Type
NHibernate.ProxyNHibernate.Type3 types1 typeNHibernate.Proxy
NHibernate.Collection.GenericNHibernate.Type5 types2 typesNHibernate.Collection.Generic
NHibernate.TypeNHibernate.Dialect3 types1 typeNHibernate.Type
NHibernate.BytecodeNHibernate.Type3 types2 typesNHibernate.Bytecode
NHibernate.TypeNHibernate.SqlCommand3 types1 typeNHibernate.Type
NHibernate.TypeNHibernate.Impl7 types1 typeNHibernate.Type
NHibernate.TupleNHibernate.Type4 types3 typesNHibernate.Tuple
NHibernate.TypeNHibernate.Properties2 types1 typeNHibernate.Type
NHibernate.TypeNHibernate.Cfg1 type1 typeNHibernate.Type
NHibernate.EngineNHibernate.Properties4 types2 typesNHibernate.Engine
NHibernate.PropertiesNHibernate.Mapping6 types1 typeNHibernate.Properties
NHibernate.PropertiesNHibernate.Bytecode2 types2 typesNHibernate.Properties
NHibernate.MappingNHibernate.Dialect1 type1 typeNHibernate.Mapping
NHibernate.MappingNHibernate.Cfg20 types1 typeNHibernate.Mapping
NHibernate.MappingNHibernate.Tuple.Component3 types1 typeNHibernate.Mapping
NHibernate.ExceptionsNHibernate.Engine2 types1 typeNHibernate.Exceptions
NHibernate.ExceptionsNHibernate.Dialect6 types1 typeNHibernate.Exceptions
NHibernate.ExceptionsNHibernate.Cfg2 types1 typeNHibernate.Exceptions
NHibernate.InterceptNHibernate.Engine3 types2 typesNHibernate.Intercept
NHibernate.InterceptNHibernate.Proxy2 types2 typesNHibernate.Intercept
NHibernate.InterceptNHibernate.Persister.Entity4 types1 typeNHibernate.Intercept
NHibernate.DriverNHibernate.Cfg1 type1 typeNHibernate.Driver
NHibernate.AdoNetNHibernate.Driver3 types2 typesNHibernate.AdoNet
NHibernate.ActionNHibernate.Engine12 types8 typesNHibernate.Action
NHibernate.Persister.EntityNHibernate.Impl4 types3 typesNHibernate.Persister.Entity
NHibernate.EngineNHibernate.Impl19 types5 typesNHibernate.Engine
NHibernate.ImplNHibernate.Persister.Collection3 types1 typeNHibernate.Impl
NHibernate.CacheNHibernate.Impl10 types2 typesNHibernate.Cache
NHibernate.CriterionNHibernate.Impl15 types3 typesNHibernate.Criterion
NHibernate.ImplNHibernate.Loader.Criteria4 types2 typesNHibernate.Impl
NHibernate.CfgNHibernate.Impl3 types1 typeNHibernate.Cfg
NHibernate.ImplNHibernate.Loader1 type1 typeNHibernate.Impl
NHibernate.ImplNHibernate.Transaction2 types2 typesNHibernate.Impl
NHibernate.ImplNHibernate.Collection1 type1 typeNHibernate.Impl
NHibernate.Hql.Ast.ANTLR.UtilNHibernate.Impl2 types1 typeNHibernate.Hql.Ast.ANTLR.Util
NHibernate.SqlCommandNHibernate.Engine6 types2 typesNHibernate.SqlCommand
NHibernate.SqlCommandNHibernate.Dialect11 types1 typeNHibernate.SqlCommand
NHibernate.SqlCommandNHibernate.Dialect.Function2 types1 typeNHibernate.SqlCommand
NHibernate.EngineNHibernate.Context2 types1 typeNHibernate.Engine
NHibernate.TransactionNHibernate.Engine2 types2 typesNHibernate.Transaction
NHibernate.Engine.TransactionNHibernate.Transaction2 types1 typeNHibernate.Engine.Transaction
NHibernate.TransactionNHibernate.AdoNet1 type1 typeNHibernate.Transaction
NHibernate.TransactionNHibernate.Cfg2 types1 typeNHibernate.Transaction
NHibernate.EngineNHibernate.Stat5 types2 typesNHibernate.Engine
NHibernate.ConnectionNHibernate.Cfg2 types1 typeNHibernate.Connection
NHibernate.Dialect.FunctionNHibernate.Dialect15 types1 typeNHibernate.Dialect.Function
NHibernate.DialectNHibernate.Cfg2 types1 typeNHibernate.Dialect
NHibernate.IdNHibernate.Dialect5 types1 typeNHibernate.Id
NHibernate.Dialect.LockNHibernate.Dialect2 types1 typeNHibernate.Dialect.Lock
NHibernate.DialectNHibernate.Persister.Entity1 type1 typeNHibernate.Dialect
NHibernate.EngineNHibernate.Dialect2 types1 typeNHibernate.Engine
NHibernate.EngineNHibernate.Dialect.Function2 types1 typeNHibernate.Engine
NHibernate.Persister.EntityNHibernate.Dialect.Lock2 types1 typeNHibernate.Persister.Entity
NHibernate.LoaderNHibernate.Collection1 type1 typeNHibernate.Loader
NHibernate.LoaderNHibernate.Loader.Criteria5 types1 typeNHibernate.Loader
NHibernate.Loader.EntityNHibernate.Persister.Entity4 types4 typesNHibernate.Loader.Entity
NHibernate.Persister.CollectionNHibernate.Loader.Entity2 types1 typeNHibernate.Persister.Collection
NHibernate.Loader.CollectionNHibernate.Persister.Collection4 types3 typesNHibernate.Loader.Collection
NHibernate.CriterionNHibernate.Loader.Criteria6 types2 typesNHibernate.Criterion
NHibernate.EngineNHibernate.Loader.Custom3 types1 typeNHibernate.Engine
NHibernate.Engine.QueryNHibernate.Loader.Custom.Sql2 types1 typeNHibernate.Engine.Query
NHibernate.EngineNHibernate.Persister.Entity15 types6 typesNHibernate.Engine
NHibernate.IdNHibernate.Persister.Entity3 types1 typeNHibernate.Id
NHibernate.Cache.EntryNHibernate.Persister.Entity4 types1 typeNHibernate.Cache.Entry
NHibernate.Cache.EntryNHibernate.Persister.Collection4 types1 typeNHibernate.Cache.Entry
NHibernate.EngineNHibernate.Persister.Collection10 types2 typesNHibernate.Engine
NHibernate.Persister.CollectionNHibernate.Collection1 type1 typeNHibernate.Persister.Collection
NHibernate.Criterion.LambdaNHibernate.Criterion20 types19 typesNHibernate.Criterion.Lambda
NHibernate.EngineNHibernate.Hql5 types1 typeNHibernate.Engine
NHibernate.HqlNHibernate.Engine.Query3 types1 typeNHibernate.Hql

Statistics

Stat   shouldntUse   typesOfFirstUsedBySecond   typesOfSecondUsedByFirst
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Avoid namespaces dependency cycles
// <Name>Avoid namespaces dependency cycles</Name>
warnif count > 0
// This query lists all application namespaces dependency cyles.
// Each row shows a different cycle, prefixed with a namespace entangled in the cycle.
//
// To browse a cycle on the dependency graph or the dependency matrix, just right click
// a cycle cell and export namespaces 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
//
// Read our white books relative to partitionning code, 
// to know more about namespaces dependency cycles, and why avoiding them 
// is a simple but efficient solution to architecture well your code base.
// http://www.ndepend.com/WhiteBooks.aspx


// Optimization: restreint application assemblies set
// If some namespaces are mutually dependent
//  - They must be declared in the same assembly
//  - The parent assembly must ContainsNamespaceDependencyCycle
from assembly in Application.Assemblies
                 
.Where(a => a.ContainsNamespaceDependencyCycle != null && 
                             
a.ContainsNamespaceDependencyCycle.Value)

// Optimization: restreint namespaces set
// A namespace involved in a cycle necessarily have a null Level.
let namespacesSuspect = assembly.ChildNamespaces.Where(n => n.Level == null)

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


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

   
// Define 2 code metrics
   // - Namespaces depth of is using indirectly the suspect namespace.
   // - Namespaces depth of is used by the suspect namespace indirectly.
   // Note: for direct usage the depth is equal to 1.
   let namespacesUserDepth = namespacesSuspect.DepthOfIsUsing(suspect)
   
let namespacesUsedDepth = namespacesSuspect.DepthOfIsUsedBy(suspect)

   
// Select namespaces that are both using and used by namespaceSuspect
   let usersAndUsed = from n in namespacesSuspect where 
                         
namespacesUserDepth[n] > 0 && 
                         
namespacesUsedDepth[n] > 0 
                      
select n

   
where usersAndUsed.Count() > 0

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

   
// Fill hashset with namespaces 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 namespaces matched

namespacecycleFull Name
NHibernate81 namespacesNHibernate

Statistics

Stat   cycle
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Assemblies with poor cohesion (RelationalCohesion)
// <Name>Assemblies with poor cohesion (RelationalCohesion)</Name>
warnif count > 0 from a in Application.Assemblies 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 assembly 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.ndepend.com/Metrics.aspx#RelationalCohesion

1 assemblies matched

assembly# TypesRelational cohesionFull Name
NHibernate2 2046.6NHibernate

Statistics

Stat   # Types   Relational cohesion
Sum:2 2046.6
Average:2 2046.6
Minimum:2 2046.6
Maximum:2 2046.6
Standard deviation:00
Variance:00

450
API Breaking Changes  

warningCritical    Critical Rule warning: 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 assembly hasn't been removed ...
     ( (t.WasRemoved() && !t.ParentAssembly.WasRemoved()) ||

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

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

13 types matched

typesNewVisibilityFull Name
XmlHelper NHibernate.Util.XmlHelper
SybaseAdoNet12ClientDriver NHibernate.Driver.SybaseAdoNet12ClientDriver
SybaseClientDriver NHibernate.Driver.SybaseClientDriver
AdoNetWithDistrubtedTransactionFactory+DistributedTransactionContext NHibernate.Transaction .AdoNetWithDistrubtedTransactionFactory+DistributedTransactionContext
DbCommandSet<TConnection,TCommand> NHibernate.Impl.DbCommandSet<TConnection,TCommand>
SybaseAnywhereDialect NHibernate.Dialect.SybaseAnywhereDialect
MsSql2005Dialect+QuotedAndParenthesisStringTokenizer NHibernate.Dialect .MsSql2005Dialect+QuotedAndParenthesisStringTokenizer
MsSql2005Dialect+QuotedAndParenthesisStringTokenizer+TokenizerState NHibernate.Dialect .MsSql2005Dialect+QuotedAndParenthesisStringTokenizer+TokenizerState
SybaseDialect NHibernate.Dialect.SybaseDialect
SybaseAdoNet12Dialect NHibernate.Dialect.SybaseAdoNet12Dialect
Sybase11Dialect NHibernate.Dialect.Sybase11Dialect
ISoftLock NHibernate.Cache.ISoftLock
ClassCacheUsage NHibernate.Cfg.ConfigurationSchema.ClassCacheUsage

Statistics

Stat   NewVisibility
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Critical Rule warning: 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()) }

203 methods matched

methodsNewVisibilityFull Name
Find(String) NHibernate.ISession.Find(String)
Find(String,Object,IType) NHibernate.ISession.Find(String,Object,IType)
Find(String,Object[],IType[]) NHibernate.ISession.Find(String,Object[],IType[])
Enumerable(String) NHibernate.ISession.Enumerable(String)
Enumerable(String,Object,IType) NHibernate.ISession.Enumerable(String,Object,IType)
Enumerable(String,Object[],IType[]) NHibernate.ISession.Enumerable(String,Object[],IType[])
Filter(Object,String) NHibernate.ISession.Filter(Object,String)
Filter(Object,String,Object,IType) NHibernate.ISession.Filter(Object,String,Object,IType)
Filter(Object,String,Object[],IType[]) NHibernate.ISession.Filter(Object,String,Object[],IType[])
CreateSQLQuery(String,String,Type) NHibernate.ISession.CreateSQLQuery(String,String,Type)
CreateSQLQuery(String,String[],Type[]) NHibernate.ISession.CreateSQLQuery(String,String[],Type[])
Association(Type) NHibernate.NHibernateUtil.Association(Type)
TryGetMethod(IEnumerable<Type>,MethodInfo) NHibernate.Util.ReflectHelper.TryGetMethod(IEnumerable<Type> ,MethodInfo)
set_BatchSize(Int32) NHibernate.Mapping.PersistentClass.set_BatchSize(Int32)
.ctor(Join) NHibernate.Mapping.Component..ctor(Join)
set_ParentProperty(String) NHibernate.Mapping.Component.set_ParentProperty(String)
.ctor(ISessionImplementor,ISet<String>,String) NHibernate.Intercept.AbstractFieldInterceptor..ctor (ISessionImplementor,ISet<String>,String)
InjectFieldInterceptor(Object,String,ISet<String>,ISessionImplementor) NHibernate.Intercept.FieldInterceptionHelper.InjectFieldInterceptor (Object,String,ISet<String>,ISessionImplementor)
GetProjections() NHibernate.Criterion.AbstractEmptinessExpression.GetProjections()
op_BitwiseAnd(AbstractEmptinessExpression,AbstractEmptinessExpression) NHibernate.Criterion.AbstractEmptinessExpression.op_BitwiseAnd (AbstractEmptinessExpression,AbstractEmptinessExpression)
op_BitwiseOr(AbstractEmptinessExpression,AbstractEmptinessExpression) NHibernate.Criterion.AbstractEmptinessExpression.op_BitwiseOr (AbstractEmptinessExpression,AbstractEmptinessExpression)
op_BitwiseAnd(AbstractEmptinessExpression,AbstractCriterion) NHibernate.Criterion.AbstractEmptinessExpression.op_BitwiseAnd (AbstractEmptinessExpression,AbstractCriterion)
op_BitwiseOr(AbstractEmptinessExpression,AbstractCriterion) NHibernate.Criterion.AbstractEmptinessExpression.op_BitwiseOr (AbstractEmptinessExpression,AbstractCriterion)
op_LogicalNot(AbstractEmptinessExpression) NHibernate.Criterion.AbstractEmptinessExpression.op_LogicalNot (AbstractEmptinessExpression)
op_False(AbstractEmptinessExpression) NHibernate.Criterion.AbstractEmptinessExpression.op_False (AbstractEmptinessExpression)
op_True(AbstractEmptinessExpression) NHibernate.Criterion.AbstractEmptinessExpression.op_True (AbstractEmptinessExpression)
CreateConnection() NHibernate.Driver.OracleClientDriver.CreateConnection()
CreateCommand() NHibernate.Driver.OracleClientDriver.CreateCommand()
HasAfterTransactionCompletion() NHibernate.Action.IExecutable.HasAfterTransactionCompletion()
AfterTransactionCompletion(Boolean) NHibernate.Action.IExecutable.AfterTransactionCompletion(Boolean)
HasAfterTransactionCompletion() NHibernate.Action.EntityAction.HasAfterTransactionCompletion()
AfterTransactionCompletion(Boolean) NHibernate.Action.EntityAction.AfterTransactionCompletion(Boolean)
HasAfterTransactionCompletion() NHibernate.Action.BulkOperationCleanupAction .HasAfterTransactionCompletion()
AfterTransactionCompletion(Boolean) NHibernate.Action.BulkOperationCleanupAction .AfterTransactionCompletion(Boolean)
HasAfterTransactionCompletion() NHibernate.Action.CollectionAction.HasAfterTransactionCompletion()
AfterTransactionCompletion(Boolean) NHibernate.Action.CollectionAction.AfterTransactionCompletion(Boolean)
AfterTransactionCompletion(Boolean) NHibernate.Action.CollectionUpdateAction.AfterTransactionCompletion (Boolean)
AfterTransactionCompletion(Boolean) NHibernate.Action.EntityDeleteAction.AfterTransactionCompletion (Boolean)
AfterTransactionCompletion(Boolean) NHibernate.Action.EntityUpdateAction.AfterTransactionCompletion (Boolean)
AfterTransactionCompletion(Boolean) NHibernate.Action.EntityInsertAction.AfterTransactionCompletion (Boolean)
AfterTransactionCompletion(Boolean) NHibernate.Action.EntityIdentityInsertAction .AfterTransactionCompletion(Boolean)
DeepCopy(Object[],IType[],Boolean[],Object[],ISessionImplementor) NHibernate.Type.TypeFactory.DeepCopy(Object[],IType[],Boolean[] ,Object[],ISessionImplementor)
BeforeAssemble(Object[],ICacheAssembler[],ISessionImplementor) NHibernate.Type.TypeFactory.BeforeAssemble(Object[],ICacheAssembler[] ,ISessionImplementor)
FindDirty(StandardProperty[],Object[],Object[],Boolean[][],Boolean ,ISessionImplementor) NHibernate.Type.TypeFactory.FindDirty(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean,ISessionImplementor)
FindModified(StandardProperty[],Object[],Object[],Boolean[][],Boolean ,ISessionImplementor) NHibernate.Type.TypeFactory.FindModified(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean,ISessionImplementor)
Assemble(Object[],ICacheAssembler[],ISessionImplementor,Object) NHibernate.Type.TypeFactory.Assemble(Object[],ICacheAssembler[] ,ISessionImplementor,Object)
Disassemble(Object[],ICacheAssembler[],Boolean[],ISessionImplementor ,Object) NHibernate.Type.TypeFactory.Disassemble(Object[],ICacheAssembler[] ,Boolean[],ISessionImplementor,Object)
Replace(Object[],Object[],IType[],ISessionImplementor,Object ,IDictionary) NHibernate.Type.TypeFactory.Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary)
Replace(Object[],Object[],IType[],ISessionImplementor,Object ,IDictionary,ForeignKeyDirection) NHibernate.Type.TypeFactory.Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
ReplaceAssociations(Object[],Object[],IType[],ISessionImplementor ,Object,IDictionary,ForeignKeyDirection) NHibernate.Type.TypeFactory.ReplaceAssociations(Object[],Object[] ,IType[],ISessionImplementor,Object,IDictionary,ForeignKeyDirection)
GetHashCode(Object,EntityMode) NHibernate.Type.DateTimeOffsetType.GetHashCode(Object,EntityMode)
AddJoin(String,String,String[],String[],JoinType,String) NHibernate.SqlCommand.JoinFragment.AddJoin(String,String,String[] ,String[],JoinType,String)
AddJoin(String,String,String[],String[],JoinType,String) NHibernate.SqlCommand.InformixJoinFragment.AddJoin(String,String ,String[],String[],JoinType,String)
AddJoin(String,String,String[],String[],JoinType,String) NHibernate.SqlCommand.OracleJoinFragment.AddJoin(String,String ,String[],String[],JoinType,String)
AddJoin(String,String,String[],String[],JoinType,String) NHibernate.SqlCommand.QueryJoinFragment.AddJoin(String,String,String[] ,String[],JoinType,String)
AddJoin(String,String,String[],String[],JoinType,String) NHibernate.SqlCommand.ANSIJoinFragment.AddJoin(String,String,String[] ,String[],JoinType,String)
Configure(IDictionary) NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory .Configure(IDictionary)
CreateTransaction(ISessionImplementor) NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory .CreateTransaction(ISessionImplementor)
EnlistInDistributedTransactionIfNeeded(ISessionImplementor) NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory .EnlistInDistributedTransactionIfNeeded(ISessionImplementor)
IsInDistributedActiveTransaction(ISessionImplementor) NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory .IsInDistributedActiveTransaction(ISessionImplementor)
ExecuteWorkInIsolation(ISessionImplementor,IIsolatedWork,Boolean) NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory .ExecuteWorkInIsolation(ISessionImplementor,IIsolatedWork,Boolean)
CreateMultiApproach() NHibernate.Impl.FutureBatch<TQueryApproach,TMultiApproach> .CreateMultiApproach()
CreateMultiApproach() NHibernate.Impl.FutureQueryBatch.CreateMultiApproach()
CreateMultiApproach() NHibernate.Impl.FutureCriteriaBatch.CreateMultiApproach()
Find(String) NHibernate.Impl.SessionImpl.Find(String)
Find(String,Object,IType) NHibernate.Impl.SessionImpl.Find(String,Object,IType)
Find(String,Object[],IType[])PrivateNHibernate.Impl.SessionImpl.Find(String,Object[],IType[])
Enumerable(String) NHibernate.Impl.SessionImpl.Enumerable(String)
Enumerable(String,Object,IType) NHibernate.Impl.SessionImpl.Enumerable(String,Object,IType)
Enumerable(String,Object[],IType[]) NHibernate.Impl.SessionImpl.Enumerable(String,Object[],IType[])
Filter(Object,String) NHibernate.Impl.SessionImpl.Filter(Object,String)
Filter(Object,String,Object,IType) NHibernate.Impl.SessionImpl.Filter(Object,String,Object,IType)
Filter(Object,String,Object[],IType[]) NHibernate.Impl.SessionImpl.Filter(Object,String,Object[],IType[])
CreateSQLQuery(String,String,Type) NHibernate.Impl.SessionImpl.CreateSQLQuery(String,String,Type)
CreateSQLQuery(String,String[],Type[]) NHibernate.Impl.SessionImpl.CreateSQLQuery(String,String[],Type[])
Bind(HttpContext,ISession) NHibernate.Context.ManagedWebSessionContext.Bind(HttpContext,ISession)
HasBind(HttpContext,ISessionFactory) NHibernate.Context.ManagedWebSessionContext.HasBind(HttpContext ,ISessionFactory)
Unbind(HttpContext,ISessionFactory) NHibernate.Context.ManagedWebSessionContext.Unbind(HttpContext ,ISessionFactory)
NullSafeSet(IDbCommand,Object,Int32,ISessionImplementor) NHibernate.UserTypes.ICompositeUserType.NullSafeSet(IDbCommand,Object ,Int32,ISessionImplementor)
.ctor(PersistentClass,IInstantiationOptimizer) NHibernate.Tuple.PocoInstantiator..ctor(PersistentClass ,IInstantiationOptimizer)
GetLimitString(SqlString,Boolean) NHibernate.Dialect.Oracle8iDialect.GetLimitString(SqlString,Boolean)
GetLimitString(SqlString,Boolean) NHibernate.Dialect.DB2Dialect.GetLimitString(SqlString,Boolean)
GetLimitString(SqlString,Boolean) NHibernate.Dialect.MySQLDialect.GetLimitString(SqlString,Boolean)
GetLimitString(SqlString,Int32,Int32) NHibernate.Dialect.MsSql2005Dialect.GetLimitString(SqlString,Int32 ,Int32)
GetLimitString(SqlString,Boolean) NHibernate.Dialect.PostgreSQLDialect.GetLimitString(SqlString,Boolean)
get_SupportsVariableLimit() NHibernate.Dialect.MySQL5Dialect.get_SupportsVariableLimit()
.ctor(IAssociationType,String,String[],String,JoinType ,ISessionFactoryImplementor,IDictionary<String,IFilter>) NHibernate.Loader.OuterJoinableAssociation..ctor(IAssociationType ,String,String[],String,JoinType,ISessionFactoryImplementor ,IDictionary<String,IFilter>)
GetQueryStringAndTypes(ISessionImplementor,QueryParameters) NHibernate.Loader.Loader.GetQueryStringAndTypes(ISessionImplementor ,QueryParameters)
ConvertITypesToSqlTypes(List<IType>,Int32) NHibernate.Loader.Loader.ConvertITypesToSqlTypes(List<IType>,Int32)
GetParameterTypes(QueryParameters,Boolean,Boolean) NHibernate.Loader.Loader.GetParameterTypes(QueryParameters,Boolean ,Boolean)
InitProjection(SqlString,SqlString,SqlString,String,SqlString,LockMode ) NHibernate.Loader.AbstractEntityJoinWalker.InitProjection(SqlString ,SqlString,SqlString,String,SqlString,LockMode)
.ctor(IType[],Object[],IDictionary<String,LockMode>,RowSelection ,Boolean,String,String,Boolean,IResultTransformer) NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary <String,LockMode>,RowSelection,Boolean,String,String,Boolean ,IResultTransformer)
BindParameters(IDbCommand,QueryParameters+GetNamedParameterLocations ,Int32,ISessionImplementor) NHibernate.Engine.QueryParameters.BindParameters(IDbCommand ,QueryParameters+GetNamedParameterLocations,Int32,ISessionImplementor)
.ctor(String,Boolean,IDictionary<String,IFilter> ,ISessionFactoryImplementor) NHibernate.Engine.Query.HQLQueryPlan..ctor(String,Boolean,IDictionary <String,IFilter>,ISessionFactoryImplementor)
.ctor(String,String,Boolean,IDictionary<String,IFilter> ,ISessionFactoryImplementor) NHibernate.Engine.Query.HQLQueryPlan..ctor(String,String,Boolean ,IDictionary<String,IFilter>,ISessionFactoryImplementor)
get_SourceQuery() NHibernate.Engine.Query.HQLQueryPlan.get_SourceQuery()
get_EnabledFilterNames() NHibernate.Engine.Query.HQLQueryPlan.get_EnabledFilterNames()
get_UtilizedFilterNames() NHibernate.Engine.Query.HQLQueryPlan.get_UtilizedFilterNames()
get_Shallow() NHibernate.Engine.Query.HQLQueryPlan.get_Shallow()
get_Source() NHibernate.Event.AbstractPreDatabaseOperationEvent.get_Source()

Statistics

Stat   NewVisibility
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Critical Rule warning: 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()) }

562 fields matched

fieldsNewVisibilityFull Name
OriginalPositionInQuery NHibernate.SqlCommand.Parameter.OriginalPositionInQuery
MappingSchemaXMLNS NHibernate.Cfg.Configuration.MappingSchemaXMLNS
namespaceManager NHibernate.Cfg.XmlHbmBinding.ClassBinder.namespaceManager
T__130 NHibernate.Hql.Ast.ANTLR.HqlLexer.T__130
T__130 NHibernate.Hql.Ast.ANTLR.SqlGenerator.T__130
FOLLOW_additiveExpr_in_arithmeticExpr1588 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_additiveExpr_in_arithmeticExpr1588
FOLLOW_bitwiseExpr_in_arithmeticExpr1593 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_bitwiseExpr_in_arithmeticExpr1593
FOLLOW_multiplicativeExpr_in_arithmeticExpr1598 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_multiplicativeExpr_in_arithmeticExpr1598
FOLLOW_UNARY_MINUS_in_arithmeticExpr1605 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_UNARY_MINUS_in_arithmeticExpr1605
FOLLOW_expr_in_arithmeticExpr1609 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_expr_in_arithmeticExpr1609
FOLLOW_caseExpr_in_arithmeticExpr1615 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_caseExpr_in_arithmeticExpr1615
FOLLOW_PLUS_in_additiveExpr1627 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_PLUS_in_additiveExpr1627
FOLLOW_expr_in_additiveExpr1629 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_additiveExpr1629
FOLLOW_expr_in_additiveExpr1633 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_additiveExpr1633
FOLLOW_MINUS_in_additiveExpr1640 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_MINUS_in_additiveExpr1640
FOLLOW_expr_in_additiveExpr1642 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_additiveExpr1642
FOLLOW_nestedExprAfterMinusDiv_in_additiveExpr1646 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExprAfterMinusDiv_in_additiveExpr1646
FOLLOW_BAND_in_bitwiseExpr1659 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_BAND_in_bitwiseExpr1659
FOLLOW_expr_in_bitwiseExpr1661 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_bitwiseExpr1661
FOLLOW_nestedExpr_in_bitwiseExpr1665 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExpr_in_bitwiseExpr1665
FOLLOW_BOR_in_bitwiseExpr1672 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_BOR_in_bitwiseExpr1672
FOLLOW_expr_in_bitwiseExpr1674 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_bitwiseExpr1674
FOLLOW_nestedExpr_in_bitwiseExpr1678 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExpr_in_bitwiseExpr1678
FOLLOW_BXOR_in_bitwiseExpr1685 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_BXOR_in_bitwiseExpr1685
FOLLOW_expr_in_bitwiseExpr1687 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_bitwiseExpr1687
FOLLOW_nestedExpr_in_bitwiseExpr1691 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExpr_in_bitwiseExpr1691
FOLLOW_BNOT_in_bitwiseExpr1698 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_BNOT_in_bitwiseExpr1698
FOLLOW_nestedExpr_in_bitwiseExpr1702 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExpr_in_bitwiseExpr1702
FOLLOW_STAR_in_multiplicativeExpr1716 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_STAR_in_multiplicativeExpr1716
FOLLOW_nestedExpr_in_multiplicativeExpr1718 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExpr_in_multiplicativeExpr1718
FOLLOW_nestedExpr_in_multiplicativeExpr1722 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExpr_in_multiplicativeExpr1722
FOLLOW_DIV_in_multiplicativeExpr1729 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_DIV_in_multiplicativeExpr1729
FOLLOW_nestedExpr_in_multiplicativeExpr1731 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExpr_in_multiplicativeExpr1731
FOLLOW_nestedExprAfterMinusDiv_in_multiplicativeExpr1735 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_nestedExprAfterMinusDiv_in_multiplicativeExpr1735
FOLLOW_additiveExpr_in_nestedExpr1757 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_additiveExpr_in_nestedExpr1757
FOLLOW_bitwiseExpr_in_nestedExpr1772 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_bitwiseExpr_in_nestedExpr1772
FOLLOW_expr_in_nestedExpr1779 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_nestedExpr1779
FOLLOW_arithmeticExpr_in_nestedExprAfterMinusDiv1801 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_arithmeticExpr_in_nestedExprAfterMinusDiv1801
FOLLOW_expr_in_nestedExprAfterMinusDiv1808 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_expr_in_nestedExprAfterMinusDiv1808
FOLLOW_CASE_in_caseExpr1820 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_CASE_in_caseExpr1820
FOLLOW_WHEN_in_caseExpr1830 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_WHEN_in_caseExpr1830
FOLLOW_booleanExpr_in_caseExpr1834 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_booleanExpr_in_caseExpr1834
FOLLOW_expr_in_caseExpr1839 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_caseExpr1839
FOLLOW_ELSE_in_caseExpr1851 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_ELSE_in_caseExpr1851
FOLLOW_expr_in_caseExpr1855 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_caseExpr1855
FOLLOW_CASE2_in_caseExpr1871 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_CASE2_in_caseExpr1871
FOLLOW_expr_in_caseExpr1875 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_caseExpr1875
FOLLOW_WHEN_in_caseExpr1882 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_WHEN_in_caseExpr1882
FOLLOW_expr_in_caseExpr1886 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_caseExpr1886
FOLLOW_expr_in_caseExpr1890 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_caseExpr1890
FOLLOW_ELSE_in_caseExpr1902 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_ELSE_in_caseExpr1902
FOLLOW_expr_in_caseExpr1906 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_caseExpr1906
FOLLOW_AGGREGATE_in_aggregate1930 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_AGGREGATE_in_aggregate1930
FOLLOW_expr_in_aggregate1935 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_aggregate1935
FOLLOW_METHOD_CALL_in_methodCall1954 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_METHOD_CALL_in_methodCall1954
FOLLOW_METHOD_NAME_in_methodCall1958 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_METHOD_NAME_in_methodCall1958
FOLLOW_EXPR_LIST_in_methodCall1967 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_EXPR_LIST_in_methodCall1967
FOLLOW_arguments_in_methodCall1970 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_arguments_in_methodCall1970
FOLLOW_expr_in_arguments1995 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_arguments1995
FOLLOW_comparisonExpr_in_arguments1999 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_comparisonExpr_in_arguments1999
FOLLOW_expr_in_arguments2008 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_expr_in_arguments2008
FOLLOW_comparisonExpr_in_arguments2012 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_comparisonExpr_in_arguments2012
FOLLOW_NAMED_PARAM_in_parameter2030 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_NAMED_PARAM_in_parameter2030
FOLLOW_PARAM_in_parameter2039 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_PARAM_in_parameter2039
FOLLOW_DOT_in_addrExpr2055 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_DOT_in_addrExpr2055
FOLLOW_ALIAS_REF_in_addrExpr2069 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_ALIAS_REF_in_addrExpr2069
FOLLOW_INDEX_OP_in_addrExpr2079 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_INDEX_OP_in_addrExpr2079
FOLLOW_SQL_TOKEN_in_sqlToken2099 NHibernate.Hql.Ast.ANTLR.SqlGenerator.FOLLOW_SQL_TOKEN_in_sqlToken2099
FOLLOW_additiveExpr_in_synpred2_SqlGenerator1750 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_additiveExpr_in_synpred2_SqlGenerator1750
FOLLOW_bitwiseExpr_in_synpred3_SqlGenerator1765 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_bitwiseExpr_in_synpred3_SqlGenerator1765
FOLLOW_arithmeticExpr_in_synpred4_SqlGenerator1794 NHibernate.Hql.Ast.ANTLR.SqlGenerator .FOLLOW_arithmeticExpr_in_synpred4_SqlGenerator1794
T__130 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.T__130
FOLLOW_EQ_in_comparisonExpr1444 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.FOLLOW_EQ_in_comparisonExpr1444
FOLLOW_exprOrSubquery_in_comparisonExpr1446 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1446
FOLLOW_exprOrSubquery_in_comparisonExpr1448 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1448
FOLLOW_NE_in_comparisonExpr1455 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.FOLLOW_NE_in_comparisonExpr1455
FOLLOW_exprOrSubquery_in_comparisonExpr1457 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1457
FOLLOW_exprOrSubquery_in_comparisonExpr1459 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1459
FOLLOW_LT_in_comparisonExpr1466 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.FOLLOW_LT_in_comparisonExpr1466
FOLLOW_exprOrSubquery_in_comparisonExpr1468 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1468
FOLLOW_exprOrSubquery_in_comparisonExpr1470 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1470
FOLLOW_GT_in_comparisonExpr1477 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.FOLLOW_GT_in_comparisonExpr1477
FOLLOW_exprOrSubquery_in_comparisonExpr1479 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1479
FOLLOW_exprOrSubquery_in_comparisonExpr1481 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1481
FOLLOW_LE_in_comparisonExpr1488 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.FOLLOW_LE_in_comparisonExpr1488
FOLLOW_exprOrSubquery_in_comparisonExpr1490 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1490
FOLLOW_exprOrSubquery_in_comparisonExpr1492 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1492
FOLLOW_GE_in_comparisonExpr1499 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.FOLLOW_GE_in_comparisonExpr1499
FOLLOW_exprOrSubquery_in_comparisonExpr1501 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1501
FOLLOW_exprOrSubquery_in_comparisonExpr1503 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1503
FOLLOW_LIKE_in_comparisonExpr1510 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_LIKE_in_comparisonExpr1510
FOLLOW_exprOrSubquery_in_comparisonExpr1512 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1512
FOLLOW_expr_in_comparisonExpr1514 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_expr_in_comparisonExpr1514
FOLLOW_ESCAPE_in_comparisonExpr1519 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_ESCAPE_in_comparisonExpr1519
FOLLOW_expr_in_comparisonExpr1521 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_expr_in_comparisonExpr1521
FOLLOW_NOT_LIKE_in_comparisonExpr1533 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_NOT_LIKE_in_comparisonExpr1533
FOLLOW_exprOrSubquery_in_comparisonExpr1535 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_exprOrSubquery_in_comparisonExpr1535
FOLLOW_expr_in_comparisonExpr1537 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_expr_in_comparisonExpr1537
FOLLOW_ESCAPE_in_comparisonExpr1542 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_ESCAPE_in_comparisonExpr1542
FOLLOW_expr_in_comparisonExpr1544 NHibernate.Hql.Ast.ANTLR.HqlSqlWalker .FOLLOW_expr_in_comparisonExpr1544

Statistics

Stat   NewVisibility
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Critical Rule warning: 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 }

21 types matched

typesmethodsAddedmethodsRemovedFull Name
ICriteria2 methods0 methodNHibernate.ICriteria
IMultiCriteria5 methods0 methodNHibernate.IMultiCriteria
ISession3 methods11 methodsNHibernate.ISession
ICompositeUserType1 method1 methodNHibernate.UserTypes.ICompositeUserType
IFieldInterceptor3 methods0 methodNHibernate.Intercept.IFieldInterceptor
IDriver1 method0 methodNHibernate.Driver.IDriver
IExecutable2 methods2 methodsNHibernate.Action.IExecutable
EntityAction0 method1 methodNHibernate.Action.EntityAction
FutureBatch<TQueryApproach,TMultiApproach>3 methods1 methodNHibernate.Impl.FutureBatch<TQueryApproach,TMultiApproach>
AbstractSessionImpl2 methods0 methodNHibernate.Impl.AbstractSessionImpl
JoinFragment1 method1 methodNHibernate.SqlCommand.JoinFragment
IOuterJoinLoadable1 method0 methodNHibernate.Persister.Entity.IOuterJoinLoadable
AbstractEmptinessExpression0 method1 methodNHibernate.Criterion.AbstractEmptinessExpression
ICriteriaQuery2 methods0 methodNHibernate.Criterion.ICriteriaQuery
IQueryTranslatorFactory1 method2 methodsNHibernate.Hql.IQueryTranslatorFactory
IQueryTranslator1 method0 methodNHibernate.Hql.IQueryTranslator
IProxyFactory1 method0 methodNHibernate.Proxy.IProxyFactory
AbstractDecoratable1 method1 methodNHibernate.Cfg.MappingSchema.AbstractDecoratable
IProxyFactoryFactory1 method0 methodNHibernate.Bytecode.IProxyFactoryFactory
IBatcher1 method0 methodNHibernate.Engine.IBatcher
ISessionImplementor1 method0 methodNHibernate.Engine.ISessionImplementor

Statistics

Stat   methodsAdded   methodsRemoved
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Critical Rule warning: 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
//  - Compare older and newer versions disassembled with Reflector

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 }

5 types matched

typesmutableFieldsFull Name
DateType1 fieldNHibernate.Type.DateType
DelayedEnumerator<T>1 fieldNHibernate.Impl.DelayedEnumerator<T>
FutureValue<T>1 fieldNHibernate.Impl.FutureValue<T>
HQLQueryPlan5 fieldsNHibernate.Engine.Query.HQLQueryPlan
FilterQueryPlan0 fieldNHibernate.Engine.Query.FilterQueryPlan

Statistics

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

310
Dead Code  

  • 3 validated Rule(s)
  • 1 Rule(s) violated
  • 0 Rules or Queries with Error (syntax error, exception thrown, time-out)
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 assemblies.
         !m.IsEntryPoint &&            // Main() method is not used by-design.
         !m.IsExplicitInterfaceImpl && // The IL code never explicitely calls explicit interface methods implementation.
         !m.IsClassConstructor &&      // The IL code never explicitely calls class constructors.
         !m.IsFinalizer &&             // The IL code never explicitely calls finalizers.
         !m.IsVirtual &&               // Only check for non virtual method that are not seen as used in IL.
         !(m.IsConstructor &&          // Don't take account of protected ctor that might be call by a derived ctors.
           m.IsProtected) &&
         
!m.IsEventAdder &&            // The IL code never explicitely calls events adder/remover.
         !m.IsEventRemover &&
         
!m.IsGeneratedByCompiler &&
         
!m.ParentType.IsDelegate &&

         
// Methods tagged with these two attributes are called by the serialization infrastructure.
         !m.HasAttribute("System.Runtime.Serialization.OnSerializingAttribute".AllowNoMatch()) &&
         
!m.HasAttribute("System.Runtime.Serialization.OnDeserializedAttribute".AllowNoMatch()) &&

         
// If you don't want to link NDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
         !m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()))

// 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] }

56 methods matched

methodsMethodsCallingMedepthFull Name
Contains(Object)0 method0NHibernate.Util.SequencedHashMap+KeyCollection.Contains(Object)
Contains(Object)0 method0NHibernate.Util.SequencedHashMap+ValuesCollection.Contains(Object)
.ctor()0 method0NHibernate.Util.CollectionHelper..ctor()
.ctor()0 method0NHibernate.Util.ObjectUtils..ctor()
.ctor()0 method0NHibernate.Util.ADOExceptionReporter..ctor()
.ctor()0 method0NHibernate.Util.SerializationHelper..ctor()
.ctor()0 method0NHibernate.Type.AbstractBinaryType..ctor()
.ctor()0 method0NHibernate.Properties.PropertyAccessorFactory..ctor()
GetNumberOfPreceedingParameters()0 method0NHibernate.Driver.SqlStringFormatter.GetNumberOfPreceedingParameters()
.ctor()0 method0NHibernate.Impl.MessageHelper..ctor()
.ctor(String,IList<INativeSQLQueryReturn>,ICollection<String> ,FlushMode,Boolean,ISessionImplementor,ParameterMetadata)0 method0NHibernate.Impl.SqlQueryImpl..ctor(String,IList<INativeSQLQueryReturn> ,ICollection<String>,FlushMode,Boolean,ISessionImplementor ,ParameterMetadata)
.ctor(String,String[],Type[],LockMode[],ISessionImplementor ,ICollection<String>,FlushMode,ParameterMetadata)1 method1NHibernate.Impl.SqlQueryImpl..ctor(String,String[],Type[],LockMode[] ,ISessionImplementor,ICollection<String>,FlushMode,ParameterMetadata)
.ctor(String,String[],Type[],ISessionImplementor,ParameterMetadata)0 method0NHibernate.Impl.SqlQueryImpl..ctor(String,String[],Type[] ,ISessionImplementor,ParameterMetadata)
.ctor()1 method1NHibernate.Impl.AbstractSessionImpl..ctor()
.ctor(SerializationInfo,StreamingContext)0 method0NHibernate.Impl.SessionImpl..ctor(SerializationInfo,StreamingContext)
GetCollectionPersister(String)0 method0NHibernate.Impl.SessionImpl.GetCollectionPersister(String)
.ctor()0 method0NHibernate.Transform.Transformers..ctor()
.ctor()0 method0NHibernate.SqlCommand.Template..ctor()
.ctor()0 method0NHibernate.Connection.ConnectionProviderFactory..ctor()
.ctor()0 method0NHibernate.Persister.PersisterFactory..ctor()
.ctor()1 method1NHibernate.Criterion.Restrictions..ctor()
.ctor()0 method0NHibernate.Criterion.Expression..ctor()
.ctor()0 method0NHibernate.Criterion.Projections..ctor()
IsPossiblyClassName(String,String)0 method0NHibernate.Hql.QuerySplitter.IsPossiblyClassName(String,String)
CreateJoinFragment(Boolean)0 method0NHibernate.Hql.Classic.QueryTranslator.CreateJoinFragment(Boolean)
.ctor()0 method0NHibernate.Hql.Classic.ParserHelper..ctor()
.ctor()0 method0NHibernate.Proxy.NHibernateProxyHelper..ctor()
set_Timeout(Int32)0 method0NHibernate.Cache.FakeCache.set_Timeout(Int32)
.ctor()0 method0NHibernate.Cache.Timestamper..ctor()
.ctor()0 method0NHibernate.Id.IdentifierGeneratorFactory..ctor()
.ctor()0 method0NHibernate.Collection.SetSnapShot<T>..ctor()
set_IsScrollableResultSetsEnabled(Boolean)0 method0NHibernate.Cfg.Settings.set_IsScrollableResultSetsEnabled(Boolean)
set_IsGetGeneratedKeysEnabled(Boolean)0 method0NHibernate.Cfg.Settings.set_IsGetGeneratedKeysEnabled(Boolean)
set_IsStructuredCacheEntriesEnabled(Boolean)0 method0NHibernate.Cfg.Settings.set_IsStructuredCacheEntriesEnabled(Boolean)
set_IsFlushBeforeCompletionEnabled(Boolean)0 method0NHibernate.Cfg.Settings.set_IsFlushBeforeCompletionEnabled(Boolean)
set_IsAutoCloseSessionEnabled(Boolean)0 method0NHibernate.Cfg.Settings.set_IsAutoCloseSessionEnabled(Boolean)
set_IsOrderUpdatesEnabled(Boolean)0 method0NHibernate.Cfg.Settings.set_IsOrderUpdatesEnabled(Boolean)
set_IsOrderInsertsEnabled(Boolean)0 method0NHibernate.Cfg.Settings.set_IsOrderInsertsEnabled(Boolean)
set_IsDataDefinitionImplicitCommit(Boolean)0 method0NHibernate.Cfg.Settings.set_IsDataDefinitionImplicitCommit(Boolean)
set_IsDataDefinitionInTransactionSupported(Boolean)0 method0NHibernate.Cfg.Settings.set_IsDataDefinitionInTransactionSupported (Boolean)
set_IsOuterJoinFetchEnabled(Boolean)0 method0NHibernate.Cfg.Settings.set_IsOuterJoinFetchEnabled(Boolean)
GetRootClassMapping(Type)0 method0NHibernate.Cfg.Configuration.GetRootClassMapping(Type)
.ctor()0 method0NHibernate.Cfg.XmlHbmBinding.AuxiliaryDatabaseObjectFactory..ctor()
ClassCacheIncludeConvertToString(ClassCacheInclude)0 method0NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper .ClassCacheIncludeConvertToString(ClassCacheInclude)
ListenerTypeConvertToString(ListenerType)0 method0NHibernate.Cfg.ConfigurationSchema.CfgXmlHelper .ListenerTypeConvertToString(ListenerType)
.ctor()0 method0NHibernate.Bytecode.EmitUtil..ctor()
.ctor()0 method0NHibernate.Linq.GroupJoin.AggregatingGroupJoinRewriter..ctor()
GroupBy<TSource,TKey,TResult>(Expression<Func<TSource,TKey>> ,Expression<Func<TSource,TResult>>)0 method0NHibernate.Linq.Visitors.QueryModelVisitor.GroupBy<TSource,TKey ,TResult>(Expression<Func<TSource,TKey>>,Expression<Func<TSource ,TResult>>)
.ctor(SerializationInfo,StreamingContext)0 method0NHibernate.Engine.StatefulPersistenceContext..ctor(SerializationInfo ,StreamingContext)
.ctor()0 method0NHibernate.Engine.JoinHelper..ctor()
.ctor()0 method0NHibernate.Engine.UnsavedValueFactory..ctor()
SetSessionFactory(ISessionFactoryImplementor)0 method0NHibernate.Engine.EntityKey.SetSessionFactory (ISessionFactoryImplementor)
get_LoadingCollectionXRefs()0 method0NHibernate.Engine.Loading.LoadContexts.get_LoadingCollectionXRefs()
.ctor()0 method0NHibernate.Engine.Query.ParameterParser..ctor()
.ctor(SerializationInfo,StreamingContext)0 method0NHibernate.AdoNet.ConnectionManager..ctor(SerializationInfo ,StreamingContext)
.ctor()0 method0NHibernate.AdoNet.Expectations..ctor()

Statistics

Stat   MethodsCallingMe   depth
Sum:03
Average:00.054
Minimum:00
Maximum:01
Standard deviation:00.23
Variance:00.051

260
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 &&
  
!m.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
  
!m.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch()) &&
  
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
  
  
// 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 }

4,729 methods matched

methodsVisibilityCouldBeDeclaredMethodsCallingMeFull Name
.ctor(String)PublicInternal123 methodsNHibernate.HibernateException..ctor(String)
.ctor(String)PublicInternal89 methodsNHibernate.QueryException..ctor(String)
.ctor(String,Exception)PublicInternal24 methodsNHibernate.QueryException..ctor(String,Exception)
.ctor(String,String)PublicInternal8 methodsNHibernate.QueryException..ctor(String,String)
.ctor(Exception)PublicInternal13 methodsNHibernate.QueryException..ctor(Exception)
get_QueryString()PublicPrivate0 methodNHibernate.QueryException.get_QueryString()
set_QueryString(String)PublicInternal3 methodsNHibernate.QueryException.set_QueryString(String)
.ctor(String,Exception)PublicInternal11 methodsNHibernate.ADOException..ctor(String,Exception)
get_SqlString()PublicPrivate0 methodNHibernate.ADOException.get_SqlString()
.ctor(String,Object,Type)PublicPrivate1 methodNHibernate.UnresolvableObjectException..ctor(String,Object,Type)
get_Identifier()PublicPrivate0 methodNHibernate.UnresolvableObjectException.get_Identifier()
get_PersistentClass()PublicPrivate0 methodNHibernate.UnresolvableObjectException.get_PersistentClass()
get_EntityName()PublicPrivate1 methodNHibernate.UnresolvableObjectException.get_EntityName()
ThrowIfNull(Object,Object,Type)PublicPrivate0 methodNHibernate.UnresolvableObjectException.ThrowIfNull(Object,Object,Type)
ThrowIfNull(Object,Object,String)PublicInternal3 methodsNHibernate.UnresolvableObjectException.ThrowIfNull(Object,Object ,String)
GuessType(Object)PublicInternal1 methodNHibernate.NHibernateUtil.GuessType(Object)
GuessType(Type)PublicInternal3 methodsNHibernate.NHibernateUtil.GuessType(Type)
Enum(Type)PublicInternal4 methodsNHibernate.NHibernateUtil.Enum(Type)
GetSerializable(Type)PublicPrivate0 methodNHibernate.NHibernateUtil.GetSerializable(Type)
Any(IType,IType)PublicPrivate0 methodNHibernate.NHibernateUtil.Any(IType,IType)
Entity(Type)PublicInternal8 methodsNHibernate.NHibernateUtil.Entity(Type)
Entity(String)PublicInternal2 methodsNHibernate.NHibernateUtil.Entity(String)
Custom(Type)PublicPrivate1 methodNHibernate.NHibernateUtil.Custom(Type)
Initialize(Object)PublicPrivate0 methodNHibernate.NHibernateUtil.Initialize(Object)
IsInitialized(Object)PublicInternal4 methodsNHibernate.NHibernateUtil.IsInitialized(Object)
GetClass(Object)PublicPrivate0 methodNHibernate.NHibernateUtil.GetClass(Object)
Close(IEnumerator)PublicPrivate0 methodNHibernate.NHibernateUtil.Close(IEnumerator)
Close(IEnumerable)PublicPrivate0 methodNHibernate.NHibernateUtil.Close(IEnumerable)
IsPropertyInitialized(Object,String)PublicPrivate0 methodNHibernate.NHibernateUtil.IsPropertyInitialized(Object,String)
.ctor(String)PublicInternal3 methodsNHibernate.TransactionException..ctor(String)
.ctor(String,Exception)PublicInternal3 methodsNHibernate.TransactionException..ctor(String,Exception)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.TransactionException..ctor(SerializationInfo ,StreamingContext)
.ctor(String)PublicInternal3 methodsNHibernate.StaleStateException..ctor(String)
.ctor(String,Object)PublicInternal6 methodsNHibernate.StaleObjectStateException..ctor(String,Object)
get_EntityName()PublicPrivate0 methodNHibernate.StaleObjectStateException.get_EntityName()
get_Identifier()PublicPrivate0 methodNHibernate.StaleObjectStateException.get_Identifier()
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.StaleObjectStateException..ctor(SerializationInfo ,StreamingContext)
.ctor(String)PublicInternal125 methodsNHibernate.MappingException..ctor(String)
.ctor(Exception)PublicInternal1 methodNHibernate.MappingException..ctor(Exception)
.ctor(String,Exception)PublicInternal40 methodsNHibernate.MappingException..ctor(String,Exception)
.ctor(ICollection<String>)PublicInternal1 methodNHibernate.InvalidProxyTypeException..ctor(ICollection<String>)
get_Errors()PublicPrivate1 methodNHibernate.InvalidProxyTypeException.get_Errors()
.ctor(SerializationInfo,StreamingContext)PublicPrivate0 methodNHibernate.InvalidProxyTypeException..ctor(SerializationInfo ,StreamingContext)
.ctor(String)PublicInternal1 methodNHibernate.FKUnmatchingColumnsException..ctor(String)
.ctor(String,Exception)PublicPrivate0 methodNHibernate.FKUnmatchingColumnsException..ctor(String,Exception)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.FKUnmatchingColumnsException..ctor(SerializationInfo ,StreamingContext)
.ctor(String,Object,String)PublicInternal4 methodsNHibernate.LazyInitializationException..ctor(String,Object,String)
get_EntityName()PublicPrivate0 methodNHibernate.LazyInitializationException.get_EntityName()
get_EntityId()PublicPrivate0 methodNHibernate.LazyInitializationException.get_EntityId()
.ctor(String)PublicInternal2 methodsNHibernate.LazyInitializationException..ctor(String)
.ctor(Exception)PublicPrivate0 methodNHibernate.LazyInitializationException..ctor(Exception)
.ctor(String,Exception)PublicPrivate2 methodsNHibernate.LazyInitializationException..ctor(String,Exception)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.LazyInitializationException..ctor(SerializationInfo ,StreamingContext)
.ctor(String,String,String)PublicInternal1 methodNHibernate.PropertyValueException..ctor(String,String,String)
get_EntityName()PublicPrivate0 methodNHibernate.PropertyValueException.get_EntityName()
get_PropertyName()PublicPrivate0 methodNHibernate.PropertyValueException.get_PropertyName()
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.PropertyValueException..ctor(SerializationInfo ,StreamingContext)
.ctor(String,Object,String)PublicInternal3 methodsNHibernate.WrongClassException..ctor(String,Object,String)
get_Identifier()PublicPrivate0 methodNHibernate.WrongClassException.get_Identifier()
get_EntityName()PublicPrivate0 methodNHibernate.WrongClassException.get_EntityName()
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.WrongClassException..ctor(SerializationInfo ,StreamingContext)
.ctor(String,Object,String)PublicInternal6 methodsNHibernate.ObjectDeletedException..ctor(String,Object,String)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.ObjectDeletedException..ctor(SerializationInfo ,StreamingContext)
.ctor(String)PublicInternal58 methodsNHibernate.AssertionFailure..ctor(String)
.ctor(String,Exception)PublicInternal2 methodsNHibernate.AssertionFailure..ctor(String,Exception)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.AssertionFailure..ctor(SerializationInfo,StreamingContext)
SetLoggersFactory(ILoggerFactory)PublicPrivate1 methodNHibernate.LoggerProvider.SetLoggersFactory(ILoggerFactory)
LoggerFor(String)PublicInternal5 methodsNHibernate.LoggerProvider.LoggerFor(String)
.ctor(Object)PublicInternal2 methodsNHibernate.Log4NetLogger..ctor(Object)
.ctor(Int32)PublicInternal1 methodNHibernate.NonUniqueResultException..ctor(Int32)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.NonUniqueResultException..ctor(SerializationInfo ,StreamingContext)
.ctor(String)PublicInternal4 methodsNHibernate.SessionException..ctor(String)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.SessionException..ctor(SerializationInfo,StreamingContext)
.ctor(Type,String,String)PublicInternal8 methodsNHibernate.PropertyNotFoundException..ctor(Type,String,String)
.ctor(Type,String)PublicInternal1 methodNHibernate.PropertyNotFoundException..ctor(Type,String)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.PropertyNotFoundException..ctor(SerializationInfo ,StreamingContext)
get_TargetType()PublicPrivate0 methodNHibernate.PropertyNotFoundException.get_TargetType()
get_PropertyName()PublicPrivate0 methodNHibernate.PropertyNotFoundException.get_PropertyName()
get_AccessorType()PublicPrivate0 methodNHibernate.PropertyNotFoundException.get_AccessorType()
.ctor(String,Object,String)PublicPrivate1 methodNHibernate.NonUniqueObjectException..ctor(String,Object,String)
.ctor(Object,String)PublicInternal3 methodsNHibernate.NonUniqueObjectException..ctor(Object,String)
get_Identifier()PublicPrivate0 methodNHibernate.NonUniqueObjectException.get_Identifier()
get_EntityName()PublicPrivate0 methodNHibernate.NonUniqueObjectException.get_EntityName()
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.NonUniqueObjectException..ctor(SerializationInfo ,StreamingContext)
TransformToRowCount(DetachedCriteria)PublicPrivate0 methodNHibernate.CriteriaTransformer.TransformToRowCount(DetachedCriteria)
TransformToRowCount(ICriteria)PublicPrivate0 methodNHibernate.CriteriaTransformer.TransformToRowCount(ICriteria)
Clone(DetachedCriteria)PublicPrivate0 methodNHibernate.CriteriaTransformer.Clone(DetachedCriteria)
Clone(ICriteria)PublicPrivate0 methodNHibernate.CriteriaTransformer.Clone(ICriteria)
.ctor(String)PublicInternal1 methodNHibernate.ReplicationMode+ExceptionReplicationMode..ctor(String)
.ctor(String)PublicInternal1 methodNHibernate.ReplicationMode+IgnoreReplicationMode..ctor(String)
.ctor(String)PublicInternal1 methodNHibernate.ReplicationMode+LatestVersionReplicationMode..ctor(String)
.ctor(String)PublicInternal1 methodNHibernate.ReplicationMode+OverwriteReplicationMode..ctor(String)
.ctor(Exception)PublicPrivate0 methodNHibernate.CallbackException..ctor(Exception)
.ctor(String)PublicPrivate0 methodNHibernate.CallbackException..ctor(String)
.ctor(String,Exception)PublicPrivate1 methodNHibernate.CallbackException..ctor(String,Exception)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.CallbackException..ctor(SerializationInfo,StreamingContext)
ToString(EntityMode)PublicInternal1 methodNHibernate.EntityModeHelper.ToString(EntityMode)
Parse(String)PublicInternal1 methodNHibernate.EntityModeHelper.Parse(String)
.ctor(String)PublicInternal10 methodsNHibernate.TransientObjectException..ctor(String)
.ctor(SerializationInfo,StreamingContext)ProtectedPrivate0 methodNHibernate.TransientObjectException..ctor(SerializationInfo ,StreamingContext)

Statistics

Stat   Visibility   CouldBeDeclared   MethodsCallingMe
Sum:000
Average:000
Minimum:000
Maximum:000
Standard deviation:000
Variance:000
warningCritical    Rule warning: Types that could have a lower visibility
// <Name>Types that could have a lower visibility</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.Visibility != t.OptimalVisibility &&
  
!t.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
  
!t.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch())
  
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
  
select new { t, t.Visibility , 
                
CouldBeDeclared = t.OptimalVisibility, 
                
t.TypesUsingMe }

1,387 types matched

typesVisibilityCouldBeDeclaredTypesUsingMeFull Name
IQueryExpressionPublicInternal14 typesNHibernate.IQueryExpression
NHibernateUtilPublicInternal64 typesNHibernate.NHibernateUtil
IQueryPublicInternal31 typesNHibernate.IQuery
ISQLQueryPublicInternal5 typesNHibernate.ISQLQuery
TransactionExceptionPublicInternal1 typeNHibernate.TransactionException
IdentityEqualityComparerPublicInternal2 typesNHibernate.IdentityEqualityComparer
ITransactionPublicInternal17 typesNHibernate.ITransaction
StaleObjectStateExceptionPublicInternal6 typesNHibernate.StaleObjectStateException
InvalidProxyTypeExceptionPublicInternal1 typeNHibernate.InvalidProxyTypeException
FKUnmatchingColumnsExceptionPublicInternal1 typeNHibernate.FKUnmatchingColumnsException
LazyInitializationExceptionPublicInternal3 typesNHibernate.LazyInitializationException
IInterceptorPublicInternal26 typesNHibernate.IInterceptor
PropertyValueExceptionPublicInternal1 typeNHibernate.PropertyValueException
ISessionFactoryPublicInternal42 typesNHibernate.ISessionFactory
IDetachedQueryPublicInternal4 typesNHibernate.IDetachedQuery
WrongClassExceptionPublicInternal2 typesNHibernate.WrongClassException
ObjectDeletedExceptionPublicInternal5 typesNHibernate.ObjectDeletedException
AssertionFailurePublicInternal40 typesNHibernate.AssertionFailure
IFilterPublicInternal110 typesNHibernate.IFilter
ILoggerFactoryPublicInternal3 typesNHibernate.ILoggerFactory
NoLoggingLoggerFactoryPublicInternal1 typeNHibernate.NoLoggingLoggerFactory
NoLoggingInternalLoggerPublicInternal1 typeNHibernate.NoLoggingInternalLogger
Log4NetLoggerFactoryPublicInternal1 typeNHibernate.Log4NetLoggerFactory
Log4NetLoggerPublicInternal1 typeNHibernate.Log4NetLogger
IQueryOverPublicInternal9 typesNHibernate.IQueryOver
IQueryOver<TRoot>PublicInternal5 typesNHibernate.IQueryOver<TRoot>
IQueryOver<TRoot,TSubType>PublicInternal18 typesNHibernate.IQueryOver<TRoot,TSubType>
NonUniqueResultExceptionPublicInternal1 typeNHibernate.NonUniqueResultException
ICriteriaPublicInternal70 typesNHibernate.ICriteria
SessionExceptionPublicInternal2 typesNHibernate.SessionException
PropertyNotFoundExceptionPublicInternal9 typesNHibernate.PropertyNotFoundException
NonUniqueObjectExceptionPublicInternal3 typesNHibernate.NonUniqueObjectException
IMultiCriteriaPublicInternal5 typesNHibernate.IMultiCriteria
EmptyInterceptorPublicInternal2 typesNHibernate.EmptyInterceptor
CriteriaTransformerPublicInternal0 typeNHibernate.CriteriaTransformer
EntityModeEqualityComparerPublicInternal1 typeNHibernate.EntityModeEqualityComparer
ReplicationModePublicInternal9 typesNHibernate.ReplicationMode
ISessionPublicInternal35 typesNHibernate.ISession
CallbackExceptionPublicInternal0 typeNHibernate.CallbackException
IMultiQueryPublicInternal5 typesNHibernate.IMultiQuery
EntityModeHelperPublicInternal2 typesNHibernate.EntityModeHelper
TransientObjectExceptionPublicInternal11 typesNHibernate.TransientObjectException
PropertyAccessExceptionPublicInternal5 typesNHibernate.PropertyAccessException
PersistentObjectExceptionPublicInternal6 typesNHibernate.PersistentObjectException
LockModePublicInternal81 typesNHibernate.LockMode
IStatelessSessionPublicInternal5 typesNHibernate.IStatelessSession
ConnectionReleaseModeParserPublicInternal3 typesNHibernate.ConnectionReleaseModeParser
DuplicateMappingExceptionPublicInternal1 typeNHibernate.DuplicateMappingException
TypeMismatchExceptionPublicInternal2 typesNHibernate.TypeMismatchException
IDatabinderPublicInternal0 typeNHibernate.IDatabinder
QueryParameterExceptionPublicInternal1 typeNHibernate.QueryParameterException
IFutureValue<T>PublicInternal10 typesNHibernate.IFutureValue<T>
ObjectNotFoundExceptionPublicInternal1 typeNHibernate.ObjectNotFoundException
InstantiationExceptionPublicInternal7 typesNHibernate.InstantiationException
LinkedHashMap<TKey,TValue>PublicInternal17 typesNHibernate.Util.LinkedHashMap<TKey,TValue>
LinkedHashMap<TKey,TValue>+EntryProtectedPrivate6 typesNHibernate.Util.LinkedHashMap<TKey,TValue>+Entry
LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>ProtectedPrivate1 typeNHibernate.Util.LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>
EqualsHelperPublicInternal2 typesNHibernate.Util.EqualsHelper
AssemblyQualifiedTypeNamePublicInternal9 typesNHibernate.Util.AssemblyQualifiedTypeName
StringHelperPublicInternal122 typesNHibernate.Util.StringHelper
ThreadSafeDictionary<TKey,TValue>PublicInternal3 typesNHibernate.Util.ThreadSafeDictionary<TKey,TValue>
ParserExceptionPublicInternal2 typesNHibernate.Util.ParserException
TypeNameParserPublicInternal7 typesNHibernate.Util.TypeNameParser
CollectionHelperPublicInternal17 typesNHibernate.Util.CollectionHelper
CollectionHelper+EmptyEnumerableClass<T>PublicInternal2 typesNHibernate.Util.CollectionHelper+EmptyEnumerableClass<T>
CollectionHelper+EmptyMapClass<TKey,TValue>PublicInternal19 typesNHibernate.Util.CollectionHelper+EmptyMapClass<TKey,TValue>
ObjectUtilsPublicInternal0 typeNHibernate.Util.ObjectUtils
IdentitySetPublicInternal3 typesNHibernate.Util.IdentitySet
NullableDictionary<TKey,TValue>PublicInternal6 typesNHibernate.Util.NullableDictionary<TKey,TValue>
UnmodifiableDictionary<TKey,TValue>PublicInternal4 typesNHibernate.Util.UnmodifiableDictionary<TKey,TValue>
JoinedEnumerablePublicInternal1 typeNHibernate.Util.JoinedEnumerable
JoinedEnumerable<T>PublicInternal7 typesNHibernate.Util.JoinedEnumerable<T>
CollectionPrinterPublicInternal10 typesNHibernate.Util.CollectionPrinter
ADOExceptionReporterPublicInternal2 typesNHibernate.Util.ADOExceptionReporter
SoftLimitMRUCachePublicInternal1 typeNHibernate.Util.SoftLimitMRUCache
FilterHelperPublicInternal4 typesNHibernate.Util.FilterHelper
ExpressionsHelperPublicInternal1 typeNHibernate.Util.ExpressionsHelper
SerializationHelperPublicInternal0 typeNHibernate.Util.SerializationHelper
PropertiesHelperPublicInternal15 typesNHibernate.Util.PropertiesHelper
ArrayHelperPublicInternal56 typesNHibernate.Util.ArrayHelper
IdentityMapPublicInternal7 typesNHibernate.Util.IdentityMap
WeakRefWrapperPublicInternal2 typesNHibernate.Util.WeakRefWrapper
WeakEnumeratorPublicInternal1 typeNHibernate.Util.WeakEnumerator
WeakHashtablePublicInternal1 typeNHibernate.Util.WeakHashtable
SafetyEnumerable<T>PublicInternal14 typesNHibernate.Util.SafetyEnumerable<T>
StringTokenizerPublicInternal12 typesNHibernate.Util.StringTokenizer
LRUMapPublicInternal2 typesNHibernate.Util.LRUMap
SingletonEnumerable<T>PublicInternal4 typesNHibernate.Util.SingletonEnumerable<T>
SimpleMRUCachePublicInternal1 typeNHibernate.Util.SimpleMRUCache
IUserTypePublicInternal5 typesNHibernate.UserTypes.IUserType
IEnhancedUserTypePublicInternal1 typeNHibernate.UserTypes.IEnhancedUserType
IUserVersionTypePublicInternal1 typeNHibernate.UserTypes.IUserVersionType
IParameterizedTypePublicInternal2 typesNHibernate.UserTypes.IParameterizedType
IUserCollectionTypePublicInternal2 typesNHibernate.UserTypes.IUserCollectionType
ICompositeUserTypePublicInternal3 typesNHibernate.UserTypes.ICompositeUserType
ILoggableUserTypePublicInternal0 typeNHibernate.UserTypes.ILoggableUserType
ForeignKeyDirectionPublicInternal19 typesNHibernate.Type.ForeignKeyDirection
ICacheAssemblerPublicInternal110 typesNHibernate.Type.ICacheAssembler
ITypePublicInternal468 typesNHibernate.Type.IType
IAssociationTypePublicInternal58 typesNHibernate.Type.IAssociationType

Statistics

Stat   Visibility   CouldBeDeclared   TypesUsingMe
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 &&
 
!f.HasAttribute("NDepend.Attributes.CannotDecreaseVisibilityAttribute".AllowNoMatch()) &&
 
!f.HasAttribute("NDepend.Attributes.IsNotDeadCodeAttribute".AllowNoMatch())
  
// If you don't want to link NDepend.API.dll, you can use your own attributes and adapt this rule.
  
select new { f, 
             
f.Visibility , 
             
CouldBeDeclared = f.OptimalVisibility,
             
f.MethodsUsingMe }

1,200 fields matched

fieldsVisibilityCouldBeDeclaredMethodsUsingMeFull Name
AnsiStringPublicInternal8 methodsNHibernate.NHibernateUtil.AnsiString
BinaryPublicInternal11 methodsNHibernate.NHibernateUtil.Binary
BinaryBlobPublicInternal4 methodsNHibernate.NHibernateUtil.BinaryBlob
BooleanPublicInternal13 methodsNHibernate.NHibernateUtil.Boolean
BytePublicInternal6 methodsNHibernate.NHibernateUtil.Byte
CharacterPublicInternal11 methodsNHibernate.NHibernateUtil.Character
CultureInfoPublicInternal2 methodsNHibernate.NHibernateUtil.CultureInfo
DateTimePublicInternal13 methodsNHibernate.NHibernateUtil.DateTime
DateTime2PublicInternal3 methodsNHibernate.NHibernateUtil.DateTime2
LocalDateTimePublicInternal2 methodsNHibernate.NHibernateUtil.LocalDateTime
UtcDateTimePublicInternal2 methodsNHibernate.NHibernateUtil.UtcDateTime
DateTimeOffsetPublicInternal3 methodsNHibernate.NHibernateUtil.DateTimeOffset
DatePublicInternal9 methodsNHibernate.NHibernateUtil.Date
DecimalPublicInternal10 methodsNHibernate.NHibernateUtil.Decimal
DoublePublicInternal24 methodsNHibernate.NHibernateUtil.Double
CurrencyPublicInternal3 methodsNHibernate.NHibernateUtil.Currency
GuidPublicInternal6 methodsNHibernate.NHibernateUtil.Guid
Int16PublicInternal9 methodsNHibernate.NHibernateUtil.Int16
Int32PublicInternal39 methodsNHibernate.NHibernateUtil.Int32
Int64PublicInternal17 methodsNHibernate.NHibernateUtil.Int64
SBytePublicInternal3 methodsNHibernate.NHibernateUtil.SByte
UInt16PublicInternal2 methodsNHibernate.NHibernateUtil.UInt16
UInt32PublicInternal2 methodsNHibernate.NHibernateUtil.UInt32
UInt64PublicInternal3 methodsNHibernate.NHibernateUtil.UInt64
SinglePublicInternal13 methodsNHibernate.NHibernateUtil.Single
StringPublicInternal43 methodsNHibernate.NHibernateUtil.String
StringClobPublicInternal4 methodsNHibernate.NHibernateUtil.StringClob
TimePublicInternal10 methodsNHibernate.NHibernateUtil.Time
TicksPublicInternal2 methodsNHibernate.NHibernateUtil.Ticks
TimeAsTimeSpanPublicInternal2 methodsNHibernate.NHibernateUtil.TimeAsTimeSpan
TimeSpanPublicInternal2 methodsNHibernate.NHibernateUtil.TimeSpan
TimestampPublicInternal13 methodsNHibernate.NHibernateUtil.Timestamp
DbTimestampPublicInternal3 methodsNHibernate.NHibernateUtil.DbTimestamp
TrueFalsePublicInternal2 methodsNHibernate.NHibernateUtil.TrueFalse
YesNoPublicInternal2 methodsNHibernate.NHibernateUtil.YesNo
ClassPublicInternal3 methodsNHibernate.NHibernateUtil.Class
ClassMetaTypePublicPrivate1 methodNHibernate.NHibernateUtil.ClassMetaType
SerializablePublicInternal5 methodsNHibernate.NHibernateUtil.Serializable
ObjectPublicInternal2 methodsNHibernate.NHibernateUtil.Object
AnsiCharPublicInternal2 methodsNHibernate.NHibernateUtil.AnsiChar
XmlDocPublicInternal2 methodsNHibernate.NHibernateUtil.XmlDoc
XDocPublicInternal2 methodsNHibernate.NHibernateUtil.XDoc
UriPublicInternal2 methodsNHibernate.NHibernateUtil.Uri
ExceptionPublicInternal2 methodsNHibernate.ReplicationMode.Exception
IgnorePublicPrivate1 methodNHibernate.ReplicationMode.Ignore
LatestVersionPublicPrivate1 methodNHibernate.ReplicationMode.LatestVersion
OverwritePublicPrivate1 methodNHibernate.ReplicationMode.Overwrite
NonePublicInternal32 methodsNHibernate.LockMode.None
ReadPublicInternal16 methodsNHibernate.LockMode.Read
UpgradePublicInternal11 methodsNHibernate.LockMode.Upgrade
UpgradeNoWaitPublicInternal8 methodsNHibernate.LockMode.UpgradeNoWait
WritePublicInternal8 methodsNHibernate.LockMode.Write
ForcePublicInternal8 methodsNHibernate.LockMode.Force
dictionaryProtectedPrivate3 methodsNHibernate.Util.LinkedHashMap<TKey,TValue>+BackwardEnumerator<T> .dictionary
versionProtectedPrivate2 methodsNHibernate.Util.LinkedHashMap<TKey,TValue>+BackwardEnumerator<T> .version
EmptyEnumerablePublicInternal3 methodsNHibernate.Util.CollectionHelper.EmptyEnumerable
EmptyMapPublicPrivate1 methodNHibernate.Util.CollectionHelper.EmptyMap
EmptyCollectionPublicInternal3 methodsNHibernate.Util.CollectionHelper.EmptyCollection
EmptyListPublicPrivate1 methodNHibernate.Util.CollectionHelper.EmptyList
EmptyObjectArrayPublicInternal4 methodsNHibernate.Util.ArrayHelper.EmptyObjectArray
EmptyTypeArrayPublicInternal4 methodsNHibernate.Util.ArrayHelper.EmptyTypeArray
EmptyIntArrayPublicInternal2 methodsNHibernate.Util.ArrayHelper.EmptyIntArray
EmptyBoolArrayPublicInternal5 methodsNHibernate.Util.ArrayHelper.EmptyBoolArray
TruePublicInternal2 methodsNHibernate.Util.ArrayHelper.True
FalsePublicInternal2 methodsNHibernate.Util.ArrayHelper.False
ForeignKeyFromParentPublicInternal7 methodsNHibernate.Type.ForeignKeyDirection.ForeignKeyFromParent
ForeignKeyToParentPublicInternal6 methodsNHibernate.Type.ForeignKeyDirection.ForeignKeyToParent
UnfetchedCollectionPublicInternal8 methodsNHibernate.Type.CollectionType.UnfetchedCollection
tuplizerMappingProtectedOrInternalPrivate9 methodsNHibernate.Type.ComponentType.tuplizerMapping
BaseDateValuePublicPrivate2 methodsNHibernate.Type.DateType.BaseDateValue
propertyTypeProtectedOrInternalInternal5 methodsNHibernate.Properties.XmlAccessor+XmlSetter.propertyType
UnknownPublicInternal13 methodsNHibernate.Properties.BackrefPropertyAccessor.Unknown
referencedPropertyNameInternalProtected5 methodsNHibernate.Mapping.ToOne.referencedPropertyName
columnsInternalPrivate3 methodsNHibernate.Mapping.Table+ForeignKeyKey.columns
referencedClassNameInternalPrivate1 methodNHibernate.Mapping.Table+ForeignKeyKey.referencedClassName
referencedColumnsInternalPrivate3 methodsNHibernate.Mapping.Table+ForeignKeyKey.referencedColumns
UnfetchedPropertyPublicInternal12 methodsNHibernate.Intercept.LazyPropertyInitializer.UnfetchedProperty
parameterMetadataProtectedOrInternalInternal18 methodsNHibernate.Impl.AbstractQueryImpl.parameterMetadata
posUntypeParamsProtectedPrivate5 methodsNHibernate.Impl.AbstractDetachedQuery.posUntypeParams
namedUntypeParamsProtectedPrivate5 methodsNHibernate.Impl.AbstractDetachedQuery.namedUntypeParams
namedUntypeListParamsProtectedPrivate5 methodsNHibernate.Impl.AbstractDetachedQuery.namedUntypeListParams
optionalUntypeParamsProtectedPrivate5 methodsNHibernate.Impl.AbstractDetachedQuery.optionalUntypeParams
posParamsProtectedPrivate5 methodsNHibernate.Impl.AbstractDetachedQuery.posParams
namedParamsProtectedPrivate5 methodsNHibernate.Impl.AbstractDetachedQuery.namedParams
namedListParamsProtectedPrivate5 methodsNHibernate.Impl.AbstractDetachedQuery.namedListParams
lockModesProtectedPrivate5 methodsNHibernate.Impl.AbstractDetachedQuery.lockModes
resultTransformerProtectedPrivate4 methodsNHibernate.Impl.AbstractDetachedQuery.resultTransformer
shouldIgnoredUnknownNamedParametersProtectedPrivate3 methodsNHibernate.Impl.AbstractDetachedQuery .shouldIgnoredUnknownNamedParameters
MARKERPublicInternal3 methodsNHibernate.Impl.FilterImpl.MARKER
entityInternalPrivate3 methodsNHibernate.Transform.DistinctRootEntityResultTransformer+Identity .entity
AliasToEntityMapPublicInternal2 methodsNHibernate.Transform.Transformers.AliasToEntityMap
ToListPublicInternal2 methodsNHibernate.Transform.Transformers.ToList
DistinctRootEntityPublicPrivate1 methodNHibernate.Transform.Transformers.DistinctRootEntity
PassThroughPublicPrivate1 methodNHibernate.Transform.Transformers.PassThrough
RootEntityPublicPrivate1 methodNHibernate.Transform.Transformers.RootEntity
NotNullPublicInternal5 methodsNHibernate.SqlCommand.InFragment.NotNull
NullPublicInternal5 methodsNHibernate.SqlCommand.InFragment.Null
ParameterPositionPublicInternal8 methodsNHibernate.SqlCommand.Parameter.ParameterPosition
EmptyPublicInternal17 methodsNHibernate.SqlCommand.SqlString.Empty
PlaceholderPublicInternal14 methodsNHibernate.SqlCommand.Template.Placeholder

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 }

1,018 fields matched

fieldsSize of instanceFull Name
NoneN/ANHibernate.LockMode.None
ReadN/ANHibernate.LockMode.Read
UpgradeN/ANHibernate.LockMode.Upgrade
UpgradeNoWaitN/ANHibernate.LockMode.UpgradeNoWait
WriteN/ANHibernate.LockMode.Write
current4NHibernate.Util.LinkedHashMap<TKey,TValue>+ForwardEnumerator<T> .current
ForeignKeyFromParentN/ANHibernate.Type.ForeignKeyDirection.ForeignKeyFromParent
ForeignKeyToParentN/ANHibernate.Type.ForeignKeyDirection.ForeignKeyToParent
tuplizerMapping4NHibernate.Type.ComponentType.tuplizerMapping
entityName4NHibernate.Type.AnyType+ObjectTypeCacheEntry.entityName
id4NHibernate.Type.AnyType+ObjectTypeCacheEntry.id
factory4NHibernate.Properties.XmlAccessor+XmlGetter.factory
propertyType4NHibernate.Properties.XmlAccessor+XmlGetter.propertyType
propertyType4NHibernate.Properties.XmlAccessor+XmlSetter.propertyType
uniqueInteger4NHibernate.Mapping.Column.uniqueInteger
referencedPropertyName4NHibernate.Mapping.ToOne.referencedPropertyName
columns4NHibernate.Mapping.Table+ForeignKeyKey.columns
referencedClassName4NHibernate.Mapping.Table+ForeignKeyKey.referencedClassName
referencedColumns4NHibernate.Mapping.Table+ForeignKeyKey.referencedColumns
name4NHibernate.Param.ParameterTranslationsImpl+NamedParamTempHolder.name
type4NHibernate.Param.ParameterTranslationsImpl+NamedParamTempHolder.type
parameterMetadata4NHibernate.Impl.AbstractQueryImpl.parameterMetadata
cacheable1NHibernate.Impl.AbstractDetachedQuery.cacheable
cacheRegion4NHibernate.Impl.AbstractDetachedQuery.cacheRegion
readOnly1NHibernate.Impl.AbstractDetachedQuery.readOnly
flushMode4NHibernate.Impl.AbstractDetachedQuery.flushMode
resultTransformer4NHibernate.Impl.AbstractDetachedQuery.resultTransformer
shouldIgnoredUnknownNamedParameters1NHibernate.Impl.AbstractDetachedQuery .shouldIgnoredUnknownNamedParameters
cacheMode5NHibernate.Impl.AbstractDetachedQuery.cacheMode
comment4NHibernate.Impl.AbstractDetachedQuery.comment
ParameterPosition5NHibernate.SqlCommand.Parameter.ParameterPosition
returnColumnName4NHibernate.SqlCommand.CaseFragment.returnColumnName
cases4NHibernate.SqlCommand.CaseFragment.cases
contextN/ANHibernate.Context.ThreadLocalSessionContext.context
IsInActiveTransaction1NHibernate.Transaction .AdoNetWithDistributedTransactionFactory+DistributedTransactionContext .IsInActiveTransaction
loadCount8NHibernate.Stat.EntityStatistics.loadCount
updateCount8NHibernate.Stat.EntityStatistics.updateCount
insertCount8NHibernate.Stat.EntityStatistics.insertCount
deleteCount8NHibernate.Stat.EntityStatistics.deleteCount
fetchCount8NHibernate.Stat.EntityStatistics.fetchCount
optimisticFailureCount8NHibernate.Stat.EntityStatistics.optimisticFailureCount
loadCount8NHibernate.Stat.CollectionStatistics.loadCount
fetchCount8NHibernate.Stat.CollectionStatistics.fetchCount
updateCount8NHibernate.Stat.CollectionStatistics.updateCount
removeCount8NHibernate.Stat.CollectionStatistics.removeCount
recreateCount8NHibernate.Stat.CollectionStatistics.recreateCount
cacheHitCount8NHibernate.Stat.QueryStatistics.cacheHitCount
cacheMissCount8NHibernate.Stat.QueryStatistics.cacheMissCount
cachePutCount8NHibernate.Stat.QueryStatistics.cachePutCount
hitCount8NHibernate.Stat.SecondLevelCacheStatistics.hitCount
missCount8NHibernate.Stat.SecondLevelCacheStatistics.missCount
putCount8NHibernate.Stat.SecondLevelCacheStatistics.putCount
propertySpan4NHibernate.Tuple.Component.AbstractComponentTuplizer.propertySpan
getters4NHibernate.Tuple.Component.AbstractComponentTuplizer.getters
setters4NHibernate.Tuple.Component.AbstractComponentTuplizer.setters
instantiator4NHibernate.Tuple.Component.AbstractComponentTuplizer.instantiator
hasCustomAccessors1NHibernate.Tuple.Component.AbstractComponentTuplizer .hasCustomAccessors
propertySpan4NHibernate.Tuple.Entity.AbstractEntityTuplizer.propertySpan
getters4NHibernate.Tuple.Entity.AbstractEntityTuplizer.getters
setters4NHibernate.Tuple.Entity.AbstractEntityTuplizer.setters
hasCustomAccessors1NHibernate.Tuple.Entity.AbstractEntityTuplizer.hasCustomAccessors
Text4NHibernate.Dialect.Function.SQLFunctionTemplate+TemplateChunk.Text
ArgumentIndex4NHibernate.Dialect.Function.SQLFunctionTemplate+TemplateChunk .ArgumentIndex
helper4NHibernate.Loader.Loader.helper
result4NHibernate.Loader.Custom.Sql .SQLQueryParser+ParameterSubstitutionRecognizer.result
namedParameterBindPoints4NHibernate.Loader.Custom.Sql .SQLQueryParser+ParameterSubstitutionRecognizer .namedParameterBindPoints
parameterCount4NHibernate.Loader.Custom.Sql .SQLQueryParser+ParameterSubstitutionRecognizer.parameterCount
rowIdName4NHibernate.Persister.Entity.AbstractEntityPersister.rowIdName
propertyDefinedOnSubclass4NHibernate.Persister.Entity.AbstractEntityPersister .propertyDefinedOnSubclass
insertCallable4NHibernate.Persister.Entity.AbstractEntityPersister.insertCallable
updateCallable4NHibernate.Persister.Entity.AbstractEntityPersister.updateCallable
deleteCallable4NHibernate.Persister.Entity.AbstractEntityPersister.deleteCallable
customSQLInsert4NHibernate.Persister.Entity.AbstractEntityPersister.customSQLInsert
customSQLUpdate4NHibernate.Persister.Entity.AbstractEntityPersister.customSQLUpdate
customSQLDelete4NHibernate.Persister.Entity.AbstractEntityPersister.customSQLDelete
insertResultCheckStyles4NHibernate.Persister.Entity.AbstractEntityPersister .insertResultCheckStyles
updateResultCheckStyles4NHibernate.Persister.Entity.AbstractEntityPersister .updateResultCheckStyles
deleteResultCheckStyles4NHibernate.Persister.Entity.AbstractEntityPersister .deleteResultCheckStyles
indexContainsFormula1NHibernate.Persister.Collection.AbstractCollectionPersister .indexContainsFormula
elementIsPureFormula1NHibernate.Persister.Collection.AbstractCollectionPersister .elementIsPureFormula
criteria4NHibernate.Criterion.QueryOver.criteria
impl4NHibernate.Criterion.QueryOver.impl
ascending1NHibernate.Criterion.Order.ascending
propertyName4NHibernate.Criterion.Order.propertyName
projection4NHibernate.Criterion.Order.projection
root4NHibernate.Criterion.Lambda.QueryOverSubqueryBuilderBase<TReturn,TRoot ,TSubType,TBuilderType>.root
root4NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase<TReturn,TRoot ,TSubType>.root
joinType4NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase<TReturn,TRoot ,TSubType>.joinType
isNot1NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn ,TRoot,TSubType>.isNot
root4NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase<TReturn,TRoot ,TSubType>.root
path4NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase<TReturn,TRoot ,TSubType>.path
isAlias1NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase<TReturn,TRoot ,TSubType>.isAlias
projection4NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase<TReturn,TRoot ,TSubType>.projection
root4NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase<TReturn,TRoot ,TSubType>.root
path4NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase<TReturn,TRoot ,TSubType>.path
root4NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase <TReturn,TRoot,TSubType>.root
path4NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase <TReturn,TRoot,TSubType>.path
value4NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase <TReturn,TRoot,TSubType>.value
root4NHibernate.Criterion.Lambda.QueryOverLockBuilderBase<TReturn,TRoot ,TSubType>.root
alias4NHibernate.Criterion.Lambda.QueryOverLockBuilderBase<TReturn,TRoot ,TSubType>.alias

Statistics

Stat   Size of instance
Sum:3 454
Average:3.47
Minimum:1
Maximum:8
Standard deviation:1.34
Variance:1.8
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.

32 types matched

typesctorsFull Name
LinkedHashMap<TKey,TValue>+ForwardEnumerator<T>1 methodNHibernate.Util.LinkedHashMap<TKey,TValue>+ForwardEnumerator<T>
LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>1 methodNHibernate.Util.LinkedHashMap<TKey,TValue>+BackwardEnumerator<T>
EntityType1 methodNHibernate.Type.EntityType
AbstractCharType1 methodNHibernate.Type.AbstractCharType
AbstractStringType1 methodNHibernate.Type.AbstractStringType
AbstractBinaryType2 methodsNHibernate.Type.AbstractBinaryType
XmlAccessor+XmlGetter1 methodNHibernate.Properties.XmlAccessor+XmlGetter
XmlAccessor+XmlSetter1 methodNHibernate.Properties.XmlAccessor+XmlSetter
ToOne1 methodNHibernate.Mapping.ToOne
AbstractFieldInterceptor1 methodNHibernate.Intercept.AbstractFieldInterceptor
EntityAction1 methodNHibernate.Action.EntityAction
AbstractSessionImpl3 methodsNHibernate.Impl.AbstractSessionImpl
AbstractComponentTuplizer1 methodNHibernate.Tuple.Component.AbstractComponentTuplizer
AbstractTableMetadata1 methodNHibernate.Dialect.Schema.AbstractTableMetadata
AbstractColumnMetaData1 methodNHibernate.Dialect.Schema.AbstractColumnMetaData
AbstractIndexMetadata1 methodNHibernate.Dialect.Schema.AbstractIndexMetadata
Loader1 methodNHibernate.Loader.Loader
BasicLoader1 methodNHibernate.Loader.BasicLoader
AbstractEntityJoinWalker2 methodsNHibernate.Loader.AbstractEntityJoinWalker
AbstractEntityLoader1 methodNHibernate.Loader.Entity.AbstractEntityLoader
CollectionJoinWalker1 methodNHibernate.Loader.Collection.CollectionJoinWalker
NonScalarReturn1 methodNHibernate.Loader.Custom.NonScalarReturn
FetchReturn1 methodNHibernate.Loader.Custom.FetchReturn
AbstractCollectionPersister1 methodNHibernate.Persister.Collection.AbstractCollectionPersister
AbstractLazyInitializer1 methodNHibernate.Proxy.AbstractLazyInitializer
BasicLazyInitializer1 methodNHibernate.Proxy.Poco.BasicLazyInitializer
AbstractSelectingDelegate1 methodNHibernate.Id.Insert.AbstractSelectingDelegate
AbstractVisitor1 methodNHibernate.Event.Default.AbstractVisitor
ProxyVisitor1 methodNHibernate.Event.Default.ProxyVisitor
AbstractPersistentCollection1 methodNHibernate.Collection.AbstractPersistentCollection
CascadeStyle1 methodNHibernate.Engine.CascadeStyle
NativeSQLQueryNonScalarReturn1 methodNHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn

Statistics

Stat   ctors
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid public methods not publicly visible
//<Name>Avoid public methods not publicly visible</Name>
// Matched methods are declared public but are not publicly visible by assemblies consumers.
// Their visibility level must be decreased.

warnif count > 0
from m in JustMyCode.Methods where 
   
!m.IsPubliclyVisible && m.IsPublic &&

   
// Eliminate virtual methods
   !m.IsVirtual &&
   
// Eliminate interface and delegate types
   !m.ParentType.IsInterface &&
   
!m.ParentType.IsDelegate &&
   
// Eliminate default constructors
   !(m.IsConstructor && m.NbParameters == 0) &&
   
// Eliminate operators that must be declared public
   !m.IsOperator &&
   
// Eliminate methods generated by compiler
   !m.IsGeneratedByCompiler 
select m

173 methods matched

methodsFull Name
.ctor(String)NHibernate.ReplicationMode+ExceptionReplicationMode..ctor(String)
.ctor(String)NHibernate.ReplicationMode+IgnoreReplicationMode..ctor(String)
.ctor(String)NHibernate.ReplicationMode+LatestVersionReplicationMode..ctor(String)
.ctor(String)NHibernate.ReplicationMode+OverwriteReplicationMode..ctor(String)
.ctor(LinkedHashMap<TKey,TValue>)NHibernate.Util.LinkedHashMap<TKey,TValue>+KeyCollection..ctor (LinkedHashMap<TKey,TValue>)
.ctor(LinkedHashMap<TKey,TValue>)NHibernate.Util.LinkedHashMap<TKey,TValue>+KeyCollection+Enumerator. .ctor(LinkedHashMap<TKey,TValue>)
.ctor(LinkedHashMap<TKey,TValue>)NHibernate.Util.LinkedHashMap<TKey,TValue>+ForwardEnumerator<T>..ctor (LinkedHashMap<TKey,TValue>)
.ctor(LinkedHashMap<TKey,TValue>)NHibernate.Util.LinkedHashMap<TKey,TValue>+ValuesCollection..ctor (LinkedHashMap<TKey,TValue>)
.ctor(LinkedHashMap<TKey,TValue>)NHibernate.Util.LinkedHashMap<TKey,TValue>+ValuesCollection+Enumerator ..ctor(LinkedHashMap<TKey,TValue>)
.ctor(LinkedHashMap<TKey,TValue>)NHibernate.Util.LinkedHashMap<TKey,TValue>+Enumerator..ctor (LinkedHashMap<TKey,TValue>)
.ctor(Object,Object)NHibernate.Util.SequencedHashMap+Entry..ctor(Object,Object)
get_Key()NHibernate.Util.SequencedHashMap+Entry.get_Key()
get_Value()NHibernate.Util.SequencedHashMap+Entry.get_Value()
set_Value(Object)NHibernate.Util.SequencedHashMap+Entry.set_Value(Object)
get_Next()NHibernate.Util.SequencedHashMap+Entry.get_Next()
set_Next(SequencedHashMap+Entry)NHibernate.Util.SequencedHashMap+Entry.set_Next(SequencedHashMap+Entry )
get_Prev()NHibernate.Util.SequencedHashMap+Entry.get_Prev()
set_Prev(SequencedHashMap+Entry)NHibernate.Util.SequencedHashMap+Entry.set_Prev(SequencedHashMap+Entry )
.ctor(SequencedHashMap)NHibernate.Util.SequencedHashMap+KeyCollection..ctor(SequencedHashMap)
Contains(Object)NHibernate.Util.SequencedHashMap+KeyCollection.Contains(Object)
.ctor(SequencedHashMap)NHibernate.Util.SequencedHashMap+ValuesCollection..ctor (SequencedHashMap)
Contains(Object)NHibernate.Util.SequencedHashMap+ValuesCollection.Contains(Object)
.ctor(SequencedHashMap,SequencedHashMap+ReturnType)NHibernate.Util.SequencedHashMap+OrderedEnumerator..ctor (SequencedHashMap,SequencedHashMap+ReturnType)
.ctor(IEnumerable<T>[])NHibernate.Util.JoinedEnumerable<T>+JoinedEnumerator..ctor(IEnumerable <T>[])
.ctor(StringTokenizer)NHibernate.Util.StringTokenizer+StringTokenizerEnumerator..ctor (StringTokenizer)
.ctor(T)NHibernate.Util.SingletonEnumerable<T>+SingletonEnumerator..ctor(T)
Equals(ForeignKeyDirection+ForeignKeyFromParentClass)NHibernate.Type.ForeignKeyDirection+ForeignKeyFromParentClass.Equals (ForeignKeyDirection+ForeignKeyFromParentClass)
Equals(ForeignKeyDirection+ForeignKeyToParentClass)NHibernate.Type.ForeignKeyDirection+ForeignKeyToParentClass.Equals (ForeignKeyDirection+ForeignKeyToParentClass)
.ctor(BackrefPropertyAccessor)NHibernate.Properties.BackrefPropertyAccessor+BackrefGetter..ctor (BackrefPropertyAccessor)
.ctor(String,IType,Int32)NHibernate.Param.CollectionFilterKeyParameterSpecification..ctor (String,IType,Int32)
GetDataTypeName(Int32)NHibernate.Driver.NDataReader+NResult.GetDataTypeName(Int32)
GetFieldCount()NHibernate.Driver.NDataReader+NResult.GetFieldCount()
GetFieldType(Int32)NHibernate.Driver.NDataReader+NResult.GetFieldType(Int32)
GetName(Int32)NHibernate.Driver.NDataReader+NResult.GetName(Int32)
GetSchemaTable()NHibernate.Driver.NDataReader+NResult.GetSchemaTable()
GetOrdinal(String)NHibernate.Driver.NDataReader+NResult.GetOrdinal(String)
GetValue(Int32,Int32)NHibernate.Driver.NDataReader+NResult.GetValue(Int32,Int32)
GetValue(Int32,String)NHibernate.Driver.NDataReader+NResult.GetValue(Int32,String)
GetValues(Int32,Object[])NHibernate.Driver.NDataReader+NResult.GetValues(Int32,Object[])
get_RowCount()NHibernate.Driver.NDataReader+NResult.get_RowCount()
.ctor(IList)NHibernate.Impl.MultipleQueriesCacheAssembler..ctor(IList)
GetResultFromQueryCache(ISessionImplementor,QueryParameters,ISet <String>,IQueryCache,QueryKey)NHibernate.Impl.MultipleQueriesCacheAssembler.GetResultFromQueryCache (ISessionImplementor,QueryParameters,ISet<String>,IQueryCache,QueryKey )
.ctor(DelayedEnumerator<T>+GetResult)NHibernate.Impl.DelayedEnumerator<T>..ctor(DelayedEnumerator<T >+GetResult)
get_Enumerable()NHibernate.Impl.DelayedEnumerator<T>.get_Enumerable()
get_QueryExpression()NHibernate.Impl.ExpressionQueryImpl.get_QueryExpression()
.ctor(IQueryExpression,ISessionImplementor,ParameterMetadata)NHibernate.Impl.ExpressionQueryImpl..ctor(IQueryExpression ,ISessionImplementor,ParameterMetadata)
.ctor(IQueryExpression,IASTNode,String)NHibernate.Impl.ExpandedQueryExpression..ctor(IQueryExpression ,IASTNode,String)
Expand(IASTNode,Dictionary<String,List<String>>)NHibernate.Impl.ParameterExpander.Expand(IASTNode,Dictionary<String ,List<String>>)
LocateParameters(IASTNode,HashSet<String>)NHibernate.Impl.ParameterDetector.LocateParameters(IASTNode,HashSet <String>)
.ctor(FutureValue<T>+GetResult)NHibernate.Impl.FutureValue<T>..ctor(FutureValue<T>+GetResult)
.ctor(SqlStringBuilder)NHibernate.SqlCommand.SqlStringBuilder+AddingSqlStringVisitor..ctor (SqlStringBuilder)
.ctor(String,IType)NHibernate.Dialect.FirebirdDialect+CastedFunction..ctor(String,IType)
.ctor(MsSql2000Dialect,IDictionary<String,LockMode>)NHibernate.Dialect.MsSql2000Dialect+LockHintAppender..ctor (MsSql2000Dialect,IDictionary<String,LockMode>)
ReplaceMatch(Match)NHibernate.Dialect.MsSql2000Dialect+LockHintAppender.ReplaceMatch (Match)
.ctor(String,Int32)NHibernate.Dialect.Function.SQLFunctionTemplate+TemplateChunk..ctor (String,Int32)
.ctor(SQLQueryReturnProcessor+ResultAliasContext)NHibernate.Loader.Custom.Sql.SQLCustomQuery+ParserContext..ctor (SQLQueryReturnProcessor+ResultAliasContext)
.ctor(ValueInclusion[])NHibernate.Persister.Entity .AbstractEntityPersister+NoneInclusionChecker..ctor(ValueInclusion[])
.ctor(Boolean[])NHibernate.Persister.Entity .AbstractEntityPersister+FullInclusionChecker..ctor(Boolean[])
.ctor(Object[],Boolean[],ISessionImplementor,Object ,AbstractEntityPersister)NHibernate.Persister.Entity .AbstractEntityPersister+GeneratedIdentifierBinder..ctor(Object[] ,Boolean[],ISessionImplementor,Object,AbstractEntityPersister)
get_PathExpressionParser()NHibernate.Hql.Classic.FunctionStack+FunctionHolder .get_PathExpressionParser()
get_SqlFunction()NHibernate.Hql.Classic.FunctionStack+FunctionHolder.get_SqlFunction()
get_FunctionGrammar()NHibernate.Hql.Classic.FunctionStack+FunctionHolder .get_FunctionGrammar()
.ctor(ISQLFunction)NHibernate.Hql.Classic.FunctionStack+FunctionHolder..ctor(ISQLFunction )
get_FirstValidColumnType()NHibernate.Hql.Classic.FunctionStack+FunctionHolder .get_FirstValidColumnType()
set_FirstValidColumnType(IType)NHibernate.Hql.Classic.FunctionStack+FunctionHolder .set_FirstValidColumnType(IType)
Add(String,ICollectionPersister,String)NHibernate.Hql.Classic.QueryTranslator+FetchedCollections.Add(String ,ICollectionPersister,String)
get_CollectionOwners()NHibernate.Hql.Classic.QueryTranslator+FetchedCollections .get_CollectionOwners()
get_CollectionPersisters()NHibernate.Hql.Classic.QueryTranslator+FetchedCollections .get_CollectionPersisters()
get_CollectionSuffixes()NHibernate.Hql.Classic.QueryTranslator+FetchedCollections .get_CollectionSuffixes()
AddSelectFragmentString(QuerySelect)NHibernate.Hql.Classic.QueryTranslator+FetchedCollections .AddSelectFragmentString(QuerySelect)
AddOrderBy(QuerySelect)NHibernate.Hql.Classic.QueryTranslator+FetchedCollections.AddOrderBy (QuerySelect)
InitializeCollectionOwnerColumns(IList<String>)NHibernate.Hql.Classic.QueryTranslator+FetchedCollections .InitializeCollectionOwnerColumns(IList<String>)
.ctor(QueryTranslator)NHibernate.Hql.Classic.QueryTranslator+Selector..ctor(QueryTranslator)
.ctor(QueryTranslator)NHibernate.Hql.Classic.QueryTranslator+ParameterTranslations..ctor (QueryTranslator)
.ctor(FromElement)NHibernate.Hql.Ast.ANTLR.WithClauseVisitor..ctor(FromElement)
GetReferencedFromElement()NHibernate.Hql.Ast.ANTLR.WithClauseVisitor.GetReferencedFromElement()
GetJoinAlias()NHibernate.Hql.Ast.ANTLR.WithClauseVisitor.GetJoinAlias()
.ctor(ISessionFactoryImplementor)NHibernate.Hql.Ast.ANTLR.PolymorphicQuerySourceDetector..ctor (ISessionFactoryImplementor)
Process(IASTNode)NHibernate.Hql.Ast.ANTLR.PolymorphicQuerySourceDetector.Process (IASTNode)
.ctor(ISessionFactoryImplementor)NHibernate.Hql.Ast.ANTLR.HqlParseEngine+ConstantConverter..ctor (ISessionFactoryImplementor)
.ctor(IASTNode,QueryTranslatorImpl,ISessionFactoryImplementor ,IDictionary<String,String>,String)NHibernate.Hql.Ast.ANTLR.HqlSqlTranslator..ctor(IASTNode ,QueryTranslatorImpl,ISessionFactoryImplementor,IDictionary<String ,String>,String)
get_SqlStatement()NHibernate.Hql.Ast.ANTLR.HqlSqlTranslator.get_SqlStatement()
Translate()NHibernate.Hql.Ast.ANTLR.HqlSqlTranslator.Translate()
.ctor(IStatement,ISessionFactoryImplementor)NHibernate.Hql.Ast.ANTLR.HqlSqlGenerator..ctor(IStatement ,ISessionFactoryImplementor)
get_Sql()NHibernate.Hql.Ast.ANTLR.HqlSqlGenerator.get_Sql()
get_CollectionParameters()NHibernate.Hql.Ast.ANTLR.HqlSqlGenerator.get_CollectionParameters()
Generate()NHibernate.Hql.Ast.ANTLR.HqlSqlGenerator.Generate()
.ctor(String)NHibernate.Hql.Ast.ANTLR.CaseInsensitiveStringStream..ctor(String)
.ctor(IASTNode)NHibernate.Hql.Ast.ANTLR.QuerySourceDetector..ctor(IASTNode)
LocateQuerySources()NHibernate.Hql.Ast.ANTLR.QuerySourceDetector.LocateQuerySources()
get_Args()NHibernate.Hql.Ast.ANTLR.SqlGenerator+FunctionArguments.get_Args()
IsCollectionProperty(String)NHibernate.Hql.Ast.ANTLR.CollectionProperties.IsCollectionProperty (String)
GetNormalizedPropertyName(String)NHibernate.Hql.Ast.ANTLR.CollectionProperties .GetNormalizedPropertyName(String)
IsAnyCollectionProperty(String)NHibernate.Hql.Ast.ANTLR.CollectionProperties.IsAnyCollectionProperty (String)
ShowAsString(IASTNode,String)NHibernate.Hql.Ast.ANTLR.Util.ASTPrinter.ShowAsString(IASTNode,String)
.ctor(IToken)NHibernate.Hql.Ast.ANTLR.Tree.CountNode..ctor(IToken)
.ctor(IQueryable,IInternalLogger,ISessionImplementor)NHibernate.Hql.Ast.ANTLR.Exec .AbstractStatementExecutor+TmpIdTableCreationIsolatedWork..ctor (IQueryable,IInternalLogger,ISessionImplementor)
.ctor(IQueryable,IInternalLogger,ISessionImplementor)NHibernate.Hql.Ast.ANTLR.Exec .AbstractStatementExecutor+TmpIdTableDropIsolatedWork..ctor(IQueryable ,IInternalLogger,ISessionImplementor)
.ctor(ISessionImplementor,SequenceStructure)NHibernate.Id.Enhanced.SequenceStructure+SequenceAccessCallback..ctor (ISessionImplementor,SequenceStructure)
.ctor(ISessionImplementor,TableStructure)NHibernate.Id.Enhanced.TableStructure+TableAccessCallback..ctor (ISessionImplementor,TableStructure)

Statistics

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

450
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 &&
  
!f.IsEventDelegateObject
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 
// with the C# readonly keyword 
// (ReadOnly in VB.NET).

// The condition IsInitOnly matches fields that 
// are marked with the C# readonly keyword 
// (ReadOnly in VB.NET).



126 fields matched

fieldsSize of instanceFull Name
_sentinel4NHibernate.Util.SequencedHashMap._sentinel
_entries4NHibernate.Util.SequencedHashMap._entries
_key4NHibernate.Util.SequencedHashMap+Entry._key
_parent4NHibernate.Util.SequencedHashMap+KeyCollection._parent
_parent4NHibernate.Util.SequencedHashMap+ValuesCollection._parent
_parent4NHibernate.Util.SequencedHashMap+OrderedEnumerator._parent
_returnType4NHibernate.Util.SequencedHashMap+OrderedEnumerator._returnType
_expectedModCount8NHibernate.Util.SequencedHashMap+OrderedEnumerator._expectedModCount
_syncRoot4NHibernate.Util.ThreadSafeDictionary<TKey,TValue>._syncRoot
theNullN/ANHibernate.Util.ObjectUtils.theNull
map4NHibernate.Util.IdentitySet.map
_syncRoot4NHibernate.Util.SoftLimitMRUCache._syncRoot
map4NHibernate.Util.IdentityMap.map
reference4NHibernate.Util.WeakRefWrapper.reference
hashCode4NHibernate.Util.WeakRefWrapper.hashCode
innerEnumerator4NHibernate.Util.WeakEnumerator.innerEnumerator
innerHashtable4NHibernate.Util.WeakHashtable.innerHashtable
_origin4NHibernate.Util.StringTokenizer._origin
_delim4NHibernate.Util.StringTokenizer._delim
_returnDelim1NHibernate.Util.StringTokenizer._returnDelim
_stokenizer4NHibernate.Util.StringTokenizer+StringTokenizerEnumerator._stokenizer
_syncRoot4NHibernate.Util.SimpleMRUCache._syncRoot
isEmbeddedInXML1NHibernate.Type.EntityType.isEmbeddedInXML
overridesGetHashCode1NHibernate.Type.ComponentType.overridesGetHashCode
_queryParameterPosition4NHibernate.Param.CollectionFilterKeyParameterSpecification ._queryParameterPosition
colCount4NHibernate.Driver.NDataReader+NResult.colCount
log4NHibernate.Driver.NHybridDataReader.log
_reader4NHibernate.Impl.EnumerableImpl._reader
_sess4NHibernate.Impl.EnumerableImpl._sess
_types4NHibernate.Impl.EnumerableImpl._types
_single1NHibernate.Impl.EnumerableImpl._single
_names4NHibernate.Impl.EnumerableImpl._names
_cmd4NHibernate.Impl.EnumerableImpl._cmd
_holderInstantiator4NHibernate.Impl.EnumerableImpl._holderInstantiator
_selection4NHibernate.Impl.EnumerableImpl._selection
withClause4NHibernate.Impl.CriteriaImpl+Subcriteria.withClause
constructor4NHibernate.Transform.AliasToBeanConstructorResultTransformer .constructor
buffer4NHibernate.SqlCommand.DisjunctionFragment.buffer
sqlParts4NHibernate.SqlCommand.SubselectClauseExtractor.sqlParts
builder4NHibernate.SqlCommand.SubselectClauseExtractor.builder
afterFrom4NHibernate.SqlCommand.QueryJoinFragment.afterFrom
afterWhere4NHibernate.SqlCommand.QueryJoinFragment.afterWhere
dialect4NHibernate.SqlCommand.QueryJoinFragment.dialect
useThetaStyleInnerJoins1NHibernate.SqlCommand.QueryJoinFragment.useThetaStyleInnerJoins
sqlParts4NHibernate.SqlCommand.SqlStringBuilder.sqlParts
parent4NHibernate.SqlCommand.SqlStringBuilder+AddingSqlStringVisitor.parent
afterFrom4NHibernate.SqlCommand.OracleJoinFragment.afterFrom
afterWhere4NHibernate.SqlCommand.OracleJoinFragment.afterWhere
columns4NHibernate.SqlCommand.SelectFragment.columns
columnAliases4NHibernate.SqlCommand.SelectFragment.columnAliases
dialect4NHibernate.SqlCommand.SelectFragment.dialect
sessionId16NHibernate.Transaction.AdoTransaction.sessionId
_syncRoot4NHibernate.Stat.StatisticsImpl._syncRoot
hasUnwrapProxyForProperties1NHibernate.Tuple.Entity.EntityMetamodel.hasUnwrapProxyForProperties
returnType4NHibernate.Dialect.Function.ClassicAggregateFunction.returnType
returnType4NHibernate.Dialect.Function.StandardSQLFunction.returnType
allowedArgsCount4NHibernate.Dialect.Function.StandardSafeSQLFunction.allowedArgsCount
_tempPagingParameterIndexes4NHibernate.Loader.Criteria.CriteriaQueryTranslator ._tempPagingParameterIndexes
helper4NHibernate.Loader.Criteria.CriteriaQueryTranslator.helper
value4NHibernate.Criterion.SimpleSubqueryExpression.value
propertyName4NHibernate.Criterion.PropertySubqueryExpression.propertyName
escapeChar5NHibernate.Criterion.LikeExpression.escapeChar
_lhs4NHibernate.Criterion.LogicalExpression._lhs
_rhs4NHibernate.Criterion.LogicalExpression._rhs
_intCode4NHibernate.Criterion.MatchMode._intCode
_name4NHibernate.Criterion.MatchMode._name
InstancesN/ANHibernate.Criterion.MatchMode.Instances
_projection4NHibernate.Criterion.NotNullExpression._projection
grouped1NHibernate.Criterion.IdentifierProjection.grouped
_subQuery4NHibernate.Criterion.SubqueryProjection._subQuery
elements4NHibernate.Criterion.ProjectionList.elements
propertyName4NHibernate.Criterion.PropertyProjection.propertyName
grouped1NHibernate.Criterion.PropertyProjection.grouped
_criterion4NHibernate.Criterion.NotExpression._criterion
propertyName4NHibernate.Criterion.Lambda.LambdaSubqueryBuilder.propertyName
value4NHibernate.Criterion.Lambda.LambdaSubqueryBuilder.value
naturalIdentifier4NHibernate.Criterion.Lambda.LambdaNaturalIdentifierBuilder .naturalIdentifier
propertyName4NHibernate.Criterion.Lambda.LambdaNaturalIdentifierBuilder .propertyName
projectionList4NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> .projectionList
root4NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn ,TRoot,TSubType>.root
propertyName4NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn ,TRoot,TSubType>.propertyName
root4NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn ,TRoot,TSubType>+LambdaBetweenBuilder.root
propertyName4NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn ,TRoot,TSubType>+LambdaBetweenBuilder.propertyName
isNot1NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn ,TRoot,TSubType>+LambdaBetweenBuilder.isNot
lo4NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn ,TRoot,TSubType>+LambdaBetweenBuilder.lo
propertyName4NHibernate.Criterion.Lambda.LambdaRestrictionBuilder.propertyName
propertyName4NHibernate.Criterion.Lambda .LambdaRestrictionBuilder+LambdaBetweenBuilder.propertyName
lo4NHibernate.Criterion.Lambda .LambdaRestrictionBuilder+LambdaBetweenBuilder.lo
isNot1NHibernate.Criterion.Lambda .LambdaRestrictionBuilder+LambdaBetweenBuilder.isNot
outer4NHibernate.Hql.Classic.QueryTranslator+Selector.outer
_selectClause4NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader._selectClause
_fromClause4NHibernate.Hql.Ast.ANTLR.Util.JoinProcessor+JoinSequenceSelector ._fromClause
_fromElement4NHibernate.Hql.Ast.ANTLR.Util.JoinProcessor+JoinSequenceSelector ._fromElement
_walker4NHibernate.Hql.Ast.ANTLR.Util.JoinProcessor+JoinSequenceSelector ._walker
_fromElementCounter4NHibernate.Hql.Ast.ANTLR.Tree.FromClause._fromElementCounter
updateTimestamps4NHibernate.Cache.UpdateTimestampsCache.updateTimestamps
lockObjectN/ANHibernate.Cache.Timestamper.lockObject
baseDateMsN/ANHibernate.Cache.Timestamper.baseDateMs
hashtable4NHibernate.Cache.HashtableCache.hashtable
parameters4NHibernate.Id.SequenceGenerator.parameters

Statistics

Stat   Size of instance
Sum:467
Average:3.89
Minimum:1
Maximum:16
Standard deviation:1.44
Variance:2.08
warningCritical    Rule warning: Structures should be immutable
// <Name>Structures should be immutable</Name>
warnif count > 0 from t in Application.Types where 
   
t.IsStructure && 
  
!t.IsImmutable

let mutableFields = t.Fields.Where(f => !f.IsImmutable)

select new { t, t.NbLinesOfCode, mutableFields }

// It is deemed as a good practice to make 
// your structure immutable.
// An object is immutable if its state doesn’t 
// change once the object has been created. 
// Consequently, a structure is immutable if 
// its instances are immutable.
// Immutable types naturally simplify code by 
// limiting side-effects.
// See some explanations on immutability and 
// how NDepend supports it here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/13/immutable-types-understand-them-and-use-them.aspx

1 types matched

type# lines of code (LOC)mutableFieldsFull Name
SQLFunctionTemplate+TemplateChunk22 fieldsNHibernate.Dialect.Function.SQLFunctionTemplate+TemplateChunk

Statistics

Stat   # lines of code (LOC)   mutableFields
Sum:20
Average:20
Minimum:20
Maximum:20
Standard deviation:00
Variance:00
warningCritical    Rule warning: Property Getters should be immutable
// <Name>Property Getters should be immutable</Name>
warnif count > 0 from m in Application.Methods where
  
m.IsPropertyGetter &&
  
( ( !m.IsStatic && m.ChangesObjectState) ||
    
(  m.IsStatic && m.ChangesTypeState) )

let fieldsAssigned = m.FieldsAssigned

select new { m, m.NbLinesOfCode, fieldsAssigned  }

// This rule might be violated in the case of object lazy initialized
// when the property getter is accessed the first time.
// But in general, the callers of a property 
// doesn't expect to change any state through the call.
    

31 methods matched

methods# lines of code (LOC)fieldsAssignedFull Name
get_ReturnedClass()31 fieldNHibernate.Type.EntityType.get_ReturnedClass()
get_MappedClass()71 fieldNHibernate.Mapping.PersistentClass.get_MappedClass()
get_ProxyInterface()71 fieldNHibernate.Mapping.PersistentClass.get_ProxyInterface()
get_Comparer()51 fieldNHibernate.Mapping.Collection.get_Comparer()
get_Type()101 fieldNHibernate.Mapping.SimpleValue.get_Type()
get_ComponentClass()71 fieldNHibernate.Mapping.Component.get_ComponentClass()
get_Type()31 fieldNHibernate.Mapping.Component.get_Type()
get_ElementClass()81 fieldNHibernate.Mapping.Array.get_ElementClass()
get_Type()31 fieldNHibernate.Mapping.Any.get_Type()
get_IsLazy()71 fieldNHibernate.Mapping.Join.get_IsLazy()
get_Type()31 fieldNHibernate.Mapping.ManyToOne.get_Type()
get_Key()51 fieldNHibernate.Action.CollectionAction.get_Key()
get_FutureCriteriaBatch()31 fieldNHibernate.Impl.SessionImpl.get_FutureCriteriaBatch()
get_FutureQueryBatch()31 fieldNHibernate.Impl.SessionImpl.get_FutureQueryBatch()
get_AddingVisitor()31 fieldNHibernate.SqlCommand.SqlStringBuilder.get_AddingVisitor()
get_IdentitySelectString()31 fieldNHibernate.Persister.Entity.AbstractEntityPersister .get_IdentitySelectString()
get_IdAndVersionSqlTypes()31 fieldNHibernate.Persister.Entity.AbstractEntityPersister .get_IdAndVersionSqlTypes()
get_IdentitySelectString()31 fieldNHibernate.Persister.Collection.AbstractCollectionPersister .get_IdentitySelectString()
get_Not()21 fieldNHibernate.Criterion.Lambda.LambdaRestrictionBuilder.get_Not()
get_ASTFactory()31 fieldNHibernate.Hql.Ast.ANTLR.HqlSqlWalker.get_ASTFactory()
get_Path()71 fieldNHibernate.Hql.Ast.ANTLR.Tree.DotNode.get_Path()
get_FromClause()31 fieldNHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement .get_FromClause()
get_WhereClause()81 fieldNHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement .get_WhereClause()
get_SqlAssignmentFragment()71 fieldNHibernate.Hql.Ast.ANTLR.Tree.AssignmentSpecification .get_SqlAssignmentFragment()
get_Version()71 fieldNHibernate.Cfg.Environment.get_Version()
get_Schemas()11 fieldNHibernate.Cfg.Configuration.get_Schemas()
get_CollectionTypeFactory()51 fieldNHibernate.Bytecode.AbstractBytecodeProvider.get_CollectionTypeFactory ()
get_LoadContexts()31 fieldNHibernate.Engine.StatefulPersistenceContext.get_LoadContexts()
get_BatchFetchQueue()31 fieldNHibernate.Engine.StatefulPersistenceContext.get_BatchFetchQueue()
get_Transaction()31 fieldNHibernate.AdoNet.ConnectionManager.get_Transaction()
get_FlushingFromDtcTransaction()21 fieldNHibernate.AdoNet.ConnectionManager.get_FlushingFromDtcTransaction()

Statistics

Stat   # lines of code (LOC)   fieldsAssigned
Sum:1400
Average:4.520
Minimum:10
Maximum:100
Standard deviation:2.260
Variance:5.090
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