It is recommended to use the NDepend interactive UI capabilities
to make the most of NDepend by mastering all aspects of your code.
Diagrams
Application Metrics
Note: Further Application Statistics are available.
|
Quality Gates summary
245
can be stopped upon quality gate
failure. Online documentation.

be run on the baseline. Hence they
have blank trend and baseline value.
Name | Trend | Baseline Value | Value | Group | |||
---|---|---|---|---|---|---|---|
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates | |||||
| ![]() | ![]() | ![]() | Project Rules \ Quality Gates | |||
| ![]() | Project Rules \ Quality Gates |
Rules summary
528812- Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
- Number of Rules violated: 100

development-time, from within Visual
Studio. Online documentation.

run on the baseline. Hence they
have blank # Issues Fixed or Added.
Name | # Issues | Added | Fixed | Elements | Group | |||
---|---|---|---|---|---|---|---|---|
| 40 | 0 | 4 | types | Project Rules \ Code Smells | |||
| 126 | 6 | 10 | types | Project Rules \ Code Smells | |||
| 32 | 1 | 7 | types | Project Rules \ Code Smells | |||
| 51 | 3 | 13 | methods | Project Rules \ Code Smells | |||
| 68 | 6 | 5 | methods | Project Rules \ Code Smells | |||
| 25 | 0 | 2 | methods | Project Rules \ Code Smells | |||
| 175 | 9 | 10 | methods | Project Rules \ Code Smells | |||
| 53 | 2 | 13 | types | Project Rules \ Code Smells | |||
| 1 | type | Project Rules \ Code Smells Regression | |||||
| 66 | types | Project Rules \ Code Smells Regression | |||||
| 47 | methods | Project Rules \ Code Smells Regression | |||||
| 32 | types | Project Rules \ Code Smells Regression | |||||
| 36 | methods | Project Rules \ Code Smells Regression | |||||
| 29 | methods | Project Rules \ Code Smells Regression | |||||
| 27 | types | Project Rules \ Code Smells Regression | |||||
| 7 | types | Project Rules \ Code Smells Regression | |||||
| 5 | types | Project Rules \ Code Smells Regression | |||||
| 64 | 2 | 3 | types | Project Rules \ Object Oriented Design | |||
| 15 | 1 | 1 | types | Project Rules \ Object Oriented Design | |||
| 161 | 3 | 15 | types | Project Rules \ Object Oriented Design | |||
| 226 | 15 | 14 | types | Project Rules \ Object Oriented Design | |||
| 353 | 25 | 63 | methods | Project Rules \ Object Oriented Design | |||
| 28 | 0 | 21 | types | Project Rules \ Object Oriented Design | |||
| 61 | 4 | 125 | types | Project Rules \ Object Oriented Design | |||
| 121 | 5 | 14 | methods | Project Rules \ Object Oriented Design | |||
| 49 | 10 | 8 | methods | Project Rules \ Object Oriented Design | |||
| 1 | 1 | 0 | type | Project Rules \ Object Oriented Design | |||
| 6 | 0 | 1 | fields | Project Rules \ Object Oriented Design | |||
| 4 | 0 | 0 | types | Project Rules \ Object Oriented Design | |||
| 60 | 1 | 4 | types | Project Rules \ Design | |||
| 17 | 2 | 1 | namespaces | Project Rules \ Design | |||
| 111 | 12 | 20 | types | Project Rules \ Design | |||
| 28 | 0 | 3 | types | Project Rules \ Design | |||
| 1 | 0 | 0 | type | Project Rules \ Design | |||
| 2 | 1 | 10 | methods | Project Rules \ Design | |||
| 51 | 15 | 8 | methods | Project Rules \ Design | |||
| 2 | 0 | 0 | types | Project Rules \ Design | |||
| 1306 | 111 | 107 | members | Project Rules \ Architecture | |||
| 2 | 0 | 0 | namespaces | Project Rules \ Architecture | |||
| 1 | 0 | 1 | assembly | Project Rules \ Architecture | |||
| 12 | 1 | 2 | namespaces | Project Rules \ Architecture | |||
| 60 | types | Project Rules \ API Breaking Changes | |||||
| 252 | methods | Project Rules \ API Breaking Changes | |||||
| 116 | fields | Project Rules \ API Breaking Changes | |||||
| 38 | types | Project Rules \ API Breaking Changes | |||||
| 6387 | 493 | 1069 | methods | Project Rules \ Code Coverage | |||
| 315 | methods | Project Rules \ Code Coverage | |||||
| 903 | methods | Project Rules \ Code Coverage | |||||
| 235 | 25 | 43 | code elements parent | Project Rules \ Code Coverage | |||
| 66 | 18 | 10 | types | Project Rules \ Code Coverage | |||
| 3 | 2 | 2 | namespaces | Project Rules \ Code Coverage | |||
| 15 | methods | Project Rules \ Code Coverage | |||||
| 454 | 35 | 115 | types | Project Rules \ Code Coverage | |||
| 73 | 6 | 21 | methods | Project Rules \ Code Coverage | |||
| 36 | 5 | 25 | methods | Project Rules \ Dead Code | |||
| 67 | 7 | 9 | methods | Project Rules \ Visibility | |||
| 6 | 0 | 0 | types | Project Rules \ Visibility | |||
| 17 | 0 | 1 | fields | Project Rules \ Visibility | |||
| 47 | 7 | 2 | types | Project Rules \ Visibility | |||
| 214 | 10 | 6 | fields | Project Rules \ Visibility | |||
| 171 | 4 | 27 | fields | Project Rules \ Visibility | |||
| 29 | 0 | 1 | types | Project Rules \ Visibility | |||
| 302 | 36 | 32 | methods | Project Rules \ Visibility | |||
| 109 | 4 | 25 | fields | Project Rules \ Immutability | |||
| 61 | 0 | 5 | fields | Project Rules \ Immutability | |||
| 16 | 2 | 0 | fields | Project Rules \ Immutability | |||
| 1 | 0 | 0 | type | Project Rules \ Immutability | |||
| 25 | 0 | 9 | fields | Project Rules \ Immutability | |||
| 20 | 0 | 6 | fields | Project Rules \ Immutability | |||
| 18 | 1 | 0 | fields | Project Rules \ Immutability | |||
| 15 | 1 | 1 | fields | Project Rules \ Immutability | |||
| 13 | 1 | 6 | fields | Project Rules \ Naming Conventions | |||
| 198 | 4 | 20 | fields | Project Rules \ Naming Conventions | |||
| 1 | 0 | 4 | type | Project Rules \ Naming Conventions | |||
| 78 | 1 | 1 | types | Project Rules \ Naming Conventions | |||
| 2 | 0 | 0 | types | Project Rules \ Naming Conventions | |||
| 5 | 0 | 0 | methods | Project Rules \ Naming Conventions | |||
| 13 | 0 | 0 | types | Project Rules \ Naming Conventions | |||
| 43 | 3 | 1 | methods | Project Rules \ Naming Conventions | |||
| 4 | 2 | 0 | fields | Project Rules \ Naming Conventions | |||
| 18 | 2 | 6 | types | Project Rules \ Naming Conventions | |||
| 70 | 1 | 2 | types | Project Rules \ Naming Conventions | |||
| 9 | 1 | 2 | types | Project Rules \ Naming Conventions | |||
| 7 | 0 | 0 | methods | Project Rules \ Naming Conventions | |||
| 48 | 21 | 7 | members | Project Rules \ Naming Conventions | |||
| 30 | 0 | 1 | fields | Project Rules \ Naming Conventions | |||
| 8 | 3 | 14 | methods | Project Rules \ Naming Conventions | |||
| 105 | 14 | 21 | types | Project Rules \ Source Files Organization | |||
| 2 | 0 | 1 | types | Project Rules \ Source Files Organization | |||
| 1 | 0 | 1 | namespace | Project Rules \ Source Files Organization | |||
| 1 | 0 | 0 | namespace | Project Rules \ Source Files Organization | |||
| 1 | 0 | 0 | type | Project Rules \ .NET Framework Usage \ System | |||
| 55 | 1 | 5 | methods | Project Rules \ .NET Framework Usage \ System | |||
| 10 | 4 | 8 | methods | Project Rules \ .NET Framework Usage \ System | |||
| 1 | 0 | 0 | field | Project Rules \ .NET Framework Usage \ System | |||
| 49 | 0 | 0 | types | Project Rules \ .NET Framework Usage \ System | |||
| 4 | 0 | 2 | types | Project Rules \ .NET Framework Usage \ System | |||
| 82 | 0 | 123 | methods | Project Rules \ .NET Framework Usage \ System.Collections | |||
| 3 | 0 | 0 | methods | Project Rules \ .NET Framework Usage \ System.Xml | |||
| 17 | 5 | 0 | methods | Project Rules \ .NET Framework Usage \ System.Globalization |
Application Statistics
Stat | # Occurences | Avg | StdDev | Max |
---|---|---|---|---|
Properties on interfaces | 406 interfaces | 1.62 | 4.43 | 47 properties on NHibernate.Persister.Entity.IEntityPersister |
Methods on interfaces | 406 interfaces | 6.55 | 12.37 | 92 methods on NHibernate.ISession |
Arguments on methods on interfaces | 2,660 methods | 1.11 | 1.11 | 11 arguments on NHibernate.Engine.IPersistenceContext.AddEntry(Object,Status,Object[],Object,Object,Object,LockMode,Boolean,IEntityPersister,Boolean,Boolean) |
Public properties on classes | 1,966 Classes | 2.03 | 5.8 | 84 public properties on NHibernate.Dialect.Dialect |
Public methods on classes | 1,966 classes | 7.2 | 12.82 | 178 public methods on NHibernate.Persister.Entity.AbstractEntityPersister |
Arguments on public methods on classes | 14,165 methods | 1.05 | 1.23 | 15 arguments on NHibernate.Engine.QueryParameters..ctor(IType[],Object[],IDictionary<String,TypedValue>,IDictionary<String,LockMode>,RowSelection,Boolean,Boolean,Boolean,String,String,Object[],Object,String,Object,IResultTransformer) |
IL instructions in non-abstract methods | 18,459 methods | 27.22 | 74.27 | 3382 IL instructions in NHibernate.Hql.Ast.ANTLR.HqlParser+Follow..cctor() |
Cyclomatic complexity on non abstract Methods | 18,459 Methods | 2.54 | 5.13 | CC = 198 for NHibernate.Hql.Ast.ANTLR.HqlLexer.mNUM_INT() |
Assemblies Metrics
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 | % Coverage | Afferent Coupling | Efferent Coupling | Relational Cohesion | Instability | Abstractness | Distance |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NHibernate v4.0.0.4000 | 72659 | 502371 | 2443 | 541 | 38604 | 34.7 | 75.68 | 0 | 488 | 6.96 | 1 | 0.22 | 0.16 |
Types Metrics
If the code base analyzed has too many types, NDepend doesn't list Types Metrics to avoid a too big report. The section Types Metrics can be activated by unchecking the option: NDepend Project Properties > Report > Avoid too big report for large code base > Hide section Types Metrics if... It is recommended to use the NDepend interactive UI capabilities to browse large applications. |
Namespaces Metrics
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 | % Coverage | Afferent Coupling | Efferent Coupling |
---|---|---|---|---|---|---|---|---|
0 | 1266 | 13 | - | - | - | 6 | 4 | |
NHibernate | 540 | 3335 | 71 | 4542 | 89.37 | 64.81 | 79 | 33 |
NHibernate.UserTypes | 0 | 0 | 7 | 271 | 100 | - | 3 | 9 |
NHibernate.Stat | 336 | 2825 | 10 | 107 | 24.15 | 73.51 | 11 | 14 |
NHibernate.DebugHelpers | 20 | 100 | 4 | 3 | 13.04 | - | 0 | 4 |
NHibernate.Classic | 5 | 33 | 4 | 113 | 95.76 | 20 | 3 | 3 |
NHibernate.Context | 106 | 613 | 10 | 130 | 55.08 | 8.49 | 2 | 13 |
NHibernate.Action | 611 | 3999 | 16 | 178 | 22.56 | 74.8 | 4 | 24 |
NHibernate.Util | 1910 | 12666 | 62 | 847 | 30.72 | 70.52 | 66 | 26 |
NHibernate.Type | 2577 | 18867 | 110 | 2226 | 46.35 | 70.43 | 56 | 41 |
NHibernate.Transform | 235 | 1634 | 13 | 224 | 48.8 | 75.32 | 12 | 12 |
NHibernate.Transaction | 228 | 1373 | 8 | 155 | 40.47 | 78.95 | 7 | 16 |
NHibernate.SqlTypes | 101 | 747 | 11 | 143 | 58.61 | 85.15 | 21 | 8 |
NHibernate.Properties | 396 | 2642 | 53 | 717 | 64.42 | 79.29 | 15 | 13 |
NHibernate.Param | 327 | 2705 | 16 | 159 | 32.72 | 54.13 | 18 | 20 |
NHibernate.Metadata | 0 | 0 | 2 | 98 | 100 | - | 10 | 5 |
NHibernate.Intercept | 88 | 597 | 9 | 30 | 25.42 | 88.64 | 9 | 15 |
NHibernate.Impl | 4415 | 29689 | 45 | 1165 | 20.88 | 79.14 | 22 | 60 |
NHibernate.Exceptions | 168 | 1045 | 19 | 164 | 49.4 | 37.5 | 18 | 16 |
NHibernate.Driver | 685 | 4587 | 37 | 1056 | 60.65 | 42.48 | 9 | 25 |
NHibernate.Connection | 62 | 355 | 5 | 164 | 72.57 | 72.58 | 10 | 9 |
NHibernate.Tuple | 168 | 1103 | 10 | 218 | 56.48 | 87.5 | 4 | 16 |
NHibernate.Tuple.Entity | 534 | 3639 | 6 | 158 | 22.83 | 83.52 | 4 | 23 |
NHibernate.Tuple.Component | 147 | 955 | 6 | 53 | 26.5 | 80.27 | 2 | 14 |
NHibernate.Tool.hbm2ddl | 500 | 3152 | 13 | 172 | 25.6 | 68 | 2 | 22 |
NHibernate.Proxy | 189 | 1388 | 12 | 246 | 56.55 | 83.6 | 16 | 18 |
NHibernate.Proxy.Poco | 43 | 290 | 1 | 34 | 44.16 | 69.77 | 1 | 9 |
NHibernate.Proxy.Map | 35 | 268 | 3 | 2 | 5.41 | 22.86 | 1 | 7 |
NHibernate.Proxy.DynamicProxy | 479 | 3046 | 22 | 64 | 11.79 | 86.64 | 2 | 16 |
NHibernate.Persister | 54 | 449 | 1 | 14 | 20.59 | 48.15 | 1 | 11 |
NHibernate.Persister.Collection | 1058 | 7566 | 12 | 374 | 26.12 | 82.04 | 25 | 33 |
NHibernate.Persister.Entity | 2410 | 17137 | 24 | 1185 | 32.96 | 88.51 | 31 | 37 |
NHibernate.SqlCommand | 1765 | 11960 | 38 | 1081 | 37.98 | 70.65 | 35 | 23 |
NHibernate.SqlCommand.Parser | 374 | 2807 | 8 | 77 | 17.07 | 45.45 | 2 | 10 |
NHibernate.Mapping | 2037 | 13483 | 59 | 1669 | 45.04 | 81.35 | 13 | 26 |
NHibernate.Mapping.ByCode | 2177 | 18718 | 188 | 198 | 8.34 | 73.4 | 3 | 24 |
NHibernate.Mapping.ByCode.Conformist | 5 | 35 | 5 | 0 | 0 | 100 | 0 | 4 |
NHibernate.Mapping.ByCode.Impl | 2638 | 19316 | 79 | 64 | 2.37 | 60.39 | 3 | 21 |
NHibernate.Mapping.ByCode.Impl .CustomizersImpl | 1017 | 10601 | 30 | 9 | 0.88 | 55.65 | 2 | 11 |
NHibernate.Loader | 1194 | 8087 | 13 | 606 | 33.67 | 91.46 | 13 | 36 |
NHibernate.Loader.Collection | 207 | 1498 | 10 | 69 | 25 | 92.75 | 1 | 15 |
NHibernate.Loader.Entity | 127 | 969 | 8 | 37 | 22.56 | 93.7 | 2 | 17 |
NHibernate.Loader.Criteria | 527 | 3417 | 7 | 84 | 13.75 | 91.27 | 2 | 23 |
NHibernate.Loader.Hql | 163 | 1029 | 1 | 30 | 15.54 | 96.93 | 1 | 24 |
NHibernate.Loader.Custom | 285 | 1666 | 17 | 116 | 28.93 | 92.28 | 3 | 20 |
NHibernate.Loader.Custom.Sql | 293 | 2126 | 7 | 37 | 11.21 | 91.47 | 2 | 19 |
NHibernate.Linq | 448 | 3321 | 37 | 96 | 17.65 | 74.55 | 9 | 39 |
NHibernate.Linq.ResultOperators | 7 | 34 | 2 | 0 | 0 | 42.86 | 3 | 7 |
NHibernate.Linq.GroupJoin | 75 | 483 | 7 | 27 | 26.47 | 4 | 1 | 16 |
NHibernate.Linq.ReWriters | 187 | 1478 | 11 | 31 | 14.22 | 77.54 | 2 | 24 |
NHibernate.Linq.NestedSelects | 165 | 1254 | 5 | 4 | 2.37 | 89.7 | 1 | 25 |
NHibernate.Linq.GroupBy | 200 | 1392 | 9 | 58 | 22.48 | 69 | 3 | 24 |
NHibernate.Linq.Functions | 259 | 6787 | 76 | 28 | 9.76 | 58.69 | 3 | 19 |
NHibernate.Linq.ExpressionTransformers | 54 | 651 | 4 | 30 | 35.71 | 79.63 | 1 | 10 |
NHibernate.Linq.Expressions | 50 | 332 | 13 | 9 | 15.25 | 46 | 4 | 9 |
NHibernate.Linq.Clauses | 33 | 183 | 3 | 6 | 15.38 | 51.52 | 3 | 11 |
NHibernate.Linq.Visitors | 1177 | 8404 | 33 | 310 | 20.85 | 75.62 | 8 | 42 |
NHibernate.Linq.Visitors .ResultOperatorProcessors | 159 | 1670 | 30 | 9 | 5.36 | 55.35 | 1 | 27 |
NHibernate.Id | 398 | 2680 | 31 | 774 | 66.04 | 60.3 | 15 | 22 |
NHibernate.Id.Insert | 58 | 416 | 9 | 76 | 56.72 | 17.24 | 3 | 15 |
NHibernate.Id.Enhanced | 350 | 2728 | 17 | 391 | 52.77 | 75.14 | 1 | 20 |
NHibernate.Hql | 100 | 659 | 11 | 134 | 57.26 | 36 | 9 | 23 |
NHibernate.Hql.Util | 44 | 257 | 1 | 50 | 53.19 | 36.36 | 4 | 8 |
NHibernate.Hql.Ast | 282 | 2942 | 89 | 3 | 1.05 | 65.96 | 4 | 12 |
NHibernate.Hql.Ast.ANTLR | 15177 | 91648 | 39 | 3123 | 17.07 | 80 | 7 | 37 |
NHibernate.Hql.Ast.ANTLR.Util | 341 | 2370 | 18 | 144 | 29.69 | 70.67 | 3 | 21 |
NHibernate.Hql.Ast.ANTLR.Exec | 284 | 1844 | 7 | 28 | 8.97 | 79.23 | 1 | 29 |
NHibernate.Hql.Ast.ANTLR.Tree | 2466 | 15825 | 69 | 1155 | 31.9 | 78.18 | 10 | 28 |
NHibernate.Criterion | 1984 | 14600 | 81 | 1824 | 47.9 | 77.57 | 4 | 28 |
NHibernate.Criterion.Lambda | 362 | 3167 | 28 | 307 | 45.89 | 91.71 | 2 | 9 |
NHibernate.Event | 521 | 3190 | 70 | 367 | 41.33 | 76.39 | 13 | 14 |
NHibernate.Event.Default | 1557 | 10489 | 35 | 879 | 36.08 | 89.53 | 1 | 31 |
NHibernate.Engine | 2066 | 13463 | 84 | 2047 | 49.77 | 82.58 | 64 | 50 |
NHibernate.Engine.Transaction | 3 | 29 | 2 | 41 | 93.18 | 66.67 | 3 | 5 |
NHibernate.Engine.Loading | 185 | 1308 | 3 | 168 | 47.59 | 95.68 | 3 | 19 |
NHibernate.Engine.Query | 448 | 2838 | 19 | 89 | 16.57 | 70.76 | 10 | 27 |
NHibernate.Engine.Query.Sql | 67 | 385 | 7 | 75 | 52.82 | 91.04 | 5 | 7 |
NHibernate.Dialect | 2611 | 16826 | 53 | 2231 | 46.08 | 73.08 | 31 | 28 |
NHibernate.Dialect.Lock | 68 | 533 | 3 | 42 | 38.18 | 30.88 | 2 | 13 |
NHibernate.Dialect.Schema | 411 | 2908 | 51 | 128 | 23.75 | 36.01 | 4 | 10 |
NHibernate.Dialect.Function | 332 | 2171 | 26 | 241 | 42.06 | 74.1 | 12 | 15 |
NHibernate.Collection | 318 | 2013 | 6 | 497 | 60.98 | 79.87 | 14 | 14 |
NHibernate.Collection.Generic | 1007 | 6467 | 20 | 214 | 17.53 | 69.12 | 1 | 19 |
NHibernate.Collection.Generic.SetHelpers | 25 | 151 | 2 | 0 | 0 | 64 | 1 | 3 |
NHibernate.Cfg | 1989 | 12555 | 34 | 901 | 31.18 | 63.25 | 39 | 54 |
NHibernate.Cfg.ConfigurationSchema | 311 | 1941 | 10 | 222 | 41.65 | 59.81 | 1 | 8 |
NHibernate.Cfg.XmlHbmBinding | 1840 | 13189 | 24 | 224 | 10.85 | 89.29 | 1 | 20 |
NHibernate.Cfg.MappingSchema | 866 | 9434 | 130 | 1083 | 55.57 | 81.99 | 4 | 17 |
NHibernate.Cfg.Loquacious | 249 | 1523 | 40 | 48 | 16.16 | 70.28 | 1 | 12 |
NHibernate.Cache | 532 | 3652 | 25 | 617 | 53.7 | 76.32 | 11 | 20 |
NHibernate.Cache.Entry | 87 | 522 | 7 | 10 | 10.31 | 33.33 | 6 | 12 |
NHibernate.Cache.Access | 0 | 0 | 1 | 3 | 100 | - | 3 | 0 |
NHibernate.Bytecode | 123 | 730 | 16 | 226 | 64.76 | 61.79 | 21 | 10 |
NHibernate.Bytecode.Lightweight | 109 | 668 | 8 | 50 | 31.45 | 98.17 | 1 | 9 |
NHibernate.Bytecode.CodeDom | 80 | 544 | 2 | 39 | 32.77 | - | 1 | 11 |
NHibernate.AdoNet | 606 | 3821 | 23 | 241 | 28.45 | 63.37 | 10 | 26 |
NHibernate.AdoNet.Util | 352 | 2113 | 7 | 20 | 5.38 | 84.94 | 6 | 11 |
Quality Gates 245 |
|
![]() | Quality Gate Warn: Percentage Coverage |
Scalar Result: 75.68 %
![]() | Quality Gate Warn: Percentage Coverage on New Code |
Scalar Result: 72.35 %
![]() | Quality Gate Warn: Percentage Coverage on Refactored Code |
Scalar Result: 76.45 %
![]() | Quality Gate Pass: Blocker Issues |
No issue matched
![]() | Quality Gate Warn: Critical Issues |
4 issues matched
4 issues | Severity | Debt | Annual Interest | Full Name |
---|---|---|---|---|
Critical issue on: NHibernate.SqlCommand.QuerySelect | Critical | 3h 0min | 1d 0h | Rule violated: Avoid decreasing code coverage by tests of types |
Critical issue on: NHibernate.Hql.QuerySplitter | Critical | 1h 36min | 1d 0h | Rule violated: Avoid decreasing code coverage by tests of types |
Critical issue on: NHibernate.Cfg.SettingsFactory | Critical | 15min | 5h 46min | Rule violated: Avoid namespaces mutually dependent |
Critical issue on: NHibernate.Hql .IQueryTranslator.get_SQLString() | Critical | 12min | 4h 0min | Rule violated: Avoid various capitalizations for method name |
Statistics
Stat | Severity | Debt | Annual Interest |
---|---|---|---|
Sum: | - | 5h 3min | 3d 1h |
Average: | - | 1h 15min | 6h 26min |
Minimum: | - | 12min | 4h 0min |
Maximum: | - | 3h 0min | 1d 0h |
Standard deviation: | - | 1h 9min | 1h 40min |
Variance: | - | 595d | 1 268d |
![]() | Quality Gate Fail: New Blocker / Critical / High Issues |
2,069 issues matched
2 069 issues | Severity | Debt | Annual Interest | Full Name |
---|---|---|---|---|
High issue on: NHibernate.Persister .Entity.SingleTableEntityPersister | High | 1h 51min | 24min | Rule violated: Avoid types too big |
High issue on: NHibernate.Impl.ExpressionProcessor | High | 1h 43min | 21min | Rule violated: Avoid types too big |
High issue on: NHibernate.Loader.JoinWalker | High | 1h 41min | 20min | Rule violated: Avoid types too big |
High issue on: NHibernate.Collection .Generic.PersistentIdentifierBag<T> | High | 2h 9min | 32min | Rule violated: Avoid types with too many methods |
High issue on: NHibernate.Collection .Generic.PersistentGenericBag<T> | High | 2h 3min | 29min | Rule violated: Avoid types with too many methods |
High issue on: NHibernate.Collection .Generic.PersistentGenericSet<T> | High | 2h 0min | 28min | Rule violated: Avoid types with too many methods |
High issue on: NHibernate.Collection .Generic.PersistentGenericList<T> | High | 2h 0min | 28min | Rule violated: Avoid types with too many methods |
High issue on: NHibernate.Mapping.ByCode .Impl.ClassMapper | High | 1h 48min | 23min | Rule violated: Avoid types with too many methods |
High issue on: NHibernate.Persister .Entity.SingleTableEntityPersister | High | 1h 45min | 21min | Rule violated: Avoid types with too many methods |
High issue on: NHibernate.Collection .Generic.PersistentGenericMap<TKey ,TValue> | High | 1h 45min | 21min | Rule violated: Avoid types with too many methods |
High issue on: NHibernate.Cfg .ConfigurationSchema.CfgXmlHelper .ListenerTypeConvertFrom(String) | High | 3h 43min | 36min | Rule violated: Avoid methods too big, too complex |
High issue on: NHibernate.Impl .SessionImpl..ctor(IDbConnection ,SessionFactoryImpl,Boolean,Int64 ,IInterceptor,EntityMode,Boolean,Boolean ,Boolean,ConnectionReleaseMode,FlushMode ) | High | 1h 36min | 30min | Rule violated: Avoid methods with too many parameters |
High issue on: NHibernate.Mapping.ByCode .Impl.ExplicitDeclarationsHolder | High | 1h 1min | 20min | Rule violated: Avoid types with poor cohesion |
High issue on: NHibernate.Loader.Hql.QueryLoader | High | 10min | 1h 0min | Rule violated: From now, all types added should respect basic quality principles |
High issue on: NHibernate.Util.EnumeratorAdapter<T> | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Util .JoinedEnumerable+JoinedEnumerator | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Util.ObjectHelpers | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Util.TypeExtensions | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Transform .CacheableResultTransformer | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Transform .AliasedTupleSubsetResultTransformer | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Transaction .AfterTransactionCompletes | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Impl.AbstractQueryImpl2 | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Impl.HqlTranslatorWrapper | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Impl.SqlTranslator | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Driver .OracleManagedDataClientDriver | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Persister.Entity .AbstractEntityPersister+PropertyKey | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.SqlCommand .BackTrackCacheParameterList | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping .ReferenceDependantValue | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .UUIDStringGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .UUIDHexGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .TriggerIdentityGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .TableHiLoGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .TableGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .SequenceIdentityGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .SequenceHiLoGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .SelectGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .NativeGuidGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .IncrementGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .CounterGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .EnhancedSequenceGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Mapping.ByCode .EnhancedTableGeneratorDef | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Loader.Hql.QueryLoader | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.ExpressionExtensions | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.QueryProviderFactory | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.ReWriters .ArrayIndexExpressionFlattener | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.GroupBy .GroupKeyNominator | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq .Expressions.NhNominatedExpression | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.Clauses.NhJoinClause | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.Clauses.NhWithClause | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.Visitors .LeftJoinRewriter | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.Visitors .SimplifyConditionalVisitor | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Linq.Visitors .SubQueryFromClauseFlattener | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Hql.StringQueryExpression | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Hql.ParserHelper | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Hql.Ast.ANTLR .HqlFilterPreprocessor | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Hql.Ast.ANTLR .Tree.ResultVariableRefNode | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Engine .CascadeStyle+CascadeStyleSingletonRefer ence | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Engine.Query .QueryExpressionPlan | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Dialect .BitwiseFunctionOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Dialect.Ingres9Dialect | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Dialect .BitwiseNativeOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Dialect.Oracle12cDialect | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericSet<T >+ClearDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericSet<T >+SimpleAddDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericSet<T >+SimpleRemoveDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericBag<T >+ClearDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericList<T >+ClearDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericList<T >+SimpleAddDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericList<T >+AddDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericList<T >+SetDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericList<T >+RemoveDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericList<T >+SimpleRemoveDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericMap<TKey ,TValue>+ClearDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericMap<TKey ,TValue>+PutDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentGenericMap<TKey ,TValue>+RemoveDelayedOperation | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.PersistentIdentifierBag<T >+SnapshotElement | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Collection .Generic.SetHelpers.SetSnapShot<T> | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.AdoNet .MySqlClientBatchingBatcher | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.AdoNet .MySqlClientBatchingBatcherFactory | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.AdoNet .MySqlClientSqlCommandSet | High | 10min | 1h 0min | Rule violated: From now, all types added should be 100% covered by tests |
High issue on: NHibernate.Action .EntityAction.VeryDirtyMethod() | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Util .StringHelper.ReplaceByPredicate(String ,String,String,Boolean,Predicate<String> ) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Util .FilterHelper.Render(StringBuilder ,String,IDictionary<String,String> ,IDictionary<String,IFilter>) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Type .ManyToOneType..ctor(String,String ,Boolean,Boolean,Boolean,Boolean,Boolean ) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Type .TypeFactory.ManyToOne(String,String ,Boolean,Boolean,Boolean,Boolean,Boolean ) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Transform .CacheableResultTransformer .RetransformResults(IList,String[] ,IResultTransformer,Boolean[]) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Impl .SessionImpl..ctor(IDbConnection ,SessionFactoryImpl,Boolean,Int64 ,IInterceptor,EntityMode,Boolean,Boolean ,Boolean,ConnectionReleaseMode,FlushMode ) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Impl .AbstractSessionImpl.List<T> (IQueryExpression,QueryParameters) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Tool.hbm2ddl .SchemaExport.Execute(Action<String> ,Boolean,Boolean,TextWriter) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Proxy .DefaultLazyInitializer..ctor(String ,Type,Object,MethodInfo,MethodInfo ,IAbstractComponentType ,ISessionImplementor,Boolean) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Proxy.Poco .BasicLazyInitializer..ctor(String,Type ,Object,MethodInfo,MethodInfo ,IAbstractComponentType ,ISessionImplementor,Boolean) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Proxy .DynamicProxy.DefaultyProxyMethodBuilder .BuildTypeConstraint(Type,Type) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Persister .Entity.AbstractEntityPersister .GetColumnsToTableAliasMap(String) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Persister .Entity.AbstractEntityPersister .ProcessGeneratedPropertiesWithGenerated Sql(Object,Object,Object[] ,ISessionImplementor,SqlString ,ValueInclusion[]) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Persister .Entity.JoinedSubclassEntityPersister .GetPropertiesToUpdate(Int32[],Boolean) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.SqlCommand .BackTrackCacheParameterList .BuildBackTrackCache() | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.SqlCommand .QuerySelect.AppendTokens (SqlStringBuilder,IEnumerable) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Mapping.ByCode .Impl.IdMapper.Column(Action <IColumnMapper>) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Loader.Loader .GetRowFromResultSet(IDataReader ,ISessionImplementor,QueryParameters ,LockMode[],EntityKey,IList,EntityKey[] ,Boolean,IResultTransformer) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
High issue on: NHibernate.Loader.Loader .DoQuery(ISessionImplementor ,QueryParameters,Boolean ,IResultTransformer) | High | 5min | 1h 0min | Rule violated: From now, all methods added should respect basic quality principles |
Statistics
Stat | Severity | Debt | Annual Interest |
---|---|---|---|
Sum: | - | 37d | 104d |
Average: | - | 8min | 24min |
Minimum: | - | 2min 0s | 20min |
Maximum: | - | 1d 0h | 1d 0h |
Standard deviation: | - | 16min | 20min |
Variance: | - | 34d | 50d |
![]() | Quality Gate Fail: Critical Rules Violated |
12 rules matched
12 rules | issues | Full Name |
---|---|---|
Avoid types too big | 40 issues | Rule |
Avoid methods too big, too complex | 51 issues | Rule |
Avoid methods with too many parameters | 68 issues | Rule |
Avoid namespaces mutually dependent | 1 306 issues | Rule |
API Breaking Changes: Types | 60 issues | Rule |
API Breaking Changes: Methods | 252 issues | Rule |
API Breaking Changes: Fields | 116 issues | Rule |
API Breaking Changes: Interfaces and Abstract Classes | 38 issues | Rule |
Avoid non-readonly static fields | 61 issues | Rule |
Interface name should begin with a 'I' | 1 issue | Rule |
Exception class name should be suffixed with 'Exception' | 2 issues | Rule |
Avoid having different types with same name | 18 issues | Rule |
Statistics
Stat | issues |
---|---|
Sum: | 2 013 |
Average: | 167.75 |
Minimum: | 1 |
Maximum: | 1 306 |
Standard deviation: | 349.15 |
Variance: | 121 903 |
![]() | Quality Gate Pass: Percentage Debt |
Scalar Result: 17.92 %
![]() | Quality Gate Fail: New Debt since Baseline |
Scalar Result: 6.6 man-days
![]() | Quality Gate Fail: Debt Rating per Namespace |
39 namespaces matched
39 namespaces | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues | Full Name |
---|---|---|---|---|---|---|
NHibernate | D | 49.15 | 28d | 13d 7h | 363 issues | NHibernate |
NHibernate.Stat | D | 20.77 | 10d 7h | 2d 2h | 119 issues | NHibernate.Stat |
NHibernate.Context | D | 32.83 | 3d 2h | 1d 0h | 73 issues | NHibernate.Context |
NHibernate.Type | D | 22.69 | 72d | 16d 4h | 972 issues | NHibernate.Type |
NHibernate.Metadata | D | 40.35 | 5h 45min | 2h 19min | 4 issues | NHibernate.Metadata |
NHibernate.Impl | D | 22.89 | 105d | 24d | 737 issues | NHibernate.Impl |
NHibernate.Exceptions | D | 30.45 | 4d 5h | 1d 3h | 71 issues | NHibernate.Exceptions |
NHibernate.Driver | D | 22.12 | 20d | 4d 4h | 342 issues | NHibernate.Driver |
NHibernate.Connection | D | 20.99 | 1d 6h | 3h 4min | 24 issues | NHibernate.Connection |
NHibernate.Proxy | D | 33.08 | 5d 5h | 1d 7h | 64 issues | NHibernate.Proxy |
NHibernate.Proxy.Poco | D | 38.28 | 1d 0h | 3h 8min | 14 issues | NHibernate.Proxy.Poco |
NHibernate.Proxy.Map | D | 26.73 | 1d 1h | 2h 32min | 23 issues | NHibernate.Proxy.Map |
NHibernate.Persister | D | 36.15 | 1d 1h | 3h 19min | 7 issues | NHibernate.Persister |
NHibernate.Persister.Collection | D | 28.08 | 26d | 7d 3h | 158 issues | NHibernate.Persister.Collection |
NHibernate.Persister.Entity | D | 26.95 | 59d | 15d 7h | 294 issues | NHibernate.Persister.Entity |
NHibernate.SqlCommand | D | 21.13 | 41d | 8d 6h | 323 issues | NHibernate.SqlCommand |
NHibernate.Mapping.ByCode | D | 23.26 | 71d | 16d 5h | 757 issues | NHibernate.Mapping.ByCode |
NHibernate.Loader | D | 20.61 | 27d | 5d 5h | 150 issues | NHibernate.Loader |
NHibernate.Linq.GroupJoin | D | 33.12 | 2d 2h | 6h 3min | 51 issues | NHibernate.Linq.GroupJoin |
NHibernate.Linq.ReWriters | D | 27.25 | 4d 5h | 1d 2h | 47 issues | NHibernate.Linq.ReWriters |
NHibernate.Linq.Expressions | D | 24.08 | 2d 0h | 3h 55min | 42 issues | NHibernate.Linq.Expressions |
NHibernate.Id.Insert | D | 36.81 | 1d 7h | 5h 37min | 38 issues | NHibernate.Id.Insert |
NHibernate.Hql | E | 55.84 | 3d 0h | 1d 5h | 57 issues | NHibernate.Hql |
NHibernate.Hql.Util | D | 36.93 | 1d 0h | 3h 5min | 16 issues | NHibernate.Hql.Util |
NHibernate.Hql.Ast.ANTLR.Util | D | 23.96 | 8d 2h | 1d 7h | 75 issues | NHibernate.Hql.Ast.ANTLR.Util |
NHibernate.Hql.Ast.ANTLR.Tree | D | 25.5 | 61d | 15d 5h | 548 issues | NHibernate.Hql.Ast.ANTLR.Tree |
NHibernate.Criterion | D | 22.95 | 57d | 13d 1h | 562 issues | NHibernate.Criterion |
NHibernate.Engine | D | 39.47 | 58d | 23d | 695 issues | NHibernate.Engine |
NHibernate.Engine.Transaction | E | 59.12 | 1h 43min | 1h 1min | 8 issues | NHibernate.Engine.Transaction |
NHibernate.Engine.Query | D | 24.92 | 11d 0h | 2d 6h | 85 issues | NHibernate.Engine.Query |
NHibernate.Dialect.Lock | D | 36.21 | 1d 4h | 4h 32min | 13 issues | NHibernate.Dialect.Lock |
NHibernate.Collection | D | 41.49 | 9d 1h | 3d 6h | 99 issues | NHibernate.Collection |
NHibernate.Cfg | D | 25.85 | 50d | 12d 7h | 417 issues | NHibernate.Cfg |
NHibernate.Cfg.ConfigurationSchema | D | 32.92 | 7d 5h | 2d 4h | 52 issues | NHibernate.Cfg.ConfigurationSchema |
NHibernate.Cache.Entry | D | 30.25 | 2d 2h | 5h 34min | 31 issues | NHibernate.Cache.Entry |
NHibernate.Cache.Access | E | 104.17 | 17min | 18min | 2 issues | NHibernate.Cache.Access |
NHibernate.Bytecode | D | 26.73 | 3d 6h | 1d 0h | 42 issues | NHibernate.Bytecode |
NHibernate.Bytecode.CodeDom | E | 56.86 | 1d 6h | 1d 0h | 22 issues | NHibernate.Bytecode.CodeDom |
NHibernate.AdoNet | D | 21.14 | 16d 1h | 3d 3h | 170 issues | NHibernate.AdoNet |
Statistics
Stat | debtRating | debtRatio | devTimeInManDay | debtInManDay | issues |
---|---|---|---|---|---|
Sum: | - | 1 302 | 789d | 210d | 7 567 |
Average: | - | 33.39 | 20d | 5d 3h | 194.03 |
Minimum: | - | 20.61 | 17min | 18min | 2 |
Maximum: | - | 104.17 | 105d | 24d | 972 |
Standard deviation: | - | 15.28 | 26d | 6d 6h | 250.75 |
Variance: | - | 233.62 | 20 185 043d | 1 338 969d | 62 873 |
![]() | Quality Gate Fail: New Annual Interest since Baseline |
Scalar Result: 85.01 man-days
Hot Spots 000 |
Code Smells 000 |
Code Smells Regression 000 |
Object Oriented Design 000 |
Design 000 |
Architecture 000 |
API Breaking Changes 000 |
Code Coverage 000 |
Dead Code 000 |
Security 000 |
Visibility 000 |
Immutability 000 |
Naming Conventions 000 |
Source Files Organization 000 |
.NET Framework Usage 000 |
Defining JustMyCode 000 |
Trend Metrics 000 |
Code Diff Summary 000 |
Rules extracted from Source Code 000 |
Code Smells 053 |
|
![]() | Critical Rule Violated: Avoid types too big |
• How to Fix Issues of this Rule: Types with many lines of code should be split in a group of smaller types. To refactor a God Class you'll need patience, and you might even need to recreate everything from scratch. Here are a few refactoring advices: • The logic in the God Class must be splitted in smaller classes. These smaller classes can eventually become private classes nested in the original God Class, whose instances objects become composed of instances of smaller nested classes. • Smaller classes partitioning should be driven by the multiple responsibilities handled by the God Class. To identify these responsibilities it often helps to look for subsets of methods strongly coupled with subsets of fields. • If the God Class contains way more logic than states, a good option can be to define one or several static classes that contains no static field but only pure static methods. A pure static method is a function that computes a result only from inputs parameters, it doesn't read nor assign any static or instance field. The main advantage of pure static methods is that they are easily testable. • Try to maintain the interface of the God Class at first and delegate calls to the new extracted classes. In the end the God Class should be a pure facade without its own logic. Then you can keep it for convenience or throw it away and start to use the new classes only. • Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a 200 lines of code type, up to 10 hours for a type with 2.000 or more lines of code. In Debt and Interest computation, this rule takes account of the fact that static types with no mutable fields are just a collection of static methods that can be easily splitted and moved from one type to another.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1000:AvoidTypesTooBig", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
40 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
40 types | locJustMyCode | # IL instructions | Methods | Fields | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
AbstractEntityPersister | 1 491 | 11 139 | 322 methods | 88 fields | 7h 27min | 2h 52min | NHibernate.Persister.Entity .AbstractEntityPersister |
Configuration | 1 008 | 5 817 | 122 methods | 35 fields | 5h 2min | 1h 48min | NHibernate.Cfg.Configuration |
SessionImpl | 891 | 6 078 | 177 methods | 24 fields | 4h 27min | 1h 33min | NHibernate.Impl.SessionImpl |
AbstractCollectionPersister | 716 | 4 955 | 152 methods | 90 fields | 3h 34min | 1h 10min | NHibernate.Persister.Collection .AbstractCollectionPersister |
ModelMapper | 592 | 6 479 | 163 methods | 43 fields | 2h 57min | 53min | NHibernate.Mapping.ByCode.ModelMapper |
Loader | 574 | 3 983 | 89 methods | 5 fields | 2h 52min | 51min | NHibernate.Loader.Loader |
StatefulPersistenceContext | 501 | 3 179 | 93 methods | 25 fields | 2h 30min | 41min | NHibernate.Engine .StatefulPersistenceContext |
CollectionBinder | 434 | 3 228 | 44 methods | no field | 2h 10min | 32min | NHibernate.Cfg.XmlHbmBinding .CollectionBinder |
SessionFactoryImpl | 417 | 2 639 | 70 methods | 33 fields | 2h 5min | 30min | NHibernate.Impl.SessionFactoryImpl |
MultiQueryImpl | 401 | 2 384 | 64 methods | 19 fields | 2h 0min | 28min | NHibernate.Impl.MultiQueryImpl |
SingleTableEntityPersister | 372 | 2 368 | 57 methods | 39 fields | 1h 51min | 24min | NHibernate.Persister.Entity .SingleTableEntityPersister |
CriteriaQueryTranslator | 351 | 2 246 | 55 methods | 21 fields | 1h 45min | 21min | NHibernate.Loader.Criteria .CriteriaQueryTranslator |
ExpressionProcessor | 346 | 3 356 | 45 methods | 6 fields | 1h 43min | 21min | NHibernate.Impl.ExpressionProcessor |
AbstractQueryImpl | 345 | 2 404 | 118 methods | 24 fields | 1h 43min | 21min | NHibernate.Impl.AbstractQueryImpl |
SqlString | 340 | 2 928 | 45 methods | 7 fields | 1h 42min | 20min | NHibernate.SqlCommand.SqlString |
JoinWalker | 337 | 2 182 | 60 methods | 17 fields | 1h 41min | 20min | NHibernate.Loader.JoinWalker |
SimpleModelInspector | 335 | 2 399 | 128 methods | 27 fields | 1h 40min | 19min | NHibernate.Mapping.ByCode .SimpleModelInspector |
Dialect | 331 | 2 218 | 151 methods | 12 fields | 1h 39min | 19min | NHibernate.Dialect.Dialect |
Table | 324 | 2 162 | 70 methods | 20 fields | 1h 37min | 18min | NHibernate.Mapping.Table |
SybaseSQLAnywhere10Dialect | 313 | 2 048 | 61 methods | no field | 1h 33min | 16min | NHibernate.Dialect .SybaseSQLAnywhere10Dialect |
ComponentType | 312 | 2 007 | 50 methods | 9 fields | 1h 33min | 16min | NHibernate.Type.ComponentType |
PersistentClass | 287 | 1 771 | 145 methods | 41 fields | 1h 26min | 13min | NHibernate.Mapping.PersistentClass |
StatelessSessionImpl | 276 | 1 857 | 86 methods | 4 fields | 1h 22min | 12min | NHibernate.Impl.StatelessSessionImpl |
StatisticsImpl | 274 | 2 276 | 71 methods | 50 fields | 1h 22min | 11min | NHibernate.Stat.StatisticsImpl |
TypeFactory | 267 | 2 366 | 47 methods | 8 fields | 1h 20min | 10min | NHibernate.Type.TypeFactory |
AbstractDetachedQuery | 264 | 1 503 | 65 methods | 17 fields | 1h 19min | 10min | NHibernate.Impl.AbstractDetachedQuery |
JoinedSubclassEntityPersister | 259 | 1 598 | 41 methods | 24 fields | 1h 17min | 9min | NHibernate.Persister.Entity .JoinedSubclassEntityPersister |
ReflectHelper | 257 | 1 509 | 35 methods | 4 fields | 15min | 1min 54s | NHibernate.Util.ReflectHelper |
TypeExtensions | 257 | 2 733 | 34 methods | 2 fields | 15min | 1min 54s | NHibernate.Mapping.ByCode.TypeExtensions |
EntityMetamodel | 254 | 1 670 | 64 methods | 52 fields | 1h 16min | 9min | NHibernate.Tuple.Entity.EntityMetamodel |
ClassBinder | 243 | 1 644 | 26 methods | 1 field | 1h 12min | 7min | NHibernate.Cfg.XmlHbmBinding.ClassBinder |
CriteriaImpl | 239 | 1 402 | 65 methods | 26 fields | 1h 11min | 7min | NHibernate.Impl.CriteriaImpl |
StringHelper | 230 | 1 611 | 54 methods | 11 fields | 13min | 1min 11s | NHibernate.Util.StringHelper |
EventListeners | 230 | 1 511 | 73 methods | 36 fields | 1h 9min | 5min | NHibernate.Event.EventListeners |
AbstractExplicitlyDeclaredModel | 226 | 1 607 | 71 methods | 31 fields | 1h 7min | 5min | NHibernate.Mapping.ByCode .AbstractExplicitlyDeclaredModel |
MultiCriteriaImpl | 224 | 1 409 | 30 methods | 17 fields | 1h 7min | 5min | NHibernate.Impl.MultiCriteriaImpl |
Mappings | 219 | 1 542 | 61 methods | 30 fields | 1h 5min | 4min 30s | NHibernate.Cfg.Mappings |
DotNode | 214 | 1 477 | 33 methods | 18 fields | 1h 4min | 3min 51s | NHibernate.Hql.Ast.ANTLR.Tree.DotNode |
DefaultMergeEventListener | 205 | 1 390 | 21 methods | 1 field | 1h 1min | 2min 39s | NHibernate.Event.Default .DefaultMergeEventListener |
FromElement | 203 | 1 433 | 81 methods | 25 fields | 1h 0min | 2min 23s | NHibernate.Hql.Ast.ANTLR.Tree .FromElement |
![]() | Rule Violated: Avoid types with too many methods |
• How to Fix Issues of this Rule: To refactor properly a God Class please read HowToFix advices from the default rule Types to Big. // The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a type with 20 methods, up to 10 hours for a type with 200 or more methods. In Debt and Interest computation, this rule takes account of the fact that static types with no mutable fields are just a collection of static methods that can be easily splitted and moved from one type to another.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1001:AvoidTypesWithTooManyMethods", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
126 types matched
- The following list of types is truncated and contains only the first 100 types of the 126 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
126 types | nbMethods | instanceMethods | staticMethods | # lines of code (LOC) | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
PersistentIdentifierBag<T>![]() | 43 | 43 methods | no method | 187 | 2h 9min | 32min | NHibernate.Collection.Generic .PersistentIdentifierBag<T> |
PersistentGenericBag<T>![]() | 41 | 40 methods | 1 method | 185 | 2h 3min | 29min | NHibernate.Collection.Generic .PersistentGenericBag<T> |
PersistentGenericSet<T>![]() | 40 | 40 methods | no method | 182 | 2h 0min | 28min | NHibernate.Collection.Generic .PersistentGenericSet<T> |
PersistentGenericList<T>![]() | 40 | 40 methods | no method | 173 | 2h 0min | 28min | NHibernate.Collection.Generic .PersistentGenericList<T> |
FirebirdDialect![]() | 24 | 22 methods | 2 methods | 150 | 1h 12min | 7min | NHibernate.Dialect.FirebirdDialect |
JoinedSubclassCustomizer<TEntity>![]() | 22 | 22 methods | no method | 51 | 1h 6min | 4min 38s | NHibernate.Mapping.ByCode.Impl .CustomizersImpl .JoinedSubclassCustomizer<TEntity> |
AbstractEntityPersister | 197 | 197 methods | no method | 1 491 | 1d 1h | 3h 56min | NHibernate.Persister.Entity .AbstractEntityPersister |
SessionImpl | 142 | 142 methods | no method | 891 | 7h 6min | 2h 43min | NHibernate.Impl.SessionImpl |
QueryOver<TRoot,TSubType> | 121 | 121 methods | no method | 168 | 6h 3min | 2h 15min | NHibernate.Criterion.QueryOver<TRoot ,TSubType> |
AbstractQueryImpl | 102 | 101 methods | 1 method | 345 | 5h 6min | 1h 50min | NHibernate.Impl.AbstractQueryImpl |
SimpleModelInspector | 102 | 102 methods | no method | 335 | 5h 6min | 1h 50min | NHibernate.Mapping.ByCode .SimpleModelInspector |
Configuration | 93 | 88 methods | 5 methods | 1 008 | 4h 39min | 1h 38min | NHibernate.Cfg.Configuration |
ModelMapper | 85 | 85 methods | no method | 592 | 4h 15min | 1h 27min | NHibernate.Mapping.ByCode.ModelMapper |
HqlTreeBuilder | 85 | 85 methods | no method | 97 | 4h 15min | 1h 27min | NHibernate.Hql.Ast.HqlTreeBuilder |
AbstractCollectionPersister | 84 | 82 methods | 2 methods | 716 | 4h 12min | 1h 26min | NHibernate.Persister.Collection .AbstractCollectionPersister |
ISession | 79 | 79 methods | no method | N/A | 3h 57min | 1h 20min | NHibernate.ISession |
StatefulPersistenceContext | 77 | 77 methods | no method | 501 | 3h 51min | 1h 17min | NHibernate.Engine .StatefulPersistenceContext |
IQuery | 75 | 75 methods | no method | N/A | 3h 45min | 1h 14min | NHibernate.IQuery |
Loader | 72 | 60 methods | 12 methods | 574 | 3h 36min | 1h 10min | NHibernate.Loader.Loader |
Restrictions | 72 | no method | 72 methods | 105 | 3h 36min | 1h 10min | NHibernate.Criterion.Restrictions |
Dialect | 67 | 63 methods | 4 methods | 331 | 3h 21min | 1h 4min | NHibernate.Dialect.Dialect |
AbstractDetachedQuery | 65 | 65 methods | no method | 264 | 3h 15min | 1h 1min | NHibernate.Impl.AbstractDetachedQuery |
AbstractSessionImpl | 63 | 63 methods | no method | 137 | 3h 9min | 58min | NHibernate.Impl.AbstractSessionImpl |
PropertyContainerCustomizer<TEntity> | 62 | 60 methods | 2 methods | 197 | 3h 6min | 57min | NHibernate.Mapping.ByCode.Impl .CustomizersImpl .PropertyContainerCustomizer<TEntity> |
IPersistenceContext | 62 | 62 methods | no method | N/A | 3h 6min | 57min | NHibernate.Engine.IPersistenceContext |
StatelessSessionImpl | 61 | 61 methods | no method | 276 | 3h 3min | 56min | NHibernate.Impl.StatelessSessionImpl |
MultiQueryImpl | 61 | 61 methods | no method | 401 | 3h 3min | 56min | NHibernate.Impl.MultiQueryImpl |
IQueryOver<TRoot,TSubType> | 57 | 57 methods | no method | N/A | 2h 51min | 50min | NHibernate.IQueryOver<TRoot,TSubType> |
IDetachedQuery | 57 | 57 methods | no method | N/A | 2h 51min | 50min | NHibernate.IDetachedQuery |
StringHelper | 54 | no method | 54 methods | 230 | 32min | 9min | NHibernate.Util.StringHelper |
CustomizersHolder | 54 | 54 methods | no method | 125 | 2h 42min | 46min | NHibernate.Mapping.ByCode.Impl .CustomizersHolder |
Property | 52 | 51 methods | 1 method | 53 | 2h 36min | 44min | NHibernate.Criterion.Property |
SessionFactoryImpl | 51 | 50 methods | 1 method | 417 | 2h 33min | 42min | NHibernate.Impl.SessionFactoryImpl |
ICustomizersHolder | 50 | 50 methods | no method | N/A | 2h 30min | 41min | NHibernate.Mapping.ByCode.Impl .ICustomizersHolder |
Subqueries | 50 | no method | 50 methods | 58 | 2h 30min | 41min | NHibernate.Criterion.Subqueries |
CollectionType | 49 | 49 methods | no method | 156 | 2h 27min | 40min | NHibernate.Type.CollectionType |
ISessionImplementor | 49 | 49 methods | no method | N/A | 2h 27min | 40min | NHibernate.Engine.ISessionImplementor |
ProjectionsExtensions | 48 | no method | 48 methods | 75 | 2h 24min | 39min | NHibernate.Criterion .ProjectionsExtensions |
Projections | 48 | no method | 48 methods | 55 | 2h 24min | 39min | NHibernate.Criterion.Projections |
AbstractPersistentCollection | 48 | 48 methods | no method | 198 | 2h 24min | 39min | NHibernate.Collection .AbstractPersistentCollection |
IMultiQuery | 47 | 47 methods | no method | N/A | 2h 21min | 37min | NHibernate.IMultiQuery |
CriteriaImpl | 47 | 47 methods | no method | 239 | 2h 21min | 37min | NHibernate.Impl.CriteriaImpl |
TypeFactory | 46 | no method | 46 methods | 267 | 2h 18min | 36min | NHibernate.Type.TypeFactory |
ExpressionProcessor | 45 | no method | 45 methods | 346 | 2h 15min | 35min | NHibernate.Impl.ExpressionProcessor |
AbstractExplicitlyDeclaredModel | 45 | 45 methods | no method | 226 | 2h 15min | 35min | NHibernate.Mapping.ByCode .AbstractExplicitlyDeclaredModel |
CriteriaQueryTranslator | 45 | 44 methods | 1 method | 351 | 2h 15min | 35min | NHibernate.Loader.Criteria .CriteriaQueryTranslator |
CollectionBinder | 44 | 40 methods | 4 methods | 434 | 2h 12min | 33min | NHibernate.Cfg.XmlHbmBinding .CollectionBinder |
IEntityPersister | 42 | 42 methods | no method | N/A | 2h 6min | 31min | NHibernate.Persister.Entity .IEntityPersister |
ClassCustomizer<TEntity> | 42 | 42 methods | no method | 109 | 2h 6min | 31min | NHibernate.Mapping.ByCode.Impl .CustomizersImpl.ClassCustomizer<TEntity > |
SqlString | 41 | 38 methods | 3 methods | 340 | 2h 3min | 29min | NHibernate.SqlCommand.SqlString |
QueryOver<TRoot> | 41 | 41 methods | no method | 50 | 2h 3min | 29min | NHibernate.Criterion.QueryOver<TRoot> |
ComponentType | 39 | 39 methods | no method | 312 | 1h 57min | 27min | NHibernate.Type.ComponentType |
PossibleValueSet | 39 | 35 methods | 4 methods | 149 | 1h 57min | 27min | NHibernate.Linq.Visitors .PossibleValueSet |
CriteriaImpl+Subcriteria | 38 | 38 methods | no method | 85 | 1h 54min | 25min | NHibernate.Impl.CriteriaImpl+Subcriteria |
ConventionModelMapper | 37 | 37 methods | no method | 117 | 1h 51min | 24min | NHibernate.Mapping.ByCode .ConventionModelMapper |
ICriteria | 36 | 36 methods | no method | N/A | 1h 48min | 23min | NHibernate.ICriteria |
ClassMapper | 36 | 36 methods | no method | 141 | 1h 48min | 23min | NHibernate.Mapping.ByCode.Impl .ClassMapper |
JoinWalker | 36 | 32 methods | 4 methods | 337 | 1h 48min | 23min | NHibernate.Loader.JoinWalker |
ReflectHelper | 35 | no method | 35 methods | 257 | 21min | 4min 22s | NHibernate.Util.ReflectHelper |
AnyType | 35 | 34 methods | 1 method | 88 | 1h 45min | 21min | NHibernate.Type.AnyType |
SingleTableEntityPersister | 35 | 34 methods | 1 method | 372 | 1h 45min | 21min | NHibernate.Persister.Entity .SingleTableEntityPersister |
PersistentGenericMap<TKey,TValue> | 35 | 35 methods | no method | 176 | 1h 45min | 21min | NHibernate.Collection.Generic .PersistentGenericMap<TKey,TValue> |
Table | 34 | 33 methods | 1 method | 324 | 1h 42min | 20min | NHibernate.Mapping.Table |
TypeExtensions | 34 | no method | 34 methods | 257 | 20min | 4min 6s | NHibernate.Mapping.ByCode.TypeExtensions |
DetachedCriteria | 34 | 28 methods | 6 methods | 77 | 1h 42min | 20min | NHibernate.Criterion.DetachedCriteria |
Mappings | 34 | 32 methods | 2 methods | 219 | 1h 42min | 20min | NHibernate.Cfg.Mappings |
StatisticsImpl | 33 | 32 methods | 1 method | 274 | 1h 39min | 19min | NHibernate.Stat.StatisticsImpl |
PersistentClass | 33 | 33 methods | no method | 287 | 1h 39min | 19min | NHibernate.Mapping.PersistentClass |
IPersistentCollection | 33 | 33 methods | no method | N/A | 1h 39min | 19min | NHibernate.Collection .IPersistentCollection |
ResultSetWrapper | 33 | 33 methods | no method | 49 | 1h 39min | 19min | NHibernate.AdoNet.ResultSetWrapper |
AbstractType | 32 | 31 methods | 1 method | 40 | 1h 36min | 17min | NHibernate.Type.AbstractType |
EntityType | 32 | 31 methods | 1 method | 160 | 1h 36min | 17min | NHibernate.Type.EntityType |
NDataReader | 32 | 32 methods | no method | 82 | 1h 36min | 17min | NHibernate.Driver.NDataReader |
NHybridDataReader | 32 | 32 methods | no method | 56 | 1h 36min | 17min | NHibernate.Driver.NHybridDataReader |
BatcherDataReaderWrapper | 31 | 31 methods | no method | 43 | 1h 33min | 16min | NHibernate.Driver .BatcherDataReaderWrapper |
IStatelessSession | 30 | 30 methods | no method | N/A | 1h 30min | 15min | NHibernate.IStatelessSession |
IdBagMapper | 30 | 30 methods | no method | 97 | 1h 30min | 15min | NHibernate.Mapping.ByCode.Impl .IdBagMapper |
ListMapper | 30 | 30 methods | no method | 97 | 1h 30min | 15min | NHibernate.Mapping.ByCode.Impl .ListMapper |
QueryOverBuilderExtensions | 30 | no method | 30 methods | 30 | 1h 30min | 15min | NHibernate.Criterion .QueryOverBuilderExtensions |
ActionQueue | 30 | 29 methods | 1 method | 102 | 1h 30min | 15min | NHibernate.Engine.ActionQueue |
AbstractBatcher | 30 | 28 methods | 2 methods | 184 | 1h 30min | 15min | NHibernate.AdoNet.AbstractBatcher |
DynamicFilterParameterSpecification+Coll ectionOfValuesType | 29 | 29 methods | no method | 54 | 1h 27min | 13min | NHibernate.Param .DynamicFilterParameterSpecification+Col lectionOfValuesType |
MultiCriteriaImpl | 29 | 29 methods | no method | 224 | 1h 27min | 13min | NHibernate.Impl.MultiCriteriaImpl |
FakeModelExplicitDeclarationsHolder | 29 | 29 methods | no method | 57 | 1h 27min | 13min | NHibernate.Mapping.ByCode .FakeModelExplicitDeclarationsHolder |
IModelExplicitDeclarationsHolder | 29 | 29 methods | no method | N/A | 1h 27min | 13min | NHibernate.Mapping.ByCode .IModelExplicitDeclarationsHolder |
IModelInspector | 29 | 29 methods | no method | N/A | 1h 27min | 13min | NHibernate.Mapping.ByCode .IModelInspector |
BagMapper | 29 | 29 methods | no method | 93 | 1h 27min | 13min | NHibernate.Mapping.ByCode.Impl.BagMapper |
ExplicitDeclarationsHolder | 29 | 29 methods | no method | 84 | 1h 27min | 13min | NHibernate.Mapping.ByCode.Impl .ExplicitDeclarationsHolder |
MapMapper | 29 | 29 methods | no method | 103 | 1h 27min | 13min | NHibernate.Mapping.ByCode.Impl.MapMapper |
SetMapper | 29 | 29 methods | no method | 95 | 1h 27min | 13min | NHibernate.Mapping.ByCode.Impl.SetMapper |
CollectionPropertiesCustomizer<TEntity ,TElement> | 29 | 29 methods | no method | 66 | 1h 27min | 13min | NHibernate.Mapping.ByCode.Impl .CustomizersImpl .CollectionPropertiesCustomizer<TEntity ,TElement> |
ASTNode | 29 | 29 methods | no method | 176 | 1h 27min | 13min | NHibernate.Hql.Ast.ANTLR.Tree.ASTNode |
FromElement | 29 | 29 methods | no method | 203 | 1h 27min | 13min | NHibernate.Hql.Ast.ANTLR.Tree .FromElement |
SimpleModelInspector+MixinDeclaredModel | 28 | 28 methods | no method | 34 | 1h 24min | 12min | NHibernate.Mapping.ByCode .SimpleModelInspector+MixinDeclaredModel |
ExplicitlyDeclaredModel | 28 | 28 methods | no method | 32 | 1h 24min | 12min | NHibernate.Mapping.ByCode .ExplicitlyDeclaredModel |
FromClause | 28 | 24 methods | 4 methods | 102 | 1h 24min | 12min | NHibernate.Hql.Ast.ANTLR.Tree.FromClause |
CustomType | 27 | 27 methods | no method | 64 | 1h 21min | 11min | NHibernate.Type.CustomType |
DotNode | 27 | 24 methods | 3 methods | 214 | 1h 21min | 11min | NHibernate.Hql.Ast.ANTLR.Tree.DotNode |
CompositeCustomType | 26 | 26 methods | no method | 94 | 1h 18min | 9min | NHibernate.Type.CompositeCustomType |
IType | 26 | 26 methods | no method | N/A | 1h 18min | 9min | NHibernate.Type.IType |
![]() | Rule Violated: Avoid types with too many fields |
• How to Fix Issues of this Rule: To refactor such type and increase code quality and maintainability, certainly you'll have to group subsets of fields into smaller types and dispatch the logic implemented into the methods into these smaller types. More refactoring advices can be found in the default rule Types to Big, HowToFix section. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a type with 15 fields, to up to 10 hours for a type with 200 or more fields.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1002:AvoidTypesWithTooManyFields", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
32 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
32 types | instanceFields | staticFields | methodsAssigningFields | Size of instance | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
QueryLoader![]() | 20 fields | no field | 18 methods | 102 | 1h 14min | 8min | NHibernate.Loader.Hql.QueryLoader |
AbstractCollectionPersister | 88 fields | no field | 2 methods | 292 | 4h 33min | 1h 35min | NHibernate.Persister.Collection .AbstractCollectionPersister |
AbstractEntityPersister | 85 fields | no field | 44 methods | 331 | 4h 24min | 1h 32min | NHibernate.Persister.Entity .AbstractEntityPersister |
EntityMetamodel | 49 fields | no field | 1 method | 140 | 2h 39min | 45min | NHibernate.Tuple.Entity.EntityMetamodel |
Collection | 47 fields | no field | 45 methods | 150 | 2h 33min | 43min | NHibernate.Mapping.Collection |
PersistentClass | 38 fields | no field | 32 methods | 130 | 2h 7min | 31min | NHibernate.Mapping.PersistentClass |
SingleTableEntityPersister | 37 fields | no field | no method | 470 | 2h 4min | 30min | NHibernate.Persister.Entity .SingleTableEntityPersister |
StatisticsImpl | 36 fields | no field | 58 methods | 261 | 2h 1min | 29min | NHibernate.Stat.StatisticsImpl |
EventListeners | 35 fields | no field | 34 methods | 140 | 1h 58min | 27min | NHibernate.Event.EventListeners |
SessionFactoryImpl | 31 fields | no field | 4 methods | 118 | 1h 46min | 22min | NHibernate.Impl.SessionFactoryImpl |
AbstractExplicitlyDeclaredModel | 31 fields | no field | no method | 124 | 1h 46min | 22min | NHibernate.Mapping.ByCode .AbstractExplicitlyDeclaredModel |
SimpleModelInspector | 27 fields | no field | 26 methods | 108 | 1h 35min | 17min | NHibernate.Mapping.ByCode .SimpleModelInspector |
FakeModelExplicitDeclarationsHolder | 27 fields | no field | no method | 108 | 1h 35min | 17min | NHibernate.Mapping.ByCode .FakeModelExplicitDeclarationsHolder |
ExplicitDeclarationsHolder | 27 fields | no field | no method | 108 | 1h 35min | 17min | NHibernate.Mapping.ByCode.Impl .ExplicitDeclarationsHolder |
CriteriaImpl | 26 fields | no field | 24 methods | 106 | 1h 32min | 16min | NHibernate.Impl.CriteriaImpl |
Mappings | 26 fields | no field | 8 methods | 110 | 1h 32min | 16min | NHibernate.Cfg.Mappings |
CustomizersHolder | 25 fields | no field | no method | 100 | 1h 29min | 14min | NHibernate.Mapping.ByCode.Impl .CustomizersHolder |
JoinedSubclassEntityPersister | 24 fields | no field | no method | 427 | 1h 26min | 13min | NHibernate.Persister.Entity .JoinedSubclassEntityPersister |
FromElement | 24 fields | no field | 28 methods | 102 | 1h 26min | 13min | NHibernate.Hql.Ast.ANTLR.Tree .FromElement |
Configuration | 23 fields | no field | 28 methods | 125 | 1h 23min | 12min | NHibernate.Cfg.Configuration |
AbstractQueryImpl | 22 fields | no field | 15 methods | 85 | 1h 20min | 11min | NHibernate.Impl.AbstractQueryImpl |
SessionImpl | 21 fields | no field | 14 methods | 105 | 1h 17min | 9min | NHibernate.Impl.SessionImpl |
StatefulPersistenceContext | 21 fields | no field | 18 methods | 75 | 1h 17min | 9min | NHibernate.Engine .StatefulPersistenceContext |
MultiQueryImpl | 18 fields | no field | 10 methods | 66 | 1h 8min | 5min | NHibernate.Impl.MultiQueryImpl |
Table | 17 fields | 1 field | 14 methods | 64 | 1h 8min | 5min | NHibernate.Mapping.Table |
CriteriaQueryTranslator | 18 fields | no field | 1 method | 72 | 1h 8min | 5min | NHibernate.Loader.Criteria .CriteriaQueryTranslator |
AbstractDetachedQuery | 17 fields | no field | 21 methods | 60 | 1h 5min | 4min 34s | NHibernate.Impl.AbstractDetachedQuery |
RootClass | 17 fields | no field | 18 methods | 177 | 1h 5min | 4min 34s | NHibernate.Mapping.RootClass |
Join | 17 fields | no field | 16 methods | 55 | 1h 5min | 4min 34s | NHibernate.Mapping.Join |
BasicFormatter+FormatProcess | 17 fields | no field | 46 methods | 47 | 1h 5min | 4min 34s | NHibernate.AdoNet.Util .BasicFormatter+FormatProcess |
MultiCriteriaImpl | 16 fields | no field | 5 methods | 58 | 1h 2min | 3min 17s | NHibernate.Impl.MultiCriteriaImpl |
JoinWalker | 16 fields | no field | 18 methods | 64 | 1h 2min | 3min 17s | NHibernate.Loader.JoinWalker |
![]() | Critical Rule Violated: Avoid methods too big, too complex |
• How to Fix Issues of this Rule: A large and complex method should be split in smaller methods, or even one or several classes can be created for that. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). Large switch…case structures might be refactored through the help of a set of types that implement a common interface, the interface polymorphism playing the role of the switch cases tests. Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. The estimated Debt, which means the effort to fix such issue, varies from 40 minutes to 8 hours, linearly from a weighted complexity score.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1003:AvoidMethodsTooBigTooComplex", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
51 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
51 methods | # lines of code (LOC) | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | complexityScore | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|---|
VeryDirtyMethod()![]() | 56 | 26 | 32 | 5 | 79 | 1h 38min | 12min | NHibernate.Action.EntityAction .VeryDirtyMethod() |
Resolve(Boolean,Boolean,String,IASTNode)![]() | 54 | 15 | 18 | 3 | 57 | 1h 12min | 8min | NHibernate.Hql.Ast.ANTLR.Tree.IndexNode .Resolve(Boolean,Boolean,String,IASTNode ) |
Initialize(SelectClause)![]() | 52 | 13 | 18 | 4 | 57 | 1h 12min | 8min | NHibernate.Loader.Hql.QueryLoader .Initialize(SelectClause) |
.ctor(PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping) | 227 | 46 | 88 | 5 | 203 | 4h 5min | 40min | NHibernate.Persister.Entity .SingleTableEntityPersister..ctor (PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping) |
.ctor(Collection ,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor) | 243 | 42 | 88 | 3 | 201 | 4h 3min | 40min | NHibernate.Persister.Collection .AbstractCollectionPersister..ctor (Collection,ICacheConcurrencyStrategy ,Configuration ,ISessionFactoryImplementor) |
ListenerTypeConvertFrom(String) | 36 | 36 | 86 | 34 | 184 | 3h 43min | 36min | NHibernate.Cfg.ConfigurationSchema .CfgXmlHelper.ListenerTypeConvertFrom (String) |
.ctor(PersistentClass ,ISessionFactoryImplementor) | 138 | 48 | 71 | 3 | 149 | 3h 1min | 28min | NHibernate.Tuple.Entity.EntityMetamodel. .ctor(PersistentClass ,ISessionFactoryImplementor) |
.ctor(PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor) | 189 | 21 | 50 | 3 | 140 | 2h 50min | 26min | NHibernate.Persister.Entity .AbstractEntityPersister..ctor (PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor) |
Create(IToken) | 77 | 65 | 43 | 6 | 135 | 2h 44min | 25min | NHibernate.Hql.Ast.ANTLR.Tree .HqlSqlWalkerTreeAdaptor.Create(IToken) |
.ctor(PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping) | 163 | 26 | 59 | 3 | 135 | 2h 44min | 25min | NHibernate.Persister.Entity .JoinedSubclassEntityPersister..ctor (PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping) |
.ctor(Configuration,IMapping,Settings ,EventListeners) | 136 | 34 | 55 | 4 | 132 | 2h 41min | 24min | NHibernate.Impl.SessionFactoryImpl..ctor (Configuration,IMapping,Settings ,EventListeners) |
RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry) | 63 | 32 | 42 | 4 | 89 | 1h 50min | 15min | NHibernate.SqlCommand.Template .RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry) |
GenerateSchemaUpdateScript(Dialect ,DatabaseMetadata) | 49 | 25 | 50 | 8 | 89 | 1h 50min | 15min | NHibernate.Cfg.Configuration .GenerateSchemaUpdateScript(Dialect ,DatabaseMetadata) |
BindPropertyResults(String ,HbmReturnDiscriminator ,HbmReturnProperty[],PersistentClass) | 77 | 24 | 39 | 4 | 87 | 1h 47min | 14min | NHibernate.Cfg.XmlHbmBinding .ResultSetMappingBinder .BindPropertyResults(String ,HbmReturnDiscriminator ,HbmReturnProperty[],PersistentClass) |
Bind(IEnumerable<IEntityPropertyMapping> ,Table,IDictionary<String,MetaAttribute> ,Action<Property>,Action<Property>) | 79 | 26 | 37 | 3 | 86 | 1h 46min | 14min | NHibernate.Cfg.XmlHbmBinding .PropertiesBinder.Bind(IEnumerable <IEntityPropertyMapping>,Table ,IDictionary<String,MetaAttribute> ,Action<Property>,Action<Property>) |
SqlCreateString(Dialect,IMapping,String ,String) | 62 | 28 | 50 | 3 | 84 | 1h 44min | 14min | NHibernate.Mapping.Table.SqlCreateString (Dialect,IMapping,String,String) |
.ctor(PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping) | 75 | 20 | 36 | 4 | 81 | 1h 40min | 13min | NHibernate.Persister.Entity .UnionSubclassEntityPersister..ctor (PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping) |
DoUpdateRows(Object ,IPersistentCollection ,ISessionImplementor) | 62 | 22 | 37 | 5 | 80 | 1h 39min | 13min | NHibernate.Persister.Collection .OneToManyPersister.DoUpdateRows(Object ,IPersistentCollection ,ISessionImplementor) |
Parse(String,ParameterParser+IRecognizer ) | 57 | 28 | 35 | 4 | 79 | 1h 38min | 12min | NHibernate.Engine.Query.ParameterParser .Parse(String ,ParameterParser+IRecognizer) |
.ctor(ICustomQuery ,ISessionFactoryImplementor) | 112 | 9 | 13 | 3 | 78 | 1h 37min | 12min | NHibernate.Loader.Custom.CustomLoader. .ctor(ICustomQuery ,ISessionFactoryImplementor) |
InitializeExplicitSelectClause (FromClause) | 57 | 20 | 30 | 6 | 76 | 1h 34min | 12min | NHibernate.Hql.Ast.ANTLR.Tree .SelectClause .InitializeExplicitSelectClause (FromClause) |
DoList() | 67 | 22 | 33 | 3 | 75 | 1h 33min | 12min | NHibernate.Impl.MultiQueryImpl.DoList() |
GenerateSchemaCreationScript(Dialect) | 49 | 18 | 42 | 5 | 71 | 1h 28min | 11min | NHibernate.Cfg.Configuration .GenerateSchemaCreationScript(Dialect) |
GenerateDropSchemaScript(Dialect) | 45 | 20 | 39 | 5 | 70 | 1h 27min | 10min | NHibernate.Cfg.Configuration .GenerateDropSchemaScript(Dialect) |
GenerateCustomReturns(Boolean) | 55 | 19 | 29 | 5 | 70 | 1h 27min | 10min | NHibernate.Loader.Custom.Sql .SQLQueryReturnProcessor .GenerateCustomReturns(Boolean) |
Update(Object,Object[],Object[],Object ,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor) | 42 | 24 | 28 | 4 | 66 | 1h 22min | 10min | NHibernate.Persister.Entity .AbstractEntityPersister.Update(Object ,Object[],Object[],Object,Boolean[] ,Int32,Object,Object,SqlCommandInfo ,ISessionImplementor) |
GetOwnerId(String,String,Object ,IDictionary) | 38 | 17 | 27 | 7 | 66 | 1h 22min | 10min | NHibernate.Engine .StatefulPersistenceContext.GetOwnerId (String,String,Object,IDictionary) |
VisitMethodCallExpression (MethodCallExpression) | 21 | 21 | 36 | 7 | 64 | 1h 20min | 9min | NHibernate.Linq.ReWriters .MergeAggregatingResultsInExpressionRewr iter.VisitMethodCallExpression (MethodCallExpression) |
GenerateUpdateString(Boolean[],Int32 ,Object[],Boolean) | 36 | 21 | 31 | 5 | 64 | 1h 20min | 9min | NHibernate.Persister.Entity .AbstractEntityPersister .GenerateUpdateString(Boolean[],Int32 ,Object[],Boolean) |
Delete(Object,Object,Int32,Object ,SqlCommandInfo,ISessionImplementor ,Object[]) | 45 | 23 | 29 | 3 | 63 | 1h 19min | 9min | NHibernate.Persister.Entity .AbstractEntityPersister.Delete(Object ,Object,Int32,Object,SqlCommandInfo ,ISessionImplementor,Object[]) |
ConcreteQueries(String ,ISessionFactoryImplementor) | 42 | 17 | 21 | 6 | 63 | 1h 19min | 9min | NHibernate.Hql.QuerySplitter .ConcreteQueries(String ,ISessionFactoryImplementor) |
RenderOrderByStringTemplate(String ,Dialect,SQLFunctionRegistry) | 41 | 20 | 29 | 4 | 61 | 1h 16min | 8min | NHibernate.SqlCommand.Template .RenderOrderByStringTemplate(String ,Dialect,SQLFunctionRegistry) |
GetImplementors(String) | 46 | 18 | 26 | 4 | 61 | 1h 16min | 8min | NHibernate.Impl.SessionFactoryImpl .GetImplementors(String) |
DeleteRows(IPersistentCollection,Object ,ISessionImplementor) | 39 | 18 | 26 | 5 | 60 | 1h 15min | 8min | NHibernate.Persister.Collection .AbstractCollectionPersister.DeleteRows (IPersistentCollection,Object ,ISessionImplementor) |
ExpandDynamicFilterParameters(SqlString ,ICollection<IParameterSpecification> ,ISessionImplementor) | 50 | 11 | 24 | 5 | 59 | 1h 14min | 8min | NHibernate.Loader.Loader .ExpandDynamicFilterParameters(SqlString ,ICollection<IParameterSpecification> ,ISessionImplementor) |
ExpandDynamicFilterParameters(SqlString ,ICollection<IParameterSpecification> ,ISessionImplementor) | 50 | 11 | 24 | 5 | 59 | 1h 14min | 8min | NHibernate.Engine.Query .NativeSQLQueryPlan .ExpandDynamicFilterParameters(SqlString ,ICollection<IParameterSpecification> ,ISessionImplementor) |
BindCollectionSecondPass (ICollectionPropertiesMapping,Collection ,IDictionary<String,PersistentClass> ,IDictionary<String,MetaAttribute>) | 43 | 17 | 25 | 4 | 58 | 1h 13min | 8min | NHibernate.Cfg.XmlHbmBinding .CollectionBinder .BindCollectionSecondPass (ICollectionPropertiesMapping,Collection ,IDictionary<String,PersistentClass> ,IDictionary<String,MetaAttribute>) |
GetResultsFromDatabase(IList) | 49 | 15 | 25 | 3 | 56 | 1h 10min | 7min | NHibernate.Impl.MultiCriteriaImpl .GetResultsFromDatabase(IList) |
PerformList(QueryParameters ,ISessionImplementor,IList) | 36 | 17 | 26 | 4 | 55 | 1h 9min | 7min | NHibernate.Engine.Query.HQLQueryPlan .PerformList(QueryParameters ,ISessionImplementor,IList) |
OnMerge(MergeEvent,IDictionary) | 42 | 16 | 20 | 4 | 55 | 1h 9min | 7min | NHibernate.Event.Default .DefaultMergeEventListener.OnMerge (MergeEvent,IDictionary) |
VisitBinaryExpression(BinaryExpression) | 26 | 23 | 27 | 3 | 54 | 1h 8min | 7min | NHibernate.Linq.Visitors .HqlGeneratorExpressionTreeVisitor .VisitBinaryExpression(BinaryExpression) |
Execute() | 40 | 17 | 22 | 3 | 53 | 1h 7min | 7min | NHibernate.Action.EntityUpdateAction .Execute() |
Hydrate(IDataReader,Object,Object ,ILoadable,String[][],Boolean ,ISessionImplementor) | 39 | 16 | 24 | 3 | 52 | 1h 6min | 6min | NHibernate.Persister.Entity .AbstractEntityPersister.Hydrate (IDataReader,Object,Object,ILoadable ,String[][],Boolean,ISessionImplementor) |
DoUpdateRows(Object ,IPersistentCollection ,ISessionImplementor) | 39 | 14 | 23 | 4 | 52 | 1h 6min | 6min | NHibernate.Persister.Collection .BasicCollectionPersister.DoUpdateRows (Object,IPersistentCollection ,ISessionImplementor) |
.ctor(IStatement) | 38 | 9 | 14 | 5 | 47 | 1h 0min | 5min | NHibernate.Hql.Ast.ANTLR.Exec .MultiTableUpdateExecutor..ctor (IStatement) |
GetLimitString(SqlString,Nullable<Int32> ,Nullable<Int32>,Parameter,Parameter) | 13 | 21 | 27 | 3 | 45 | 57min | 5min | NHibernate.Dialect.Dialect .GetLimitString(SqlString,Nullable<Int32 >,Nullable<Int32>,Parameter,Parameter) |
ValidateFilterDefs() | 36 | 10 | 24 | 3 | 45 | 57min | 5min | NHibernate.Cfg.Configuration .ValidateFilterDefs() |
ExpandParameters(IDictionary<String ,TypedValue>) | 40 | 10 | 20 | 3 | 45 | 57min | 5min | NHibernate.Impl.ExpressionQueryImpl .ExpandParameters(IDictionary<String ,TypedValue>) |
Execute(QueryParameters ,ISessionImplementor) | 40 | 10 | 17 | 3 | 44 | 56min | 5min | NHibernate.Hql.Ast.ANTLR.Exec .MultiTableUpdateExecutor.Execute (QueryParameters,ISessionImplementor) |
GetNaturalIdentifierSnapshot(Object ,ISessionImplementor) | 40 | 9 | 12 | 3 | 42 | 54min | 4min 40s | NHibernate.Persister.Entity .AbstractEntityPersister .GetNaturalIdentifierSnapshot(Object ,ISessionImplementor) |
DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection ,IDbTransaction) | 38 | 6 | 14 | 4 | 41 | 53min | 4min 27s | NHibernate.Id.Enhanced.TableGenerator .DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection ,IDbTransaction) |
![]() | Critical Rule Violated: Avoid methods with too many parameters |
• How to Fix Issues of this Rule: More properties/fields can be added to the declaring type to handle numerous states. An alternative is to provide a class or a structure dedicated to handle arguments passing. For example see the class System.Diagnostics.ProcessStartInfo and the method System.Diagnostics.Process.Start(ProcessStartInfo). The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a method with 7 parameters, up to 6 hours for a methods with 40 or more parameters.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1004:AvoidMethodsWithTooManyParameters", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
68 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
68 methods | # Parameters | Debt | Annual Interest | Full Name |
---|---|---|---|---|
.ctor(IDbConnection,SessionFactoryImpl ,Boolean,Int64,IInterceptor,EntityMode ,Boolean,Boolean,Boolean ,ConnectionReleaseMode,FlushMode)![]() | 11 | 1h 36min | 30min | NHibernate.Impl.SessionImpl..ctor (IDbConnection,SessionFactoryImpl ,Boolean,Int64,IInterceptor,EntityMode ,Boolean,Boolean,Boolean ,ConnectionReleaseMode,FlushMode) |
GetRowFromResultSet(IDataReader ,ISessionImplementor,QueryParameters ,LockMode[],EntityKey,IList,EntityKey[] ,Boolean,IResultTransformer)![]() | 9 | 1h 18min | 16min | NHibernate.Loader.Loader .GetRowFromResultSet(IDataReader ,ISessionImplementor,QueryParameters ,LockMode[],EntityKey,IList,EntityKey[] ,Boolean,IResultTransformer) |
.ctor(String,Type,Object,MethodInfo ,MethodInfo,IAbstractComponentType ,ISessionImplementor,Boolean)![]() | 8 | 1h 9min | 9min | NHibernate.Proxy.Poco .BasicLazyInitializer..ctor(String,Type ,Object,MethodInfo,MethodInfo ,IAbstractComponentType ,ISessionImplementor,Boolean) |
.ctor(String,String,Boolean,Boolean ,Boolean,Boolean,Boolean)![]() | 7 | 1h 0min | 2min 0s | NHibernate.Type.ManyToOneType..ctor (String,String,Boolean,Boolean,Boolean ,Boolean,Boolean) |
ManyToOne(String,String,Boolean,Boolean ,Boolean,Boolean,Boolean)![]() | 7 | 1h 0min | 2min 0s | NHibernate.Type.TypeFactory.ManyToOne (String,String,Boolean,Boolean,Boolean ,Boolean,Boolean) |
CascadeProperty(Object,Object,IType ,CascadeStyle,String,Object,Boolean)![]() | 7 | 1h 0min | 2min 0s | NHibernate.Engine.Cascade .CascadeProperty(Object,Object,IType ,CascadeStyle,String,Object,Boolean) |
.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,String ,Dialect) | 23 | 3h 25min | 1h 57min | NHibernate.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,String ,Dialect) |
.ctor(IType[],Object[],IDictionary <String,TypedValue>,IDictionary<String ,LockMode>,RowSelection,Boolean,Boolean ,Boolean,String,String,Object[],Object ,String,Object,IResultTransformer) | 15 | 2h 12min | 59min | NHibernate.Engine.QueryParameters..ctor (IType[],Object[],IDictionary<String ,TypedValue>,IDictionary<String,LockMode >,RowSelection,Boolean,Boolean,Boolean ,String,String,Object[],Object,String ,Object,IResultTransformer) |
.ctor(String,String,IType,Boolean ,Boolean,Boolean,Boolean,Boolean,Boolean ,Boolean,Boolean,CascadeStyle,Nullable <FetchMode>) | 13 | 1h 54min | 45min | NHibernate.Tuple.StandardProperty..ctor (String,String,IType,Boolean,Boolean ,Boolean,Boolean,Boolean,Boolean,Boolean ,Boolean,CascadeStyle,Nullable<FetchMode >) |
.ctor(IType[],Object[],IDictionary <String,TypedValue>,IDictionary<String ,LockMode>,RowSelection,Boolean,Boolean ,Boolean,String,String,Object[] ,IResultTransformer) | 12 | 1h 45min | 38min | NHibernate.Engine.QueryParameters..ctor (IType[],Object[],IDictionary<String ,TypedValue>,IDictionary<String,LockMode >,RowSelection,Boolean,Boolean,Boolean ,String,String,Object[] ,IResultTransformer) |
.ctor(IType[],Object[],IDictionary <String,LockMode>,RowSelection,Boolean ,Boolean,Boolean,String,String,Boolean ,IResultTransformer) | 11 | 1h 36min | 30min | NHibernate.Engine.QueryParameters..ctor (IType[],Object[],IDictionary<String ,LockMode>,RowSelection,Boolean,Boolean ,Boolean,String,String,Boolean ,IResultTransformer) |
.ctor(Status,Object[],Object,Object ,Object,LockMode,Boolean ,IEntityPersister,EntityMode,Boolean ,Boolean) | 11 | 1h 36min | 30min | NHibernate.Engine.EntityEntry..ctor (Status,Object[],Object,Object,Object ,LockMode,Boolean,IEntityPersister ,EntityMode,Boolean,Boolean) |
AddEntry(Object,Status,Object[],Object ,Object,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean) | 11 | 1h 36min | 30min | NHibernate.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) | 11 | 1h 36min | 30min | NHibernate.Engine .StatefulPersistenceContext.AddEntry (Object,Status,Object[],Object,Object ,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean) |
.ctor(Object,Object[],Int32[],Boolean ,Object[],Object,Object,Object ,IEntityPersister,ISessionImplementor) | 10 | 1h 27min | 23min | NHibernate.Action.EntityUpdateAction. .ctor(Object,Object[],Int32[],Boolean ,Object[],Object,Object,Object ,IEntityPersister,ISessionImplementor) |
UpdateOrInsert(Object,Object[],Object[] ,Object,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor) | 10 | 1h 27min | 23min | NHibernate.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) | 10 | 1h 27min | 23min | NHibernate.Persister.Entity .AbstractEntityPersister.Update(Object ,Object[],Object[],Object,Boolean[] ,Int32,Object,Object,SqlCommandInfo ,ISessionImplementor) |
InstanceNotYetLoaded(IDataReader,Int32 ,ILoadable,EntityKey,LockMode,String ,EntityKey,Object,IList ,ISessionImplementor) | 10 | 1h 27min | 23min | NHibernate.Loader.Loader .InstanceNotYetLoaded(IDataReader,Int32 ,ILoadable,EntityKey,LockMode,String ,EntityKey,Object,IList ,ISessionImplementor) |
.ctor(IDictionary<String,TypedValue> ,IDictionary<String,LockMode> ,RowSelection,Boolean,Boolean,Boolean ,String,String,Boolean ,IResultTransformer) | 10 | 1h 27min | 23min | NHibernate.Engine.QueryParameters..ctor (IDictionary<String,TypedValue> ,IDictionary<String,LockMode> ,RowSelection,Boolean,Boolean,Boolean ,String,String,Boolean ,IResultTransformer) |
AddEntity(Object,Status,Object[] ,EntityKey,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean) | 10 | 1h 27min | 23min | NHibernate.Engine.IPersistenceContext .AddEntity(Object,Status,Object[] ,EntityKey,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean) |
AddEntity(Object,Status,Object[] ,EntityKey,Object,LockMode,Boolean ,IEntityPersister,Boolean,Boolean) | 10 | 1h 27min | 23min | NHibernate.Engine .StatefulPersistenceContext.AddEntity (Object,Status,Object[],EntityKey,Object ,LockMode,Boolean,IEntityPersister ,Boolean,Boolean) |
.ctor(String,Boolean,String,Int32,Int32 ,FlushMode,Nullable<CacheMode>,Boolean ,String,IDictionary<String,String>) | 10 | 1h 27min | 23min | NHibernate.Engine.NamedQueryDefinition. .ctor(String,Boolean,String,Int32,Int32 ,FlushMode,Nullable<CacheMode>,Boolean ,String,IDictionary<String,String>) |
Dehydrate(Object,Object[],Object ,Boolean[],Boolean[][],Int32,IDbCommand ,ISessionImplementor,Int32) | 9 | 1h 18min | 16min | NHibernate.Persister.Entity .AbstractEntityPersister.Dehydrate (Object,Object[],Object,Boolean[] ,Boolean[][],Int32,IDbCommand ,ISessionImplementor,Int32) |
Update(Object,Object[],Int32[],Boolean ,Object[],Object,Object,Object ,ISessionImplementor) | 9 | 1h 18min | 16min | NHibernate.Persister.Entity .AbstractEntityPersister.Update(Object ,Object[],Int32[],Boolean,Object[] ,Object,Object,Object ,ISessionImplementor) |
Update(Object,Object[],Int32[],Boolean ,Object[],Object,Object,Object ,ISessionImplementor) | 9 | 1h 18min | 16min | NHibernate.Persister.Entity .IEntityPersister.Update(Object,Object[] ,Int32[],Boolean,Object[],Object,Object ,Object,ISessionImplementor) |
LoadFromResultSet(IDataReader,Int32 ,Object,String,EntityKey,String,LockMode ,ILoadable,ISessionImplementor) | 9 | 1h 18min | 16min | NHibernate.Loader.Loader .LoadFromResultSet(IDataReader,Int32 ,Object,String,EntityKey,String,LockMode ,ILoadable,ISessionImplementor) |
.ctor(String,Boolean,String,Int32,Int32 ,FlushMode,Boolean,String,IDictionary <String,String>) | 9 | 1h 18min | 16min | NHibernate.Engine.NamedQueryDefinition. .ctor(String,Boolean,String,Int32,Int32 ,FlushMode,Boolean,String,IDictionary <String,String>) |
.ctor(String,ForeignKeyDirection,String ,Boolean,Boolean,Boolean,String,String) | 8 | 1h 9min | 9min | NHibernate.Type.OneToOneType..ctor (String,ForeignKeyDirection,String ,Boolean,Boolean,Boolean,String,String) |
OneToOne(String,ForeignKeyDirection ,String,Boolean,Boolean,Boolean,String ,String) | 8 | 1h 9min | 9min | NHibernate.Type.TypeFactory.OneToOne (String,ForeignKeyDirection,String ,Boolean,Boolean,Boolean,String,String) |
.ctor(IDataReader,IDbCommand ,IEventSource,Boolean,IType[],String[][] ,RowSelection,HolderInstantiator) | 8 | 1h 9min | 9min | NHibernate.Impl.EnumerableImpl..ctor (IDataReader,IDbCommand,IEventSource ,Boolean,IType[],String[][],RowSelection ,HolderInstantiator) |
.ctor(String,String[],Type[],LockMode[] ,ISessionImplementor,ICollection<String> ,FlushMode,ParameterMetadata) | 8 | 1h 9min | 9min | NHibernate.Impl.SqlQueryImpl..ctor (String,String[],Type[],LockMode[] ,ISessionImplementor,ICollection<String> ,FlushMode,ParameterMetadata) |
PerformInsert(Object ,IPersistentCollection,IExpectation ,Object,Int32,Boolean,Boolean ,ISessionImplementor) | 8 | 1h 9min | 9min | NHibernate.Persister.Collection .AbstractCollectionPersister .PerformInsert(Object ,IPersistentCollection,IExpectation ,Object,Int32,Boolean,Boolean ,ISessionImplementor) |
GetRowFromResultSet(IDataReader ,ISessionImplementor,QueryParameters ,LockMode[],EntityKey,IList,EntityKey[] ,Boolean) | 8 | 1h 9min | 9min | NHibernate.Loader.Loader .GetRowFromResultSet(IDataReader ,ISessionImplementor,QueryParameters ,LockMode[],EntityKey,IList,EntityKey[] ,Boolean) |
GetRow(IDataReader,ILoadable[] ,EntityKey[],Object,EntityKey,LockMode[] ,IList,ISessionImplementor) | 8 | 1h 9min | 9min | NHibernate.Loader.Loader.GetRow (IDataReader,ILoadable[],EntityKey[] ,Object,EntityKey,LockMode[],IList ,ISessionImplementor) |
WalkEntityAssociationTree (IAssociationType,IOuterJoinLoadable ,Int32,String,String,Boolean,Int32 ,ILhsAssociationTypeSqlInfo) | 8 | 1h 9min | 9min | NHibernate.Loader.JoinWalker .WalkEntityAssociationTree (IAssociationType,IOuterJoinLoadable ,Int32,String,String,Boolean,Int32 ,ILhsAssociationTypeSqlInfo) |
GetJoinType(IAssociationType,FetchMode ,String,String,String[],Boolean,Int32 ,CascadeStyle) | 8 | 1h 9min | 9min | NHibernate.Loader.JoinWalker.GetJoinType (IAssociationType,FetchMode,String ,String,String[],Boolean,Int32 ,CascadeStyle) |
.ctor(IAssociationType,String,String[] ,String,JoinType,SqlString ,ISessionFactoryImplementor,IDictionary <String,IFilter>) | 8 | 1h 9min | 9min | NHibernate.Loader .OuterJoinableAssociation..ctor (IAssociationType,String,String[],String ,JoinType,SqlString ,ISessionFactoryImplementor,IDictionary <String,IFilter>) |
GetJoinType(IAssociationType,FetchMode ,String,String,String[],Boolean,Int32 ,CascadeStyle) | 8 | 1h 9min | 9min | NHibernate.Loader.Criteria .CriteriaJoinWalker.GetJoinType (IAssociationType,FetchMode,String ,String,String[],Boolean,Int32 ,CascadeStyle) |
PostHydrate(IEntityPersister,Object ,Object[],Object,Object,LockMode,Boolean ,ISessionImplementor) | 8 | 1h 9min | 9min | NHibernate.Engine.TwoPhaseLoad .PostHydrate(IEntityPersister,Object ,Object[],Object,Object,LockMode,Boolean ,ISessionImplementor) |
.ctor(Object,Object[],Object,Object ,IEntityPersister,Boolean ,ISessionImplementor) | 7 | 1h 0min | 2min 0s | NHibernate.Action.EntityDeleteAction. .ctor(Object,Object[],Object,Object ,IEntityPersister,Boolean ,ISessionImplementor) |
Replace(Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection) | 7 | 1h 0min | 2min 0s | NHibernate.Type.TypeHelper.Replace (Object[],Object[],IType[] ,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection) |
ReplaceAssociations(Object[],Object[] ,IType[],ISessionImplementor,Object ,IDictionary,ForeignKeyDirection) | 7 | 1h 0min | 2min 0s | NHibernate.Type.TypeHelper .ReplaceAssociations(Object[],Object[] ,IType[],ISessionImplementor,Object ,IDictionary,ForeignKeyDirection) |
Dirty(StandardProperty[],Object[] ,Object[],Boolean[][],Boolean ,ISessionImplementor,Int32) | 7 | 1h 0min | 2min 0s | NHibernate.Type.TypeHelper.Dirty (StandardProperty[],Object[],Object[] ,Boolean[][],Boolean,ISessionImplementor ,Int32) |
.ctor(String,IList<INativeSQLQueryReturn >,ICollection<String>,FlushMode,Boolean ,ISessionImplementor,ParameterMetadata) | 7 | 1h 0min | 2min 0s | NHibernate.Impl.SqlQueryImpl..ctor (String,IList<INativeSQLQueryReturn> ,ICollection<String>,FlushMode,Boolean ,ISessionImplementor,ParameterMetadata) |
Dehydrate(Object,Object[],Boolean[] ,Boolean[][],Int32,IDbCommand ,ISessionImplementor) | 7 | 1h 0min | 2min 0s | NHibernate.Persister.Entity .AbstractEntityPersister.Dehydrate (Object,Object[],Boolean[],Boolean[][] ,Int32,IDbCommand,ISessionImplementor) |
Hydrate(IDataReader,Object,Object ,ILoadable,String[][],Boolean ,ISessionImplementor) | 7 | 1h 0min | 2min 0s | NHibernate.Persister.Entity .AbstractEntityPersister.Hydrate (IDataReader,Object,Object,ILoadable ,String[][],Boolean,ISessionImplementor) |
Insert(Object,Object[],Boolean[],Int32 ,SqlCommandInfo,Object ,ISessionImplementor) | 7 | 1h 0min | 2min 0s | NHibernate.Persister.Entity .AbstractEntityPersister.Insert(Object ,Object[],Boolean[],Int32,SqlCommandInfo ,Object,ISessionImplementor) |
Delete(Object,Object,Int32,Object ,SqlCommandInfo,ISessionImplementor ,Object[]) | 7 | 1h 0min | 2min 0s | NHibernate.Persister.Entity .AbstractEntityPersister.Delete(Object ,Object,Int32,Object,SqlCommandInfo ,ISessionImplementor,Object[]) |
Hydrate(IDataReader,Object,Object ,ILoadable,String[][],Boolean ,ISessionImplementor) | 7 | 1h 0min | 2min 0s | NHibernate.Persister.Entity.ILoadable .Hydrate(IDataReader,Object,Object ,ILoadable,String[][],Boolean ,ISessionImplementor) |
AddJoin(String,String,String,String[] ,String[],JoinType,SqlString) | 7 | 1h 0min | 2min 0s | NHibernate.SqlCommand.QueryJoinFragment .AddJoin(String,String,String,String[] ,String[],JoinType,SqlString) |
BuildSqlCreateIndexString(Dialect,String ,Table,IEnumerable<Column>,Boolean ,String,String) | 7 | 1h 0min | 2min 0s | NHibernate.Mapping.Index .BuildSqlCreateIndexString(Dialect ,String,Table,IEnumerable<Column> ,Boolean,String,String) |
.ctor(MemberInfo,Type,Type ,ICandidatePersistentMembersProvider ,IModelInspector,ICustomizersHolder ,ModelMapper) | 7 | 1h 0min | 2min 0s | NHibernate.Mapping.ByCode .ModelMapper+ComponentRelationMapper. .ctor(MemberInfo,Type,Type ,ICandidatePersistentMembersProvider ,IModelInspector,ICustomizersHolder ,ModelMapper) |
InstanceAlreadyLoaded(IDataReader,Int32 ,IEntityPersister,EntityKey,Object ,LockMode,ISessionImplementor) | 7 | 1h 0min | 2min 0s | NHibernate.Loader.Loader .InstanceAlreadyLoaded(IDataReader,Int32 ,IEntityPersister,EntityKey,Object ,LockMode,ISessionImplementor) |
LoadEntity(ISessionImplementor,Object ,IType,Object,String,Object ,IEntityPersister) | 7 | 1h 0min | 2min 0s | NHibernate.Loader.Loader.LoadEntity (ISessionImplementor,Object,IType,Object ,String,Object,IEntityPersister) |
LoadEntityBatch(ISessionImplementor ,Object[],IType,Object,String,Object ,IEntityPersister) | 7 | 1h 0min | 2min 0s | NHibernate.Loader.Loader.LoadEntityBatch (ISessionImplementor,Object[],IType ,Object,String,Object,IEntityPersister) |
TryGetLimitString(Dialect,SqlString ,Nullable<Int32>,Nullable<Int32> ,Parameter,Parameter,SqlString&) | 7 | 1h 0min | 2min 0s | NHibernate.Loader.Loader .TryGetLimitString(Dialect,SqlString ,Nullable<Int32>,Nullable<Int32> ,Parameter,Parameter,SqlString&) |
InitProjection(SqlString,SqlString ,SqlString,SqlString,SqlString ,IDictionary<String,IFilter>,LockMode) | 7 | 1h 0min | 2min 0s | NHibernate.Loader .AbstractEntityJoinWalker.InitProjection (SqlString,SqlString,SqlString,SqlString ,SqlString,IDictionary<String,IFilter> ,LockMode) |
.ctor(IOuterJoinLoadable,String[],IType ,Int32,LockMode ,ISessionFactoryImplementor,IDictionary <String,IFilter>) | 7 | 1h 0min | 2min 0s | NHibernate.Loader.Entity.EntityLoader. .ctor(IOuterJoinLoadable,String[],IType ,Int32,LockMode ,ISessionFactoryImplementor,IDictionary <String,IFilter>) |
BuildSubCollectionQuery(ISessionFactory ,ICollection<ExpressionHolder> ,Expression,Expression,Expression,Type ,Type) | 7 | 1h 0min | 2min 0s | NHibernate.Linq.NestedSelects .NestedSelectRewriter .BuildSubCollectionQuery(ISessionFactory ,ICollection<ExpressionHolder> ,Expression,Expression,Expression,Type ,Type) |
BuildDatabaseStructure(IType,IDictionary <String,String>,Dialect,Boolean,String ,Int32,Int32) | 7 | 1h 0min | 2min 0s | NHibernate.Id.Enhanced .SequenceStyleGenerator .BuildDatabaseStructure(IType ,IDictionary<String,String>,Dialect ,Boolean,String,Int32,Int32) |
AppendComponentCondition(String,Object ,IAbstractComponentType,ICriteria ,ICriteriaQuery,IDictionary<String ,IFilter>,SqlStringBuilder) | 7 | 1h 0min | 2min 0s | NHibernate.Criterion.Example .AppendComponentCondition(String,Object ,IAbstractComponentType,ICriteria ,ICriteriaQuery,IDictionary<String ,IFilter>,SqlStringBuilder) |
GetColumnNamesForSimpleExpression(String ,IProjection,ICriteriaQuery,ICriteria ,IDictionary<String,IFilter>,ICriterion ,Object) | 7 | 1h 0min | 2min 0s | NHibernate.Criterion.CriterionUtil .GetColumnNamesForSimpleExpression (String,IProjection,ICriteriaQuery ,ICriteria,IDictionary<String,IFilter> ,ICriterion,Object) |
PerformSave(Object,Object ,IEntityPersister,Boolean,Object ,IEventSource,Boolean) | 7 | 1h 0min | 2min 0s | NHibernate.Event.Default .AbstractSaveEventListener.PerformSave (Object,Object,IEntityPersister,Boolean ,Object,IEventSource,Boolean) |
PerformSaveOrReplicate(Object,EntityKey ,IEntityPersister,Boolean,Object ,IEventSource,Boolean) | 7 | 1h 0min | 2min 0s | NHibernate.Event.Default .AbstractSaveEventListener .PerformSaveOrReplicate(Object,EntityKey ,IEntityPersister,Boolean,Object ,IEventSource,Boolean) |
CascadeCollectionElements(Object,Object ,CollectionType,CascadeStyle,IType ,Object,Boolean) | 7 | 1h 0min | 2min 0s | NHibernate.Engine.Cascade .CascadeCollectionElements(Object,Object ,CollectionType,CascadeStyle,IType ,Object,Boolean) |
AddUninitializedCachedEntity(EntityKey ,Object,IEntityPersister,LockMode ,Boolean,Object,ISessionImplementor) | 7 | 1h 0min | 2min 0s | NHibernate.Engine.TwoPhaseLoad .AddUninitializedCachedEntity(EntityKey ,Object,IEntityPersister,LockMode ,Boolean,Object,ISessionImplementor) |
.ctor(Object,String,String,IType,Boolean ,ISessionFactoryImplementor,EntityMode) | 7 | 1h 0min | 2min 0s | NHibernate.Engine.EntityKey..ctor(Object ,String,String,IType,Boolean ,ISessionFactoryImplementor,EntityMode) |
BindComponent(IComponentMapping ,Component,Type,String,String,Boolean ,IDictionary<String,MetaAttribute>) | 7 | 1h 0min | 2min 0s | NHibernate.Cfg.XmlHbmBinding.ClassBinder .BindComponent(IComponentMapping ,Component,Type,String,String,Boolean ,IDictionary<String,MetaAttribute>) |
![]() | Rule Violated: Avoid methods with too many overloads |
• How to Fix Issues of this Rule: Typically the too many overloads phenomenon appears when an algorithm takes a various set of in-parameters. Each overload is presented as a facility to provide a various set of in-parameters. In such situation, the C# and VB.NET language feature named Named and Optional arguments should be used. The too many overloads phenomenon can also be a consequence of the usage of the visitor design pattern http://en.wikipedia.org/wiki/Visitor_pattern since a method named Visit() must be provided for each sub type. For this reason, the default version of this rule doesn't match overloads whose name start with "visit" or "dispatch" (case-unsensitive) to avoid match overload visitors, and you can adapt this rule to your own naming convention. Sometime too many overloads phenomenon is not the symptom of a problem, for example when a numeric to something conversion method applies to all numeric and nullable numeric types. The estimated Debt, which means the effort to fix such issue, is of 3 minutes per method overload.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1005:AvoidMethodsWithTooManyOverloads", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
25 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
25 methods | overloadsPruned | Debt | Severity | Full Name |
---|---|---|---|---|
AddCustomizer(Type,Action<IClassMapper>) | 26 methods | 1h 18min | Medium | NHibernate.Mapping.ByCode.Impl .CustomizersHolder.AddCustomizer(Type ,Action<IClassMapper>) |
InvokeCustomizers(PropertyPath ,IManyToAnyMapper) | 25 methods | 1h 15min | Medium | NHibernate.Mapping.ByCode.Impl .CustomizersHolder.InvokeCustomizers (PropertyPath,IManyToAnyMapper) |
AddCustomizer(Type,Action<IClassMapper>) | 25 methods | 1h 15min | Medium | NHibernate.Mapping.ByCode.Impl .ICustomizersHolder.AddCustomizer(Type ,Action<IClassMapper>) |
InvokeCustomizers(Type,IClassMapper) | 24 methods | 1h 12min | Medium | NHibernate.Mapping.ByCode.Impl .ICustomizersHolder.InvokeCustomizers (Type,IClassMapper) |
JoinQueryOver<U>(Expression<Func <TSubType,U>>) | 20 methods | 1h 0min | Medium | NHibernate.IQueryOver<TRoot,TSubType> .JoinQueryOver<U>(Expression<Func <TSubType,U>>) |
JoinQueryOver<U>(Expression<Func <TSubType,U>>) | 20 methods | 1h 0min | Medium | NHibernate.Criterion.QueryOver<TRoot ,TSubType>.JoinQueryOver<U>(Expression <Func<TSubType,U>>) |
NHibernate.IQueryOver<TRoot,TSubType> .JoinQueryOver<U>(Expression<Func <TSubType,U>>) | 20 methods | 1h 0min | Medium | NHibernate.Criterion.QueryOver<TRoot ,TSubType>.NHibernate.IQueryOver<TRoot ,TSubType>.JoinQueryOver<U>(Expression <Func<TSubType,U>>) |
JoinQueryOver<U>(Expression<Func <TSubType,U>>) | 20 methods | 1h 0min | Medium | NHibernate.Criterion.Lambda .QueryOverJoinBuilder<TRoot,TSubType> .JoinQueryOver<U>(Expression<Func <TSubType,U>>) |
JoinQueryOver<U>(Expression<Func <TSubType,U>>) | 20 methods | 1h 0min | Medium | NHibernate.Criterion.Lambda .IQueryOverJoinBuilder<TRoot,TSubType> .JoinQueryOver<U>(Expression<Func <TSubType,U>>) |
Add(Type,ICriteria) | 14 methods | 42min | Medium | NHibernate.IMultiCriteria.Add(Type ,ICriteria) |
Add(Type,ICriteria) | 14 methods | 42min | Medium | NHibernate.Impl.MultiCriteriaImpl.Add (Type,ICriteria) |
JoinAlias(Expression<Func<TSubType ,Object>>,Expression<Func<Object>>) | 14 methods | 42min | Medium | NHibernate.Criterion.Lambda .QueryOverJoinBuilderBase<TReturn,TRoot ,TSubType>.JoinAlias(Expression<Func <TSubType,Object>>,Expression<Func <Object>>) |
BindSimpleValue(HbmProperty,String ,Boolean) | 13 methods | 39min | Medium | NHibernate.Cfg.XmlHbmBinding .ValuePropertyBinder.BindSimpleValue (HbmProperty,String,Boolean) |
List(String,QueryParameters) | 12 methods | 36min | Medium | NHibernate.Impl.AbstractSessionImpl.List (String,QueryParameters) |
List(String,QueryParameters) | 12 methods | 36min | Medium | NHibernate.Engine.ISessionImplementor .List(String,QueryParameters) |
InfoString(Type,Object) | 10 methods | 30min | Medium | NHibernate.Impl.MessageHelper.InfoString (Type,Object) |
Add(Type,IQuery) | 9 methods | 27min | Medium | NHibernate.IMultiQuery.Add(Type,IQuery) |
Add(Type,IQuery) | 9 methods | 27min | Medium | NHibernate.Impl.MultiQueryImpl.Add(Type ,IQuery) |
.ctor() | 8 methods | 27min | Medium | NHibernate.Engine.QueryParameters..ctor( ) |
JoinAlias(Expression<Func<TSubType ,Object>>,Expression<Func<Object>>) | 8 methods | 24min | Medium | NHibernate.IQueryOver<TRoot,TSubType> .JoinAlias(Expression<Func<TSubType ,Object>>,Expression<Func<Object>>) |
JoinAlias(Expression<Func<TSubType ,Object>>,Expression<Func<Object>>) | 8 methods | 24min | Medium | NHibernate.Criterion.QueryOver<TRoot ,TSubType>.JoinAlias(Expression<Func <TSubType,Object>>,Expression<Func <Object>>) |
AddAction(EntityInsertAction) | 8 methods | 24min | Medium | NHibernate.Engine.ActionQueue.AddAction (EntityInsertAction) |
Load(Type,Object,LockMode) | 7 methods | 21min | Medium | NHibernate.ISession.Load(Type,Object ,LockMode) |
Load(Object,Object) | 7 methods | 21min | Medium | NHibernate.Impl.SessionImpl.Load(Object ,Object) |
Add(HbmMapping) | 7 methods | 21min | Medium | NHibernate.Cfg.MappingSchema .MappingDocumentAggregator.Add (HbmMapping) |
![]() | Rule Violated: Avoid methods potentially poorly commented |
• How to Fix Issues of this Rule: Typically add more comment. But code commenting is subject to controversy. While poorly written and designed code would needs a lot of comment to be understood, clean code doesn't need that much comment, especially if variables and methods are properly named and convey enough information. Unit-Test code can also play the role of code commenting. However, even when writing clean and well-tested code, one will have to write hacks at a point, usually to circumvent some API limitations or bugs. A hack is a non-trivial piece of code, that doesn't make sense at first glance, and that took time and web research to be found. In such situation comments must absolutely be used to express the intention, the need for the hacks and the source where the solution has been found. The estimated Debt, which means the effort to comment such method, varies linearly from 2 minutes for 10 lines of code not commented, up to 20 minutes for 200 or more, lines of code not commented.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1006:AvoidMethodsPotentiallyPoorlyCommented", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
175 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 175 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
175 methods | Percentage Comment | # lines of code (LOC) | # lines of comment | nbLinesOfCodeNotCommented | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
VeryDirtyMethod()![]() | 0 | 56 | 0 | 56 | 5min | 16min | NHibernate.Action.EntityAction .VeryDirtyMethod() |
ExpandParameters(IDictionary<String ,TypedValue>)![]() | 6.98 | 40 | 3 | 37 | 3min 42s | 11min | NHibernate.Impl.ExpressionQueryImpl .ExpandParameters(IDictionary<String ,TypedValue>) |
OnDelete(DeleteEvent,ISet<Object>)![]() | 3.12 | 31 | 1 | 30 | 3min 0s | 13min | NHibernate.Event.Default .DefaultDeleteEventListener.OnDelete (DeleteEvent,ISet<Object>) |
Execute(Action<String>,Boolean,Boolean ,TextWriter)![]() | 3.23 | 30 | 1 | 29 | 2min 54s | 13min | NHibernate.Tool.hbm2ddl.SchemaExport .Execute(Action<String>,Boolean,Boolean ,TextWriter) |
EnlistInDistributedTransactionIfNeeded (ISessionImplementor)![]() | 0 | 23 | 0 | 23 | 2min 18s | 16min | NHibernate.Transaction .AdoNetWithDistributedTransactionFactory .EnlistInDistributedTransactionIfNeeded (ISessionImplementor) |
GetColumnsToTableAliasMap(String)![]() | 0 | 22 | 0 | 22 | 2min 12s | 16min | NHibernate.Persister.Entity .AbstractEntityPersister .GetColumnsToTableAliasMap(String) |
VisitAdditionalFromClause (AdditionalFromClause,QueryModel,Int32)![]() | 0 | 22 | 0 | 22 | 2min 12s | 16min | NHibernate.Linq.Visitors .LeftJoinRewriter .VisitAdditionalFromClause (AdditionalFromClause,QueryModel,Int32) |
GetDeletes(ICollectionPersister,Boolean)![]() | 4.35 | 22 | 1 | 21 | 2min 6s | 12min | NHibernate.Collection.Generic .PersistentGenericBag<T>.GetDeletes (ICollectionPersister,Boolean) |
SecondPassCompileForeignKeys(Table,ISet <ForeignKey>)![]() | 0 | 21 | 0 | 21 | 2min 6s | 16min | NHibernate.Cfg.Configuration .SecondPassCompileForeignKeys(Table,ISet <ForeignKey>) |
System.Collections.Generic.IEnumerable <NHibernate.SqlCommand.SqlString> .GetEnumerator() | 2.27 | 86 | 2 | 84 | 8min | 14min | NHibernate.Dialect .Dialect+QuotedAndParenthesisStringToken izer.System.Collections.Generic .IEnumerable<NHibernate.SqlCommand .SqlString>.GetEnumerator() |
VisitBinaryExpression(BinaryExpression) | 6.82 | 82 | 6 | 76 | 7min | 11min | NHibernate.Linq.Visitors .WhereJoinDetector.VisitBinaryExpression (BinaryExpression) |
Create(IToken) | 1.28 | 77 | 1 | 76 | 7min | 15min | NHibernate.Hql.Ast.ANTLR.Tree .HqlSqlWalkerTreeAdaptor.Create(IToken) |
Bind(IEnumerable<IEntityPropertyMapping> ,Table,IDictionary<String,MetaAttribute> ,Action<Property>,Action<Property>) | 3.66 | 79 | 3 | 76 | 7min | 13min | NHibernate.Cfg.XmlHbmBinding .PropertiesBinder.Bind(IEnumerable <IEntityPropertyMapping>,Table ,IDictionary<String,MetaAttribute> ,Action<Property>,Action<Property>) |
SetListeners(ListenerType,Object[]) | 0 | 73 | 0 | 73 | 7min | 16min | NHibernate.Cfg.Configuration .SetListeners(ListenerType,Object[]) |
ClearListeners(ListenerType) | 0 | 71 | 0 | 71 | 7min | 16min | NHibernate.Cfg.Configuration .ClearListeners(ListenerType) |
AppendListeners(ListenerType,Object[]) | 0 | 71 | 0 | 71 | 7min | 16min | NHibernate.Cfg.Configuration .AppendListeners(ListenerType,Object[]) |
RegisterFunctions() | 6.33 | 74 | 5 | 69 | 6min | 11min | NHibernate.Dialect.Oracle8iDialect .RegisterFunctions() |
DoList() | 2.9 | 67 | 2 | 65 | 6min | 13min | NHibernate.Impl.MultiQueryImpl.DoList() |
RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry) | 4.55 | 63 | 3 | 60 | 6min | 12min | NHibernate.SqlCommand.Template .RenderWhereStringTemplate(String,String ,Dialect,SQLFunctionRegistry) |
MapRootClass(Type,HbmMapping) | 0 | 60 | 0 | 60 | 6min | 16min | NHibernate.Mapping.ByCode.ModelMapper .MapRootClass(Type,HbmMapping) |
SqlCreateString(Dialect,IMapping,String ,String) | 6.06 | 62 | 4 | 58 | 5min | 11min | NHibernate.Mapping.Table.SqlCreateString (Dialect,IMapping,String,String) |
GetEnumerator() | 4.84 | 59 | 3 | 56 | 5min | 12min | NHibernate.SqlCommand.Parser .SqlTokenizer.GetEnumerator() |
GenerateCustomReturns(Boolean) | 0 | 55 | 0 | 55 | 5min | 16min | NHibernate.Loader.Custom.Sql .SQLQueryReturnProcessor .GenerateCustomReturns(Boolean) |
RegisterFunctions() | 3.39 | 57 | 2 | 55 | 5min | 13min | NHibernate.Dialect.MsSql2000Dialect .RegisterFunctions() |
Parse(String,ParameterParser+IRecognizer ) | 9.52 | 57 | 6 | 51 | 5min | 9min | NHibernate.Engine.Query.ParameterParser .Parse(String ,ParameterParser+IRecognizer) |
DoConfigure(ISessionFactoryConfiguration ) | 8.2 | 56 | 5 | 51 | 5min | 10min | NHibernate.Cfg.Configuration.DoConfigure (ISessionFactoryConfiguration) |
RegisterFunctions() | 0 | 50 | 0 | 50 | 5min | 16min | NHibernate.Dialect.MySQLDialect .RegisterFunctions() |
GenerateSchemaCreationScript(Dialect) | 0 | 49 | 0 | 49 | 4min 54s | 16min | NHibernate.Cfg.Configuration .GenerateSchemaCreationScript(Dialect) |
GenerateSchemaUpdateScript(Dialect ,DatabaseMetadata) | 0 | 49 | 0 | 49 | 4min 54s | 16min | NHibernate.Cfg.Configuration .GenerateSchemaUpdateScript(Dialect ,DatabaseMetadata) |
GetResultsFromDatabase(IList) | 2 | 49 | 1 | 48 | 4min 48s | 14min | NHibernate.Impl.MultiCriteriaImpl .GetResultsFromDatabase(IList) |
ExpandDynamicFilterParameters(SqlString ,ICollection<IParameterSpecification> ,ISessionImplementor) | 3.85 | 50 | 2 | 48 | 4min 48s | 13min | NHibernate.Loader.Loader .ExpandDynamicFilterParameters(SqlString ,ICollection<IParameterSpecification> ,ISessionImplementor) |
ExpandDynamicFilterParameters(SqlString ,ICollection<IParameterSpecification> ,ISessionImplementor) | 3.85 | 50 | 2 | 48 | 4min 48s | 13min | NHibernate.Engine.Query .NativeSQLQueryPlan .ExpandDynamicFilterParameters(SqlString ,ICollection<IParameterSpecification> ,ISessionImplementor) |
RegisterStringFunctions() | 2 | 49 | 1 | 48 | 4min 48s | 14min | NHibernate.Dialect .SybaseSQLAnywhere10Dialect .RegisterStringFunctions() |
BindMapSecondPass(HbmMap,Map,IDictionary <String,PersistentClass>,IDictionary <String,MetaAttribute>) | 0 | 46 | 0 | 46 | 4min 36s | 16min | NHibernate.Cfg.XmlHbmBinding .CollectionBinder.BindMapSecondPass (HbmMap,Map,IDictionary<String ,PersistentClass>,IDictionary<String ,MetaAttribute>) |
ToSqlString() | 9.26 | 49 | 5 | 44 | 4min 24s | 9min | NHibernate.SqlCommand.SqlUpdateBuilder .ToSqlString() |
GenerateDropSchemaScript(Dialect) | 2.17 | 45 | 1 | 44 | 4min 24s | 14min | NHibernate.Cfg.Configuration .GenerateDropSchemaScript(Dialect) |
Execute(Action<String>,Boolean) | 0 | 42 | 0 | 42 | 4min 12s | 16min | NHibernate.Tool.hbm2ddl.SchemaUpdate .Execute(Action<String>,Boolean) |
ParseColumnDefinitions(IEnumerator <SqlToken>) | 0 | 41 | 0 | 41 | 4min 6s | 16min | NHibernate.SqlCommand.Parser .MsSqlSelectParser .ParseColumnDefinitions(IEnumerator <SqlToken>) |
Perform() | 0 | 41 | 0 | 41 | 4min 6s | 16min | NHibernate.AdoNet.Util .BasicFormatter+FormatProcess.Perform() |
RenderOrderByStringTemplate(String ,Dialect,SQLFunctionRegistry) | 2.38 | 41 | 1 | 40 | 4min 0s | 14min | NHibernate.SqlCommand.Template .RenderOrderByStringTemplate(String ,Dialect,SQLFunctionRegistry) |
BindCollectionSecondPass (ICollectionPropertiesMapping,Collection ,IDictionary<String,PersistentClass> ,IDictionary<String,MetaAttribute>) | 8.51 | 43 | 4 | 39 | 3min 54s | 10min | NHibernate.Cfg.XmlHbmBinding .CollectionBinder .BindCollectionSecondPass (ICollectionPropertiesMapping,Collection ,IDictionary<String,PersistentClass> ,IDictionary<String,MetaAttribute>) |
DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection ,IDbTransaction) | 0 | 38 | 0 | 38 | 3min 48s | 16min | NHibernate.Id.Enhanced.TableGenerator .DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection ,IDbTransaction) |
Execute(QueryParameters ,ISessionImplementor) | 4.76 | 40 | 2 | 38 | 3min 48s | 12min | NHibernate.Hql.Ast.ANTLR.Exec .MultiTableUpdateExecutor.Execute (QueryParameters,ISessionImplementor) |
DeleteRows(IPersistentCollection,Object ,ISessionImplementor) | 4.88 | 39 | 2 | 37 | 3min 42s | 12min | NHibernate.Persister.Collection .AbstractCollectionPersister.DeleteRows (IPersistentCollection,Object ,ISessionImplementor) |
DoUpdateRows(Object ,IPersistentCollection ,ISessionImplementor) | 4.88 | 39 | 2 | 37 | 3min 42s | 12min | NHibernate.Persister.Collection .BasicCollectionPersister.DoUpdateRows (Object,IPersistentCollection ,ISessionImplementor) |
RegisterMiscellaneousFunctions() | 0 | 37 | 0 | 37 | 3min 42s | 16min | NHibernate.Dialect .SybaseSQLAnywhere10Dialect .RegisterMiscellaneousFunctions() |
SecondPassCompile() | 2.56 | 38 | 1 | 37 | 3min 42s | 14min | NHibernate.Cfg.Configuration .SecondPassCompile() |
GetNaturalIdentifierSnapshot(Object ,ISessionImplementor) | 9.09 | 40 | 4 | 36 | 3min 36s | 9min | NHibernate.Persister.Entity .AbstractEntityPersister .GetNaturalIdentifierSnapshot(Object ,ISessionImplementor) |
ListenerTypeConvertFrom(String) | 0 | 36 | 0 | 36 | 3min 36s | 16min | NHibernate.Cfg.ConfigurationSchema .CfgXmlHelper.ListenerTypeConvertFrom (String) |
ListenerTypeConvertToString(ListenerType ) | 0 | 36 | 0 | 36 | 3min 36s | 16min | NHibernate.Cfg.ConfigurationSchema .CfgXmlHelper .ListenerTypeConvertToString (ListenerType) |
PostInstantiate() | 7.32 | 38 | 3 | 35 | 3min 30s | 10min | NHibernate.Persister.Entity .AbstractEntityPersister.PostInstantiate () |
Clear() | 0 | 34 | 0 | 34 | 3min 24s | 16min | NHibernate.Stat.StatisticsImpl.Clear() |
RegisterDefaultNetTypes() | 7.5 | 37 | 3 | 34 | 3min 24s | 10min | NHibernate.Type.TypeFactory .RegisterDefaultNetTypes() |
ParseOrderDefinitions(IEnumerator <SqlToken>) | 0 | 34 | 0 | 34 | 3min 24s | 16min | NHibernate.SqlCommand.Parser .MsSqlSelectParser.ParseOrderDefinitions (IEnumerator<SqlToken>) |
AppendDefaultEvents() | 0 | 34 | 0 | 34 | 3min 24s | 16min | NHibernate.Mapping.ByCode .ConventionModelMapper .AppendDefaultEvents() |
InitPersisters(IList <OuterJoinableAssociation>,LockMode) | 2.78 | 35 | 1 | 34 | 3min 24s | 14min | NHibernate.Loader.JoinWalker .InitPersisters(IList <OuterJoinableAssociation>,LockMode) |
InitializeListeners(Configuration) | 0 | 34 | 0 | 34 | 3min 24s | 16min | NHibernate.Event.EventListeners .InitializeListeners(Configuration) |
PerformList(QueryParameters ,ISessionImplementor,IList) | 5.26 | 36 | 2 | 34 | 3min 24s | 12min | NHibernate.Engine.Query.HQLQueryPlan .PerformList(QueryParameters ,ISessionImplementor,IList) |
HeuristicType(String,IDictionary<String ,String>,Nullable<Int32>) | 2.86 | 34 | 1 | 33 | 3min 18s | 14min | NHibernate.Type.TypeFactory .HeuristicType(String,IDictionary<String ,String>,Nullable<Int32>) |
Merge(IModelExplicitDeclarationsHolder ,IModelExplicitDeclarationsHolder) | 0 | 33 | 0 | 33 | 3min 18s | 16min | NHibernate.Mapping.ByCode .ModelExplicitDeclarationsHolderExtensio ns.Merge (IModelExplicitDeclarationsHolder ,IModelExplicitDeclarationsHolder) |
SetConstantValue(DotNode,String,Object) | 2.86 | 34 | 1 | 33 | 3min 18s | 14min | NHibernate.Hql.Ast.ANTLR.Util .LiteralProcessor.SetConstantValue (DotNode,String,Object) |
ComputeHashCode() | 0 | 33 | 0 | 33 | 3min 18s | 16min | NHibernate.Cache.QueryKey .ComputeHashCode() |
TryParseUntilFirstMsSqlSelectColumn (IEnumerator<SqlToken>,SqlToken& ,Boolean&) | 5.56 | 34 | 2 | 32 | 3min 12s | 12min | NHibernate.SqlCommand.Parser .SqlTokenizerExtensions .TryParseUntilFirstMsSqlSelectColumn (IEnumerator<SqlToken>,SqlToken& ,Boolean&) |
MapProperties(Type,IEnumerable <MemberInfo>,IPropertyContainerMapper ,PropertyPath) | 0 | 32 | 0 | 32 | 3min 12s | 16min | NHibernate.Mapping.ByCode.ModelMapper .MapProperties(Type,IEnumerable <MemberInfo>,IPropertyContainerMapper ,PropertyPath) |
GenerateSubquery(PersistentClass ,IMapping) | 5.71 | 33 | 2 | 31 | 3min 6s | 12min | NHibernate.Persister.Entity .UnionSubclassEntityPersister .GenerateSubquery(PersistentClass ,IMapping) |
ToQuerySqlString() | 0 | 31 | 0 | 31 | 3min 6s | 16min | NHibernate.SqlCommand.QuerySelect .ToQuerySqlString() |
MapSubclass(Type,HbmMapping) | 0 | 31 | 0 | 31 | 3min 6s | 16min | NHibernate.Mapping.ByCode.ModelMapper .MapSubclass(Type,HbmMapping) |
GetMemberFromReflectedType(MemberInfo ,Type) | 0 | 31 | 0 | 31 | 3min 6s | 16min | NHibernate.Mapping.ByCode.TypeExtensions .GetMemberFromReflectedType(MemberInfo ,Type) |
Execute() | 3.12 | 31 | 1 | 30 | 3min 0s | 13min | NHibernate.Action.CollectionUpdateAction .Execute() |
Execute() | 5.88 | 32 | 2 | 30 | 3min 0s | 11min | NHibernate.Action.EntityInsertAction .Execute() |
FindMemberExpression(Expression) | 3.12 | 31 | 1 | 30 | 3min 0s | 13min | NHibernate.Impl.ExpressionProcessor .FindMemberExpression(Expression) |
ListUsingQueryCache() | 0 | 30 | 0 | 30 | 3min 0s | 16min | NHibernate.Impl.MultiCriteriaImpl .ListUsingQueryCache() |
MapSplitProperties(Type,IEnumerable <MemberInfo>,IJoinMapper) | 0 | 30 | 0 | 30 | 3min 0s | 16min | NHibernate.Mapping.ByCode.ModelMapper .MapSplitProperties(Type,IEnumerable <MemberInfo>,IJoinMapper) |
MapProperties(Type,PropertyPath ,IComponentElementMapper,IEnumerable <MemberInfo>) | 8.33 | 33 | 3 | 30 | 3min 0s | 10min | NHibernate.Mapping.ByCode .ModelMapper+ComponentRelationMapper .MapProperties(Type,PropertyPath ,IComponentElementMapper,IEnumerable <MemberInfo>) |
ReWrite(QueryModel,ISessionFactory) | 0 | 30 | 0 | 30 | 3min 0s | 16min | NHibernate.Linq.NestedSelects .NestedSelectRewriter.ReWrite(QueryModel ,ISessionFactory) |
DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection ,IDbTransaction) | 8.33 | 33 | 3 | 30 | 3min 0s | 10min | NHibernate.Id.TableGenerator .DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection ,IDbTransaction) |
RegisterDateFunctions() | 3.12 | 31 | 1 | 30 | 3min 0s | 13min | NHibernate.Dialect .SybaseSQLAnywhere10Dialect .RegisterDateFunctions() |
Equals(Object) | 0 | 30 | 0 | 30 | 3min 0s | 16min | NHibernate.Cache.QueryKey.Equals(Object) |
Get(QueryKey,ICacheAssembler[],Boolean ,ISet<String>,ISessionImplementor) | 8.33 | 33 | 3 | 30 | 3min 0s | 10min | NHibernate.Cache.StandardQueryCache.Get (QueryKey,ICacheAssembler[],Boolean,ISet <String>,ISessionImplementor) |
LogSummary() | 0 | 29 | 0 | 29 | 2min 54s | 16min | NHibernate.Stat.StatisticsImpl .LogSummary() |
Clone() | 0 | 29 | 0 | 29 | 2min 54s | 16min | NHibernate.Impl.CriteriaImpl.Clone() |
DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection ,IDbTransaction) | 0 | 29 | 0 | 29 | 2min 54s | 16min | NHibernate.Id.Enhanced.TableStructure .DoWorkInCurrentTransaction (ISessionImplementor,IDbConnection ,IDbTransaction) |
Clear() | 0 | 29 | 0 | 29 | 2min 54s | 16min | NHibernate.Engine .StatefulPersistenceContext.Clear() |
Bind(HbmClass,IDictionary<String ,MetaAttribute>) | 8.57 | 32 | 3 | 29 | 2min 54s | 10min | NHibernate.Cfg.XmlHbmBinding .RootClassBinder.Bind(HbmClass ,IDictionary<String,MetaAttribute>) |
Close() | 0 | 28 | 0 | 28 | 2min 48s | 16min | NHibernate.Impl.SessionFactoryImpl.Close () |
Create(Type,Collection ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor ,Configuration) | 0 | 28 | 0 | 28 | 2min 48s | 16min | NHibernate.Persister.PersisterFactory .Create(Type,Collection ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor ,Configuration) |
ToColumns(String,String) | 0 | 28 | 0 | 28 | 2min 48s | 16min | NHibernate.Persister.Collection .CollectionPropertyMapping.ToColumns (String,String) |
GetSubSelectWithLimits(SqlString ,ICollection<IParameterSpecification> ,RowSelection,IDictionary<String ,TypedValue>) | 3.33 | 29 | 1 | 28 | 2min 48s | 13min | NHibernate.Loader.Collection .CollectionLoader.GetSubSelectWithLimits (SqlString,ICollection <IParameterSpecification>,RowSelection ,IDictionary<String,TypedValue>) |
FlattenSubQuery(SubQueryExpression ,QueryModel) | 8.82 | 31 | 3 | 28 | 2min 48s | 9min | NHibernate.Linq.GroupBy.PagingRewriter .FlattenSubQuery(SubQueryExpression ,QueryModel) |
List(ISessionImplementor,QueryParameters ) | 8.82 | 31 | 3 | 28 | 2min 48s | 9min | NHibernate.Hql.Ast.ANTLR .QueryTranslatorImpl.List (ISessionImplementor,QueryParameters) |
RegisterKeywords() | 3.33 | 29 | 1 | 28 | 2min 48s | 13min | NHibernate.Dialect.MsSql2000Dialect .RegisterKeywords() |
Qualify(String,String,String) | 0 | 28 | 0 | 28 | 2min 48s | 16min | NHibernate.Dialect.SQLiteDialect.Qualify (String,String,String) |
AddToBatch(IExpectation) | 8.82 | 31 | 3 | 28 | 2min 48s | 9min | NHibernate.AdoNet .OracleDataClientBatchingBatcher .AddToBatch(IExpectation) |
RegisterBuiltInTypes() | 0 | 27 | 0 | 27 | 2min 42s | 16min | NHibernate.Type.TypeFactory .RegisterBuiltInTypes() |
ListUsingQueryCache() | 0 | 27 | 0 | 27 | 2min 42s | 16min | NHibernate.Impl.MultiQueryImpl .ListUsingQueryCache() |
ReadNext() | 3.45 | 28 | 1 | 27 | 2min 42s | 13min | NHibernate.Tool.hbm2ddl .SeparatorLineReader.ReadNext() |
Merge(CustomizersHolder) | 0 | 27 | 0 | 27 | 2min 42s | 16min | NHibernate.Mapping.ByCode.Impl .CustomizersHolder.Merge (CustomizersHolder) |
Configure(IType,IDictionary<String ,String>,Dialect) | 3.45 | 28 | 1 | 27 | 2min 42s | 13min | NHibernate.Id.TableGenerator.Configure (IType,IDictionary<String,String> ,Dialect) |
ExtractMutationTexts(IASTNode,Int32) | 0 | 27 | 0 | 27 | 2min 42s | 16min | NHibernate.Hql.Ast.ANTLR.Tree .AbstractNullnessCheckNode .ExtractMutationTexts(IASTNode,Int32) |
FlushCollections(IEventSource) | 3.45 | 28 | 1 | 27 | 2min 42s | 13min | NHibernate.Event.Default .AbstractFlushingEventListener .FlushCollections(IEventSource) |
![]() | Rule Violated: Avoid types with poor cohesion |
• How to Fix Issues of this Rule: To refactor a poorly cohesive type and increase code quality and maintainability, certainly you'll have to split the type into several smaller and more cohesive types that together, implement the same logic. The estimated Debt, which means the effort to fix such issue, varies linearly from 5 minutes for a type with a low poorCohesionScore, up to 4 hours for a type with high poorCohesionScore.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1007:AvoidTypesWithPoorCohesion", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
53 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
53 types | Lack of Cohesion Of Methods (LCOM) | # Methods | # Fields | poorCohesionScore | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
QueryLoader![]() | 0.91 | 31 | 20 | 9.97 | 30min | 10min | NHibernate.Loader.Hql.QueryLoader |
SelectClause![]() | 0.88 | 25 | 11 | 7.96 | 20min | 7min | NHibernate.Hql.Ast.ANTLR.Tree .SelectClause |
AbstractEntityPersister | 0.99 | 324 | 88 | 44.18 | 3h 29min | 1h 9min | NHibernate.Persister.Entity .AbstractEntityPersister |
Dialect | 0.98 | 153 | 12 | 33.77 | 2h 35min | 51min | NHibernate.Dialect.Dialect |
Collection | 0.98 | 124 | 51 | 33.29 | 2h 32min | 51min | NHibernate.Mapping.Collection |
AbstractCollectionPersister | 0.98 | 154 | 90 | 30.33 | 2h 17min | 45min | NHibernate.Persister.Collection .AbstractCollectionPersister |
PersistentClass | 0.97 | 147 | 41 | 28.52 | 2h 7min | 42min | NHibernate.Mapping.PersistentClass |
EntityMetamodel | 0.97 | 66 | 52 | 22.67 | 1h 37min | 32min | NHibernate.Tuple.Entity.EntityMetamodel |
FakeModelExplicitDeclarationsHolder | 0.96 | 57 | 27 | 22.18 | 1h 34min | 31min | NHibernate.Mapping.ByCode .FakeModelExplicitDeclarationsHolder |
AbstractQueryImpl | 0.96 | 120 | 24 | 20.45 | 1h 25min | 28min | NHibernate.Impl.AbstractQueryImpl |
SingleTableEntityPersister | 0.96 | 59 | 39 | 19.88 | 1h 22min | 27min | NHibernate.Persister.Entity .SingleTableEntityPersister |
SessionImpl | 0.96 | 181 | 24 | 19.1 | 1h 18min | 26min | NHibernate.Impl.SessionImpl |
RootClass | 0.96 | 54 | 20 | 18.67 | 1h 16min | 25min | NHibernate.Mapping.RootClass |
FromElement | 0.95 | 84 | 25 | 17.36 | 1h 9min | 23min | NHibernate.Hql.Ast.ANTLR.Tree .FromElement |
SimpleModelInspector | 0.95 | 129 | 27 | 17.17 | 1h 8min | 23min | NHibernate.Mapping.ByCode .SimpleModelInspector |
SessionFactoryImpl | 0.95 | 72 | 33 | 17.13 | 1h 8min | 23min | NHibernate.Impl.SessionFactoryImpl |
JoinWalker | 0.95 | 62 | 17 | 17.13 | 1h 8min | 23min | NHibernate.Loader.JoinWalker |
CriteriaImpl | 0.95 | 69 | 26 | 16.62 | 1h 5min | 22min | NHibernate.Impl.CriteriaImpl |
Configuration | 0.95 | 126 | 35 | 15.94 | 1h 2min | 20min | NHibernate.Cfg.Configuration |
EventListeners | 0.95 | 75 | 36 | 15.89 | 1h 1min | 20min | NHibernate.Event.EventListeners |
Mappings | 0.95 | 63 | 30 | 15.8 | 1h 1min | 20min | NHibernate.Cfg.Mappings |
ExplicitDeclarationsHolder | 0.95 | 56 | 27 | 15.73 | 1h 1min | 20min | NHibernate.Mapping.ByCode.Impl .ExplicitDeclarationsHolder |
JoinedSubclassEntityPersister | 0.94 | 42 | 24 | 15.25 | 58min | 19min | NHibernate.Persister.Entity .JoinedSubclassEntityPersister |
AbstractExplicitlyDeclaredModel | 0.94 | 72 | 31 | 14.89 | 56min | 19min | NHibernate.Mapping.ByCode .AbstractExplicitlyDeclaredModel |
Table | 0.94 | 72 | 20 | 14.53 | 54min | 18min | NHibernate.Mapping.Table |
Join | 0.93 | 35 | 19 | 12.86 | 46min | 15min | NHibernate.Mapping.Join |
StatisticsImpl | 0.93 | 74 | 50 | 12.71 | 45min | 15min | NHibernate.Stat.StatisticsImpl |
AbstractDetachedQuery | 0.93 | 66 | 17 | 12.14 | 42min | 14min | NHibernate.Impl.AbstractDetachedQuery |
Property | 0.93 | 50 | 16 | 11.96 | 41min | 14min | NHibernate.Mapping.Property |
MultiQueryImpl | 0.92 | 66 | 19 | 11.66 | 39min | 13min | NHibernate.Impl.MultiQueryImpl |
CustomizersHolder | 0.92 | 55 | 25 | 11.29 | 37min | 12min | NHibernate.Mapping.ByCode.Impl .CustomizersHolder |
Component | 0.92 | 42 | 13 | 11.21 | 37min | 12min | NHibernate.Mapping.Component |
StatefulPersistenceContext | 0.92 | 96 | 25 | 11.13 | 37min | 12min | NHibernate.Engine .StatefulPersistenceContext |
CriteriaQueryTranslator | 0.92 | 58 | 21 | 10.94 | 36min | 12min | NHibernate.Loader.Criteria .CriteriaQueryTranslator |
Column | 0.91 | 53 | 18 | 10.33 | 32min | 11min | NHibernate.Mapping.Column |
SimpleValue | 0.91 | 45 | 11 | 9.91 | 30min | 10min | NHibernate.Mapping.SimpleValue |
AbstractPersistentCollection | 0.9 | 75 | 13 | 9.05 | 26min | 9min | NHibernate.Collection .AbstractPersistentCollection |
AbstractBatcher | 0.9 | 40 | 15 | 8.71 | 24min | 8min | NHibernate.AdoNet.AbstractBatcher |
TableGenerator | 0.89 | 39 | 33 | 8.68 | 24min | 8min | NHibernate.Id.Enhanced.TableGenerator |
CustomLoader | 0.89 | 24 | 14 | 8.54 | 23min | 8min | NHibernate.Loader.Custom.CustomLoader |
SqlSelectBuilder | 0.88 | 18 | 11 | 7.56 | 18min | 6min | NHibernate.SqlCommand.SqlSelectBuilder |
FromClause | 0.88 | 33 | 11 | 7.43 | 17min | 6min | NHibernate.Hql.Ast.ANTLR.Tree.FromClause |
DotNode | 0.87 | 35 | 18 | 7.22 | 16min | 5min | NHibernate.Hql.Ast.ANTLR.Tree.DotNode |
MultiCriteriaImpl | 0.87 | 32 | 17 | 7.1 | 15min | 5min | NHibernate.Impl.MultiCriteriaImpl |
AbstractEntityTuplizer | 0.87 | 38 | 11 | 7.09 | 15min | 5min | NHibernate.Tuple.Entity .AbstractEntityTuplizer |
EntityEntry | 0.87 | 29 | 15 | 7.09 | 15min | 5min | NHibernate.Engine.EntityEntry |
CollectionEntry | 0.87 | 37 | 13 | 7 | 15min | 5min | NHibernate.Engine.CollectionEntry |
QueryTranslatorImpl | 0.86 | 30 | 12 | 6.69 | 13min | 4min 56s | NHibernate.Hql.Ast.ANTLR .QueryTranslatorImpl |
OuterJoinLoader | 0.86 | 14 | 11 | 6.54 | 13min | 4min 40s | NHibernate.Loader.OuterJoinLoader |
ModelMapper | 0.85 | 168 | 43 | 6.17 | 11min | 4min 1s | NHibernate.Mapping.ByCode.ModelMapper |
IntermediateHqlTree | 0.84 | 24 | 12 | 5.99 | 10min | 3min 42s | NHibernate.Linq.IntermediateHqlTree |
SqlClientSqlCommandSet | 0.84 | 12 | 11 | 5.94 | 9min | 3min 37s | NHibernate.AdoNet.SqlClientSqlCommandSet |
SQLQueryReturnProcessor | 0.83 | 18 | 13 | 5.52 | 7min | 2min 53s | NHibernate.Loader.Custom.Sql .SQLQueryReturnProcessor |
Code Smells Regression 090 |
![]() | Rule Violated: From now, all types added should respect basic quality principles |
• How to Fix Issues of this Rule: To refactor such type and increase code quality and maintainability, certainly you'll have to split the type into several smaller types that together, implement the same logic. Issues of this rule have a constant 10 minutes Debt, because the Debt, which means the effort to fix such issue, is already estimated for issues of rules in the category Code Smells. However issues of this rule have a High severity, with even more interests for issues on new types since baseline, because the proper time to increase the quality of these types is now, before they get commited in the next production release.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1100:FromNowAllTypesAddedShouldRespectBasicQualityPrinciples", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
1 type matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 type | # lines of code (LOC) | instanceMethods | staticMethods | instanceFields | staticFields | TypesUsed | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|---|---|
QueryLoader | 163 | 14 methods | no method | 20 fields | no field | 63 types | 10min | 1h 0min | NHibernate.Loader.Hql.QueryLoader |
![]() | Rule Violated: From now, all types added should be 100% covered by tests |
• How to Fix Issues of this Rule: Write more unit-tests dedicated to cover code not covered yet. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring. You'll find code impossible to cover by unit-tests, like calls to MessageBox.Show(). An infrastructure must be defined to be able to mock such code at test-time. Issues of this rule have a constant 10 minutes Debt, because the Debt, which means the effort to write tests for the culprit type, is already estimated for issues in the category Code Coverage. However issues of this rule have a High severity, with even more interests for issues on new types since baseline, because the proper time to write tests for these types is now, before they get commited in the next production release.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1101:FromNowAllTypesAddedShouldBe100PercentCoveredByTests", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
66 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
66 types | Percentage Coverage | methodsCulprit | # lines of code (LOC) | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
EnumeratorAdapter<T> | 0% | 5 methods | 9 | 10min | 1h 0min | NHibernate.Util.EnumeratorAdapter<T> |
JoinedEnumerable+JoinedEnumerator | 77.42% | 2 methods | 31 | 10min | 1h 0min | NHibernate.Util .JoinedEnumerable+JoinedEnumerator |
ObjectHelpers | 85.71% | 1 method | 7 | 10min | 1h 0min | NHibernate.Util.ObjectHelpers |
TypeExtensions | 70% | 3 methods | 10 | 10min | 1h 0min | NHibernate.Util.TypeExtensions |
CacheableResultTransformer | 73.17% | 7 methods | 82 | 10min | 1h 0min | NHibernate.Transform .CacheableResultTransformer |
AliasedTupleSubsetResultTransformer | 0% | 1 method | 11 | 10min | 1h 0min | NHibernate.Transform .AliasedTupleSubsetResultTransformer |
AfterTransactionCompletes | 0% | 2 methods | 3 | 10min | 1h 0min | NHibernate.Transaction .AfterTransactionCompletes |
AbstractQueryImpl2 | 86.84% | 1 method | 38 | 10min | 1h 0min | NHibernate.Impl.AbstractQueryImpl2 |
HqlTranslatorWrapper | 83.33% | 1 method | 6 | 10min | 1h 0min | NHibernate.Impl.HqlTranslatorWrapper |
SqlTranslator | 88.89% | 1 method | 9 | 10min | 1h 0min | NHibernate.Impl.SqlTranslator |
OracleManagedDataClientDriver | 0% | 7 methods | 39 | 10min | 1h 0min | NHibernate.Driver .OracleManagedDataClientDriver |
AbstractEntityPersister+PropertyKey | 60% | no method | 10 | 10min | 1h 0min | NHibernate.Persister.Entity .AbstractEntityPersister+PropertyKey |
BackTrackCacheParameterList | 46.51% | 6 methods | 43 | 10min | 1h 0min | NHibernate.SqlCommand .BackTrackCacheParameterList |
ReferenceDependantValue | 91.67% | 1 method | 12 | 10min | 1h 0min | NHibernate.Mapping .ReferenceDependantValue |
UUIDStringGeneratorDef | 50% | 2 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .UUIDStringGeneratorDef |
UUIDHexGeneratorDef | 66.67% | 2 methods | 15 | 10min | 1h 0min | NHibernate.Mapping.ByCode .UUIDHexGeneratorDef |
TriggerIdentityGeneratorDef | 50% | 2 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .TriggerIdentityGeneratorDef |
TableHiLoGeneratorDef | 0% | 4 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .TableHiLoGeneratorDef |
TableGeneratorDef | 50% | 2 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .TableGeneratorDef |
SequenceIdentityGeneratorDef | 50% | 2 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .SequenceIdentityGeneratorDef |
SequenceHiLoGeneratorDef | 50% | 2 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .SequenceHiLoGeneratorDef |
SelectGeneratorDef | 50% | 2 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .SelectGeneratorDef |
NativeGuidGeneratorDef | 0% | 4 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .NativeGuidGeneratorDef |
IncrementGeneratorDef | 50% | 2 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .IncrementGeneratorDef |
CounterGeneratorDef | 50% | 2 methods | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .CounterGeneratorDef |
EnhancedSequenceGeneratorDef | 75% | 1 method | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .EnhancedSequenceGeneratorDef |
EnhancedTableGeneratorDef | 75% | 1 method | 4 | 10min | 1h 0min | NHibernate.Mapping.ByCode .EnhancedTableGeneratorDef |
QueryLoader | 96.93% | 3 methods | 163 | 10min | 1h 0min | NHibernate.Loader.Hql.QueryLoader |
ExpressionExtensions | 71.43% | 2 methods | 28 | 10min | 1h 0min | NHibernate.Linq.ExpressionExtensions |
QueryProviderFactory | 66.67% | 1 method | 3 | 10min | 1h 0min | NHibernate.Linq.QueryProviderFactory |
ArrayIndexExpressionFlattener | 92.86% | 1 method | 14 | 10min | 1h 0min | NHibernate.Linq.ReWriters .ArrayIndexExpressionFlattener |
GroupKeyNominator | 91.3% | 1 method | 23 | 10min | 1h 0min | NHibernate.Linq.GroupBy .GroupKeyNominator |
NhNominatedExpression | 66.67% | no method | 6 | 10min | 1h 0min | NHibernate.Linq.Expressions .NhNominatedExpression |
NhJoinClause | 55.17% | 1 method | 29 | 10min | 1h 0min | NHibernate.Linq.Clauses.NhJoinClause |
NhWithClause | 50% | 1 method | 2 | 10min | 1h 0min | NHibernate.Linq.Clauses.NhWithClause |
LeftJoinRewriter | 80% | 2 methods | 30 | 10min | 1h 0min | NHibernate.Linq.Visitors .LeftJoinRewriter |
SimplifyConditionalVisitor | 55.56% | 3 methods | 18 | 10min | 1h 0min | NHibernate.Linq.Visitors .SimplifyConditionalVisitor |
SubQueryFromClauseFlattener | 97.87% | 1 method | 47 | 10min | 1h 0min | NHibernate.Linq.Visitors .SubQueryFromClauseFlattener |
StringQueryExpression | 71.43% | no method | 7 | 10min | 1h 0min | NHibernate.Hql.StringQueryExpression |
ParserHelper | 0% | 1 method | 1 | 10min | 1h 0min | NHibernate.Hql.ParserHelper |
HqlFilterPreprocessor | 78.26% | 2 methods | 23 | 10min | 1h 0min | NHibernate.Hql.Ast.ANTLR .HqlFilterPreprocessor |
ResultVariableRefNode | 36.84% | 3 methods | 19 | 10min | 1h 0min | NHibernate.Hql.Ast.ANTLR.Tree .ResultVariableRefNode |
CascadeStyle+CascadeStyleSingletonRefere nce | 75% | 1 method | 4 | 10min | 1h 0min | NHibernate.Engine .CascadeStyle+CascadeStyleSingletonRefer ence |
QueryExpressionPlan | 77.78% | no method | 9 | 10min | 1h 0min | NHibernate.Engine.Query .QueryExpressionPlan |
BitwiseFunctionOperation | 6.45% | 11 methods | 31 | 10min | 1h 0min | NHibernate.Dialect .BitwiseFunctionOperation |
Ingres9Dialect | 78.57% | 3 methods | 14 | 10min | 1h 0min | NHibernate.Dialect.Ingres9Dialect |
BitwiseNativeOperation | 86.36% | 3 methods | 22 | 10min | 1h 0min | NHibernate.Dialect .BitwiseNativeOperation |
Oracle12cDialect | 87.5% | 1 method | 8 | 10min | 1h 0min | NHibernate.Dialect.Oracle12cDialect |
PersistentGenericSet<T >+ClearDelayedOperation | 80% | 1 method | 5 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericSet<T >+ClearDelayedOperation |
PersistentGenericSet<T >+SimpleAddDelayedOperation | 0% | 3 methods | 6 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericSet<T >+SimpleAddDelayedOperation |
PersistentGenericSet<T >+SimpleRemoveDelayedOperation | 83.33% | 1 method | 6 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericSet<T >+SimpleRemoveDelayedOperation |
PersistentGenericBag<T >+ClearDelayedOperation | 80% | 1 method | 5 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericBag<T >+ClearDelayedOperation |
PersistentGenericList<T >+ClearDelayedOperation | 0% | 3 methods | 5 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericList<T >+ClearDelayedOperation |
PersistentGenericList<T >+SimpleAddDelayedOperation | 0% | 3 methods | 6 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericList<T >+SimpleAddDelayedOperation |
PersistentGenericList<T >+AddDelayedOperation | 0% | 3 methods | 7 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericList<T >+AddDelayedOperation |
PersistentGenericList<T >+SetDelayedOperation | 0% | 3 methods | 8 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericList<T >+SetDelayedOperation |
PersistentGenericList<T >+RemoveDelayedOperation | 0% | 3 methods | 7 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericList<T >+RemoveDelayedOperation |
PersistentGenericList<T >+SimpleRemoveDelayedOperation | 0% | 3 methods | 6 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericList<T >+SimpleRemoveDelayedOperation |
PersistentGenericMap<TKey,TValue >+ClearDelayedOperation | 0% | 3 methods | 5 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericMap<TKey,TValue >+ClearDelayedOperation |
PersistentGenericMap<TKey,TValue >+PutDelayedOperation | 0% | 3 methods | 8 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericMap<TKey,TValue >+PutDelayedOperation |
PersistentGenericMap<TKey,TValue >+RemoveDelayedOperation | 0% | 3 methods | 7 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericMap<TKey,TValue >+RemoveDelayedOperation |
PersistentIdentifierBag<T >+SnapshotElement | 23.53% | 2 methods | 17 | 10min | 1h 0min | NHibernate.Collection.Generic .PersistentIdentifierBag<T >+SnapshotElement |
SetSnapShot<T> | 64% | 7 methods | 25 | 10min | 1h 0min | NHibernate.Collection.Generic.SetHelpers .SetSnapShot<T> |
MySqlClientBatchingBatcher | 0% | 6 methods | 36 | 10min | 1h 0min | NHibernate.AdoNet .MySqlClientBatchingBatcher |
MySqlClientBatchingBatcherFactory | 0% | 1 method | 1 | 10min | 1h 0min | NHibernate.AdoNet .MySqlClientBatchingBatcherFactory |
MySqlClientSqlCommandSet | 0% | 5 methods | 21 | 10min | 1h 0min | NHibernate.AdoNet .MySqlClientSqlCommandSet |
![]() | Rule Violated: From now, all methods added should respect basic quality principles |
• How to Fix Issues of this Rule: To refactor such method and increase code quality and maintainability, certainly you'll have to split the method into several smaller methods or even create one or several classes to implement the logic. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). Large switch…case structures might be refactored through the help of a set of types that implement a common interface, the interface polymorphism playing the role of the switch cases tests. Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. Issues of this rule have a constant 5 minutes Debt, because the Debt, which means the effort to fix such issue, is already estimated for issues of rules in the category Code Smells. However issues of this rule have a High severity, with even more interests for issues on new methods since baseline, because the proper time to increase the quality of these methods is now, before they get commited in the next production release.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1102:FromNowAllMethodsAddedShouldRespectBasicQualityPrinciples", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
47 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
47 methods | # lines of code (LOC) | # IL instructions | Cyclomatic Complexity (CC) | IL Cyclomatic Complexity (ILCC) | IL Nesting Depth | # Parameters | # Variables | # Overloads | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|---|---|---|---|
VeryDirtyMethod() | 56 | 324 | 26 | 32 | 5 | 0 | 30 | 1 | 5min | 1h 0min | NHibernate.Action.EntityAction .VeryDirtyMethod() |
ReplaceByPredicate(String,String,String ,Boolean,Predicate<String>) | 11 | 89 | 6 | 8 | 2 | 5 | 9 | 1 | 5min | 1h 0min | NHibernate.Util.StringHelper .ReplaceByPredicate(String,String,String ,Boolean,Predicate<String>) |
Render(StringBuilder,String,IDictionary <String,String>,IDictionary<String ,IFilter>) | 11 | 72 | 6 | 7 | 5 | 4 | 8 | 3 | 5min | 1h 0min | NHibernate.Util.FilterHelper.Render (StringBuilder,String,IDictionary<String ,String>,IDictionary<String,IFilter>) |
.ctor(String,String,Boolean,Boolean ,Boolean,Boolean,Boolean) | 3 | 18 | 1 | 1 | 0 | 7 | 0 | 3 | 5min | 1h 0min | NHibernate.Type.ManyToOneType..ctor (String,String,Boolean,Boolean,Boolean ,Boolean,Boolean) |
ManyToOne(String,String,Boolean,Boolean ,Boolean,Boolean,Boolean) | 1 | 13 | 1 | 1 | 0 | 7 | 1 | 3 | 5min | 1h 0min | NHibernate.Type.TypeFactory.ManyToOne (String,String,Boolean,Boolean,Boolean ,Boolean,Boolean) |
RetransformResults(IList,String[] ,IResultTransformer,Boolean[]) | 17 | 111 | 8 | 10 | 2 | 4 | 11 | 1 | 5min | 1h 0min | NHibernate.Transform .CacheableResultTransformer .RetransformResults(IList,String[] ,IResultTransformer,Boolean[]) |
.ctor(IDbConnection,SessionFactoryImpl ,Boolean,Int64,IInterceptor,EntityMode ,Boolean,Boolean,Boolean ,ConnectionReleaseMode,FlushMode) | 27 | 138 | 4 | 6 | 2 | 11 | 4 | 3 | 5min | 1h 0min | NHibernate.Impl.SessionImpl..ctor (IDbConnection,SessionFactoryImpl ,Boolean,Int64,IInterceptor,EntityMode ,Boolean,Boolean,Boolean ,ConnectionReleaseMode,FlushMode) |
List<T>(IQueryExpression,QueryParameters ) | 4 | 25 | 1 | 3 | 2 | 2 | 3 | 12 | 5min | 1h 0min | NHibernate.Impl.AbstractSessionImpl.List <T>(IQueryExpression,QueryParameters) |
Execute(Action<String>,Boolean,Boolean ,TextWriter) | 30 | 154 | 10 | 17 | 4 | 4 | 13 | 6 | 5min | 1h 0min | NHibernate.Tool.hbm2ddl.SchemaExport .Execute(Action<String>,Boolean,Boolean ,TextWriter) |
.ctor(String,Type,Object,MethodInfo ,MethodInfo,IAbstractComponentType ,ISessionImplementor,Boolean) | 1 | 13 | 1 | 1 | 0 | 8 | 0 | 1 | 5min | 1h 0min | NHibernate.Proxy.DefaultLazyInitializer. .ctor(String,Type,Object,MethodInfo ,MethodInfo,IAbstractComponentType ,ISessionImplementor,Boolean) |
.ctor(String,Type,Object,MethodInfo ,MethodInfo,IAbstractComponentType ,ISessionImplementor,Boolean) | 6 | 23 | 1 | 1 | 0 | 8 | 0 | 1 | 5min | 1h 0min | NHibernate.Proxy.Poco .BasicLazyInitializer..ctor(String,Type ,Object,MethodInfo,MethodInfo ,IAbstractComponentType ,ISessionImplementor,Boolean) |
BuildTypeConstraint(Type,Type) | 17 | 103 | 6 | 11 | 2 | 2 | 11 | 1 | 5min | 1h 0min | NHibernate.Proxy.DynamicProxy .DefaultyProxyMethodBuilder .BuildTypeConstraint(Type,Type) |
GetColumnsToTableAliasMap(String) | 22 | 136 | 7 | 10 | 2 | 1 | 17 | 1 | 5min | 1h 0min | NHibernate.Persister.Entity .AbstractEntityPersister .GetColumnsToTableAliasMap(String) |
ProcessGeneratedPropertiesWithGeneratedS ql(Object,Object,Object[] ,ISessionImplementor,SqlString ,ValueInclusion[]) | 18 | 163 | 5 | 9 | 2 | 6 | 10 | 1 | 5min | 1h 0min | NHibernate.Persister.Entity .AbstractEntityPersister .ProcessGeneratedPropertiesWithGenerated Sql(Object,Object,Object[] ,ISessionImplementor,SqlString ,ValueInclusion[]) |
GetPropertiesToUpdate(Int32[],Boolean) | 14 | 82 | 9 | 13 | 3 | 2 | 9 | 1 | 5min | 1h 0min | NHibernate.Persister.Entity .JoinedSubclassEntityPersister .GetPropertiesToUpdate(Int32[],Boolean) |
BuildBackTrackCache() | 12 | 63 | 4 | 5 | 3 | 0 | 9 | 1 | 5min | 1h 0min | NHibernate.SqlCommand .BackTrackCacheParameterList .BuildBackTrackCache() |
AppendTokens(SqlStringBuilder ,IEnumerable) | 23 | 126 | 9 | 15 | 3 | 2 | 15 | 1 | 5min | 1h 0min | NHibernate.SqlCommand.QuerySelect .AppendTokens(SqlStringBuilder ,IEnumerable) |
Column(Action<IColumnMapper>) | 10 | 126 | 16 | 13 | 8 | 1 | 4 | 2 | 5min | 1h 0min | NHibernate.Mapping.ByCode.Impl.IdMapper .Column(Action<IColumnMapper>) |
GetRowFromResultSet(IDataReader ,ISessionImplementor,QueryParameters ,LockMode[],EntityKey,IList,EntityKey[] ,Boolean,IResultTransformer) | 19 | 145 | 7 | 11 | 3 | 9 | 12 | 2 | 5min | 1h 0min | NHibernate.Loader.Loader .GetRowFromResultSet(IDataReader ,ISessionImplementor,QueryParameters ,LockMode[],EntityKey,IList,EntityKey[] ,Boolean,IResultTransformer) |
DoQuery(ISessionImplementor ,QueryParameters,Boolean ,IResultTransformer) | 36 | 219 | 12 | 20 | 2 | 4 | 23 | 1 | 5min | 1h 0min | NHibernate.Loader.Loader.DoQuery (ISessionImplementor,QueryParameters ,Boolean,IResultTransformer) |
InitStatementString(SqlString,SqlString ,SqlString,SqlString,SqlString,LockMode) | 8 | 101 | 3 | 3 | 1 | 6 | 5 | 2 | 5min | 1h 0min | NHibernate.Loader .AbstractEntityJoinWalker .InitStatementString(SqlString,SqlString ,SqlString,SqlString,SqlString,LockMode) |
GetResultRow(Object[],IDataReader ,ISessionImplementor) | 16 | 104 | 4 | 7 | 3 | 3 | 11 | 1 | 5min | 1h 0min | NHibernate.Loader.Criteria .CriteriaLoader.GetResultRow(Object[] ,IDataReader,ISessionImplementor) |
ApplyLocks(SqlString,IDictionary<String ,LockMode>,Dialect) | 19 | 110 | 7 | 13 | 2 | 3 | 13 | 1 | 5min | 1h 0min | NHibernate.Loader.Hql.QueryLoader .ApplyLocks(SqlString,IDictionary<String ,LockMode>,Dialect) |
Initialize(SelectClause) | 52 | 306 | 13 | 18 | 4 | 1 | 18 | 1 | 5min | 1h 0min | NHibernate.Loader.Hql.QueryLoader .Initialize(SelectClause) |
GetEnumerable(QueryParameters ,IEventSource) | 14 | 99 | 3 | 3 | 1 | 2 | 9 | 1 | 5min | 1h 0min | NHibernate.Loader.Hql.QueryLoader .GetEnumerable(QueryParameters ,IEventSource) |
IsGroupingElementOf (QuerySourceReferenceExpression ,GroupResultOperator) | 15 | 83 | 7 | 9 | 1 | 2 | 10 | 1 | 5min | 1h 0min | NHibernate.Linq.ExpressionExtensions .IsGroupingElementOf (QuerySourceReferenceExpression ,GroupResultOperator) |
FlattenSubQuery(QueryModel,QueryModel ,GroupResultOperator) | 27 | 192 | 8 | 18 | 2 | 3 | 11 | 1 | 5min | 1h 0min | NHibernate.Linq.GroupBy .AggregatingGroupByRewriter .FlattenSubQuery(QueryModel,QueryModel ,GroupResultOperator) |
IsMemberOfModel (QuerySourceReferenceExpression) | 12 | 68 | 5 | 7 | 1 | 1 | 9 | 2 | 5min | 1h 0min | NHibernate.Linq.GroupBy .GroupBySelectClauseRewriter .IsMemberOfModel (QuerySourceReferenceExpression) |
.ctor() | 2 | 442 | 1 | 1 | 0 | 0 | 1 | 1 | 5min | 1h 0min | NHibernate.Linq.Functions .ConvertToInt32Generator..ctor() |
.ctor() | 2 | 415 | 1 | 1 | 0 | 0 | 1 | 1 | 5min | 1h 0min | NHibernate.Linq.Functions .ConvertToDecimalGenerator..ctor() |
.ctor() | 2 | 415 | 1 | 1 | 0 | 0 | 1 | 1 | 5min | 1h 0min | NHibernate.Linq.Functions .ConvertToDoubleGenerator..ctor() |
IsDynamicComponentDictionaryGetter (MethodInfo,Expression,IEnumerable <Expression>,ISessionFactory,String&) | 29 | 176 | 15 | 21 | 5 | 5 | 17 | 3 | 5min | 1h 0min | NHibernate.Linq.Visitors.VisitorUtil .IsDynamicComponentDictionaryGetter (MethodInfo,Expression,IEnumerable <Expression>,ISessionFactory,String&) |
AddImpliedFromToFromNode(IASTNode,String ,ISessionFactoryImplementor) | 13 | 60 | 3 | 3 | 1 | 3 | 9 | 1 | 5min | 1h 0min | NHibernate.Hql.Ast.ANTLR .HqlFilterPreprocessor .AddImpliedFromToFromNode(IASTNode ,String,ISessionFactoryImplementor) |
OnDelete(DeleteEvent,ISet<Object>) | 31 | 196 | 9 | 12 | 2 | 2 | 15 | 2 | 5min | 1h 0min | NHibernate.Event.Default .DefaultDeleteEventListener.OnDelete (DeleteEvent,ISet<Object>) |
DeleteEntity(IEventSource,Object ,EntityEntry,Boolean,IEntityPersister ,ISet<Object>) | 19 | 133 | 3 | 4 | 1 | 6 | 8 | 1 | 5min | 1h 0min | NHibernate.Event.Default .DefaultDeleteEventListener.DeleteEntity (IEventSource,Object,EntityEntry,Boolean ,IEntityPersister,ISet<Object>) |
CascadeProperty(Object,Object,IType ,CascadeStyle,String,Object,Boolean) | 17 | 144 | 13 | 18 | 4 | 7 | 13 | 1 | 5min | 1h 0min | NHibernate.Engine.Cascade .CascadeProperty(Object,Object,IType ,CascadeStyle,String,Object,Boolean) |
List(IQueryExpression,QueryParameters ,IList) | N/A | N/A | N/A | N/A | N/A | 3 | N/A | 12 | 5min | 1h 0min | NHibernate.Engine.ISessionImplementor .List(IQueryExpression,QueryParameters ,IList) |
List<T>(IQueryExpression,QueryParameters ) | N/A | N/A | N/A | N/A | N/A | 2 | N/A | 12 | 5min | 1h 0min | NHibernate.Engine.ISessionImplementor .List<T>(IQueryExpression ,QueryParameters) |
Sort() | 19 | 98 | 4 | 9 | 2 | 0 | 10 | 1 | 5min | 1h 0min | NHibernate.Engine .ActionQueue+InsertActionSorter.Sort() |
IsProcessedAfterAllAssociatedEntities (EntityInsertAction,Int32) | 11 | 70 | 6 | 10 | 3 | 2 | 10 | 1 | 5min | 1h 0min | NHibernate.Engine .ActionQueue+InsertActionSorter .IsProcessedAfterAllAssociatedEntities (EntityInsertAction,Int32) |
GetCollectionBatch(ICollectionPersister ,Object,Int32) | 24 | 146 | 10 | 16 | 5 | 3 | 17 | 1 | 5min | 1h 0min | NHibernate.Engine.BatchFetchQueue .GetCollectionBatch(ICollectionPersister ,Object,Int32) |
GetEntityBatch(IEntityPersister,Object ,Int32) | 21 | 125 | 9 | 15 | 5 | 3 | 13 | 1 | 5min | 1h 0min | NHibernate.Engine.BatchFetchQueue .GetEntityBatch(IEntityPersister,Object ,Int32) |
AfterInitialize(ICollectionPersister) | 28 | 166 | 11 | 23 | 5 | 1 | 18 | 1 | 5min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericBag<T>.AfterInitialize (ICollectionPersister) |
GetDeletes(ICollectionPersister,Boolean) | 22 | 122 | 7 | 16 | 3 | 2 | 15 | 1 | 5min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericBag<T>.GetDeletes (ICollectionPersister,Boolean) |
GetDeletes(ICollectionPersister,Boolean) | 15 | 109 | 8 | 14 | 3 | 2 | 10 | 1 | 5min | 1h 0min | NHibernate.Collection.Generic .PersistentGenericList<T>.GetDeletes (ICollectionPersister,Boolean) |
EqualsSnapshot(ICollectionPersister) | 15 | 101 | 6 | 10 | 2 | 1 | 9 | 1 | 5min | 1h 0min | NHibernate.Collection.Generic .PersistentIdentifierBag<T> .EqualsSnapshot(ICollectionPersister) |
SecondPassCompileForeignKeys(Table,ISet <ForeignKey>) | 21 | 127 | 8 | 12 | 3 | 2 | 11 | 1 | 5min | 1h 0min | NHibernate.Cfg.Configuration .SecondPassCompileForeignKeys(Table,ISet <ForeignKey>) |
![]() | Rule Violated: Avoid decreasing code coverage by tests of types |
• How to Fix Issues of this Rule: Write more unit-tests dedicated to cover changes in matched types not covered yet. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring. The estimated Debt, which means the effort to cover by test code that used to be covered, varies linearly 15 minutes to 3 hours, depending on the number of lines of code that are not covered by tests anymore. Severity of issues of this rule varies from High to Critical depending on the number of lines of code that are not covered by tests anymore. Because the loss in code coverage happened since the baseline, the severity is high because it is important to focus on these issues now, before such code gets released in production.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1103:AvoidDecreasingCodeCoverageByTestsOfTypes", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
32 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
32 types | OldCoveragePercent | NewCoveragePercent | OldLoc | NewLoc | uncoveredLoc | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|---|
QuerySelect | 85.16 | 0 | 128 | 128 | 109 | 3h 0min | 1d 0h | NHibernate.SqlCommand.QuerySelect |
QuerySplitter | 94.34 | 0 | 53 | 53 | 50 | 1h 36min | 1d 0h | NHibernate.Hql.QuerySplitter |
JoinSequence | 74 | 65 | 100 | 100 | 9 | 28min | 1h 35min | NHibernate.Engine.JoinSequence |
SqlString | 73.45 | 71.76 | 339 | 340 | 5 | 21min | 57min | NHibernate.SqlCommand.SqlString |
TableGenerator | 88.66 | 72.32 | 97 | 112 | 5 | 21min | 57min | NHibernate.Id.Enhanced.TableGenerator |
MergeEvent | 90 | 70 | 20 | 20 | 4 | 20min | 48min | NHibernate.Event.MergeEvent |
ActionQueue+BeforeTransactionCompletionP rocessQueue | 72.22 | 50 | 18 | 18 | 4 | 20min | 48min | NHibernate.Engine .ActionQueue+BeforeTransactionCompletion ProcessQueue |
HibernateConfiguration | 94.87 | 84.62 | 39 | 39 | 4 | 20min | 48min | NHibernate.Cfg.ConfigurationSchema .HibernateConfiguration |
SoftLimitMRUCache | 95.83 | 83.33 | 24 | 24 | 3 | 18min | 38min | NHibernate.Util.SoftLimitMRUCache |
SessionFactoryHelper | 43.18 | 36.36 | 44 | 44 | 3 | 18min | 38min | NHibernate.Hql.Util.SessionFactoryHelper |
PocoInstantiator | 70 | 63.41 | 40 | 41 | 2 | 16min | 29min | NHibernate.Tuple.PocoInstantiator |
SqlStringBuilder | 84.85 | 81.82 | 66 | 66 | 2 | 16min | 29min | NHibernate.SqlCommand.SqlStringBuilder |
CascadeExtensions | 100 | 81.82 | 11 | 11 | 2 | 16min | 29min | NHibernate.Mapping.ByCode .CascadeExtensions |
DynamicComponentMapper | 95.95 | 90.79 | 74 | 76 | 2 | 16min | 29min | NHibernate.Mapping.ByCode.Impl .DynamicComponentMapper |
DefaultMergeEventListener | 87.32 | 86.34 | 205 | 205 | 2 | 16min | 29min | NHibernate.Event.Default .DefaultMergeEventListener |
CastFunction | 80.95 | 71.43 | 21 | 21 | 2 | 16min | 29min | NHibernate.Dialect.Function.CastFunction |
ClassicAggregateFunction | 80 | 72 | 25 | 25 | 2 | 16min | 29min | NHibernate.Dialect.Function .ClassicAggregateFunction |
CommonGrammar | 100 | 0 | 2 | 2 | 2 | 16min | 29min | NHibernate.Dialect.Function .CommonGrammar |
WeakRefWrapper | 100 | 94.74 | 19 | 19 | 1 | 15min | 20min | NHibernate.Util.WeakRefWrapper |
WeakHashtable | 72.73 | 69.7 | 33 | 33 | 1 | 15min | 20min | NHibernate.Util.WeakHashtable |
ComponentType | 82.69 | 82.37 | 312 | 312 | 1 | 15min | 20min | NHibernate.Type.ComponentType |
CollectionPropertyMapping | 39.13 | 36.96 | 46 | 46 | 1 | 15min | 20min | NHibernate.Persister.Collection .CollectionPropertyMapping |
List | 100 | 87.5 | 8 | 8 | 1 | 15min | 20min | NHibernate.Mapping.List |
PropertyPath | 80 | 76 | 25 | 25 | 1 | 15min | 20min | NHibernate.Mapping.ByCode.PropertyPath |
NHibernateNodeTypeProvider | 100 | 93.75 | 16 | 16 | 1 | 15min | 20min | NHibernate.Linq .NHibernateNodeTypeProvider |
ResultTransformer | 92 | 88 | 25 | 25 | 1 | 15min | 20min | NHibernate.Linq.ResultTransformer |
HqlGeneratorExpressionTreeVisitor | 74.83 | 73.65 | 147 | 148 | 1 | 15min | 20min | NHibernate.Linq.Visitors .HqlGeneratorExpressionTreeVisitor |
HqlExpressionSubTreeHolder | 100 | 50 | 2 | 2 | 1 | 15min | 20min | NHibernate.Hql.Ast .HqlExpressionSubTreeHolder |
BooleanLiteralNode | 60 | 50 | 10 | 10 | 1 | 15min | 20min | NHibernate.Hql.Ast.ANTLR.Tree .BooleanLiteralNode |
QueryPlanCache+HQLQueryPlanKey | 81.48 | 77.78 | 27 | 27 | 1 | 15min | 20min | NHibernate.Engine.Query .QueryPlanCache+HQLQueryPlanKey |
SQLFunctionTemplate | 97.3 | 94.59 | 37 | 37 | 1 | 15min | 20min | NHibernate.Dialect.Function .SQLFunctionTemplate |
Expectations+NoneExpectation | 100 | 50 | 2 | 2 | 1 | 15min | 20min | NHibernate.AdoNet .Expectations+NoneExpectation |
![]() | Rule Violated: Avoid making complex methods even more complex |
• How to Fix Issues of this Rule: A large and complex method should be split in smaller methods, or even one or several classes can be created for that. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). Large switch…case structures might be refactored through the help of a set of types that implement a common interface, the interface polymorphism playing the role of the switch cases tests. Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. The estimated Debt, which means the effort to fix such issue, varies linearly from 15 to 60 minutes depending on the extra complexity added. Issues of this rule have a High severity, because it is important to focus on these issues now, before such code gets released in production.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1104:AvoidMakingComplexMethodsEvenMoreComplex", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
36 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
36 methods | oldComplexityScore | complexityScore | diff | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
ListenerTypeConvertFrom(String) | 63 | 234 | 171 | 1h 0min | 1h 20min | NHibernate.Cfg.ConfigurationSchema .CfgXmlHelper.ListenerTypeConvertFrom (String) |
GetSchemaActions(String) | 35 | 63 | 28 | 39min | 53min | NHibernate.Cfg.Mappings.GetSchemaActions (String) |
.cctor() | 16 | 42 | 26 | 37min | 50min | NHibernate.Impl.ExpressionProcessor. .cctor() |
GenerateTableAlias(Int32,String ,IJoinable) | 20 | 39 | 19 | 31min | 42min | NHibernate.Loader.Criteria .CriteriaJoinWalker.GenerateTableAlias (Int32,String,IJoinable) |
ToType(String) | 33 | 51 | 18 | 30min | 40min | NHibernate.Persister.Collection .CollectionPropertyMapping.ToType(String ) |
.ctor(PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping) | 82 | 100 | 18 | 30min | 40min | NHibernate.Persister.Entity .SingleTableEntityPersister..ctor (PersistentClass ,ICacheConcurrencyStrategy ,ISessionFactoryImplementor,IMapping) |
ToColumns(String,String) | 42 | 59 | 17 | 29min | 39min | NHibernate.Persister.Collection .CollectionPropertyMapping.ToColumns (String,String) |
VisitConstantExpression (ConstantExpression) | 21 | 31 | 10 | 23min | 31min | NHibernate.Linq.Visitors .ExpressionKeyVisitor .VisitConstantExpression (ConstantExpression) |
Intercept(Object,String,Object) | 18 | 26 | 8 | 21min | 28min | NHibernate.Intercept .AbstractFieldInterceptor.Intercept (Object,String,Object) |
SetDefaultParameterSize(IDbDataParameter ,SqlType) | 35 | 43 | 8 | 21min | 28min | NHibernate.Driver.SqlClientDriver .SetDefaultParameterSize (IDbDataParameter,SqlType) |
FindMemberExpression(Expression) | 40 | 47 | 7 | 20min | 27min | NHibernate.Impl.ExpressionProcessor .FindMemberExpression(Expression) |
ApplyLocks(SqlString,IDictionary<String ,LockMode>,Dialect) | 25 | 32 | 7 | 20min | 27min | NHibernate.Loader.Criteria .CriteriaLoader.ApplyLocks(SqlString ,IDictionary<String,LockMode>,Dialect) |
.ctor(Collection ,ICacheConcurrencyStrategy,Configuration ,ISessionFactoryImplementor) | 80 | 86 | 6 | 19min | 26min | NHibernate.Persister.Collection .AbstractCollectionPersister..ctor (Collection,ICacheConcurrencyStrategy ,Configuration ,ISessionFactoryImplementor) |
ProcessBinaryExpression(BinaryExpression ) | 28 | 33 | 5 | 18min | 24min | NHibernate.Impl.ExpressionProcessor .ProcessBinaryExpression (BinaryExpression) |
Resolve(Boolean,Boolean,String,IASTNode) | 31 | 36 | 5 | 18min | 24min | NHibernate.Hql.Ast.ANTLR.Tree.IndexNode .Resolve(Boolean,Boolean,String,IASTNode ) |
GetSelectClauseNullString(SqlType) | 31 | 36 | 5 | 18min | 24min | NHibernate.Dialect.Oracle8iDialect .GetSelectClauseNullString(SqlType) |
BindTimestamp(HbmTimestamp ,PersistentClass,Table,IDictionary <String,MetaAttribute>) | 23 | 28 | 5 | 18min | 24min | NHibernate.Cfg.XmlHbmBinding .RootClassBinder.BindTimestamp (HbmTimestamp,PersistentClass,Table ,IDictionary<String,MetaAttribute>) |
GetRecursiveProperty(String,IEnumerable <Property>) | 37 | 41 | 4 | 17min | 23min | NHibernate.Mapping.PersistentClass .GetRecursiveProperty(String,IEnumerable <Property>) |
get_DataType() | 27 | 31 | 4 | 17min | 23min | NHibernate.Hql.Ast.ANTLR.Tree.CaseNode .get_DataType() |
VisitExpression(Expression) | 31 | 34 | 3 | 16min | 22min | NHibernate.Linq.Visitors .SelectClauseHqlNominator .VisitExpression(Expression) |
DropTemporaryTableIfNecessary(IQueryable ,ISessionImplementor) | 25 | 28 | 3 | 16min | 22min | NHibernate.Hql.Ast.ANTLR.Exec .AbstractStatementExecutor .DropTemporaryTableIfNecessary (IQueryable,ISessionImplementor) |
ExpandParameters(IDictionary<String ,TypedValue>) | 29 | 31 | 2 | 15min | 21min | NHibernate.Impl.ExpressionQueryImpl .ExpandParameters(IDictionary<String ,TypedValue>) |
DoList() | 46 | 48 | 2 | 15min | 21min | NHibernate.Impl.MultiQueryImpl.DoList() |
CompileMappingFor(IEnumerable<Type>) | 26 | 28 | 2 | 15min | 21min | NHibernate.Mapping.ByCode.ModelMapper .CompileMappingFor(IEnumerable<Type>) |
VisitExpression(Expression) | 68 | 70 | 2 | 15min | 21min | NHibernate.Linq.Visitors .HqlGeneratorExpressionTreeVisitor .VisitExpression(Expression) |
ToSqlString(ICriteria,ICriteriaQuery ,IDictionary<String,IFilter>) | 26 | 28 | 2 | 15min | 21min | NHibernate.Criterion.SubqueryExpression .ToSqlString(ICriteria,ICriteriaQuery ,IDictionary<String,IFilter>) |
get_AfterTransactionCompletionProcess() | 16 | 17 | 1 | 15min | 20min | NHibernate.Action.CollectionUpdateAction .get_AfterTransactionCompletionProcess() |
GetCollection(Object,ISessionImplementor ,Object) | 26 | 27 | 1 | 15min | 20min | NHibernate.Type.CollectionType .GetCollection(Object ,ISessionImplementor,Object) |
CreateProxyType(Type,Type[]) | 20 | 21 | 1 | 15min | 20min | NHibernate.Proxy.DynamicProxy .ProxyFactory.CreateProxyType(Type ,Type[]) |
Insert(Object,Object[],Boolean[],Int32 ,SqlCommandInfo,Object ,ISessionImplementor) | 31 | 32 | 1 | 15min | 20min | NHibernate.Persister.Entity .AbstractEntityPersister.Insert(Object ,Object[],Boolean[],Int32,SqlCommandInfo ,Object,ISessionImplementor) |
UpdateOrInsert(Object,Object[],Object[] ,Object,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor) | 28 | 29 | 1 | 15min | 20min | NHibernate.Persister.Entity .AbstractEntityPersister.UpdateOrInsert (Object,Object[],Object[],Object ,Boolean[],Int32,Object,Object ,SqlCommandInfo,ISessionImplementor) |
Delete(Object,Object,Int32,Object ,SqlCommandInfo,ISessionImplementor ,Object[]) | 46 | 47 | 1 | 15min | 20min | NHibernate.Persister.Entity .AbstractEntityPersister.Delete(Object ,Object,Int32,Object,SqlCommandInfo ,ISessionImplementor,Object[]) |
MapSplitProperties(Type,IEnumerable <MemberInfo>,IJoinMapper) | 27 | 28 | 1 | 15min | 20min | NHibernate.Mapping.ByCode.ModelMapper .MapSplitProperties(Type,IEnumerable <MemberInfo>,IJoinMapper) |
VisitMethodCallExpression (MethodCallExpression) | 38 | 39 | 1 | 15min | 20min | NHibernate.Linq.Visitors .ExpressionKeyVisitor .VisitMethodCallExpression (MethodCallExpression) |
DereferenceEntity(EntityType,Boolean ,String,Boolean,IASTNode) | 32 | 33 | 1 | 15min | 20min | NHibernate.Hql.Ast.ANTLR.Tree.DotNode .DereferenceEntity(EntityType,Boolean ,String,Boolean,IASTNode) |
Put(CacheKey,Object,Int64,Object ,IComparer,Boolean) | 26 | 27 | 1 | 15min | 20min | NHibernate.Cache.ReadWriteCache.Put (CacheKey,Object,Int64,Object,IComparer ,Boolean) |
![]() | Rule Violated: Avoid making large methods even larger |
• How to Fix Issues of this Rule: Usually too big methods should be split in smaller methods. But long methods with no branch conditions, that typically initialize some data, are not necessarily a problem to maintain, and might not need refactoring. The estimated Debt, which means the effort to fix such issue, varies linearly from 5 to 20 minutes depending on the number of lines of code added. The estimated Debt, which means the effort to fix such issue, varies linearly from 10 to 60 minutes depending on the extra complexity added. Issues of this rule have a High severity, because it is important to focus on these issues now, before such code gets released in production.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1105:AvoidMakingLargeMethodsEvenLarger", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
29 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
29 methods | oldLoc | newLoc | diff | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
BuildSettings(IDictionary<String,String> ) | 139 | 150 | 11 | 15min | 26min | NHibernate.Cfg.SettingsFactory .BuildSettings(IDictionary<String,String >) |
BindJoin(HbmJoin,Join,IDictionary<String ,MetaAttribute>) | 20 | 31 | 11 | 15min | 26min | NHibernate.Cfg.XmlHbmBinding.ClassBinder .BindJoin(HbmJoin,Join,IDictionary <String,MetaAttribute>) |
GenerateHqlQuery(QueryModel ,VisitorParameters,Boolean) | 16 | 24 | 8 | 13min | 24min | NHibernate.Linq.Visitors .QueryModelVisitor.GenerateHqlQuery (QueryModel,VisitorParameters,Boolean) |
ListUsingQueryCache() | 23 | 30 | 7 | 13min | 23min | NHibernate.Impl.MultiCriteriaImpl .ListUsingQueryCache() |
VisitExpression(Expression) | 19 | 26 | 7 | 13min | 23min | NHibernate.Linq.Visitors .SelectClauseHqlNominator .VisitExpression(Expression) |
ExpandParameters(IDictionary<String ,TypedValue>) | 36 | 40 | 4 | 11min | 21min | NHibernate.Impl.ExpressionQueryImpl .ExpandParameters(IDictionary<String ,TypedValue>) |
CreatePrimaryKey() | 17 | 21 | 4 | 11min | 21min | NHibernate.Mapping.Set.CreatePrimaryKey( ) |
RegisterFunctions() | 70 | 74 | 4 | 11min | 21min | NHibernate.Dialect.Oracle8iDialect .RegisterFunctions() |
EnlistInDistributedTransactionIfNeeded (ISessionImplementor) | 20 | 23 | 3 | 11min | 21min | NHibernate.Transaction .AdoNetWithDistributedTransactionFactory .EnlistInDistributedTransactionIfNeeded (ISessionImplementor) |
GetCollection(Object,ISessionImplementor ,Object) | 20 | 22 | 2 | 10min | 20min | NHibernate.Type.CollectionType .GetCollection(Object ,ISessionImplementor,Object) |
FindMemberExpression(Expression) | 29 | 31 | 2 | 10min | 20min | NHibernate.Impl.ExpressionProcessor .FindMemberExpression(Expression) |
DoList() | 65 | 67 | 2 | 10min | 20min | NHibernate.Impl.MultiQueryImpl.DoList() |
Delete(Object,Object,Int32,Object ,SqlCommandInfo,ISessionImplementor ,Object[]) | 43 | 45 | 2 | 10min | 20min | NHibernate.Persister.Entity .AbstractEntityPersister.Delete(Object ,Object,Int32,Object,SqlCommandInfo ,ISessionImplementor,Object[]) |
GetRecursiveProperty(String,IEnumerable <Property>) | 21 | 23 | 2 | 10min | 20min | NHibernate.Mapping.PersistentClass .GetRecursiveProperty(String,IEnumerable <Property>) |
MapSplitProperties(Type,IEnumerable <MemberInfo>,IJoinMapper) | 28 | 30 | 2 | 10min | 20min | NHibernate.Mapping.ByCode.ModelMapper .MapSplitProperties(Type,IEnumerable <MemberInfo>,IJoinMapper) |
DropTemporaryTableIfNecessary(IQueryable ,ISessionImplementor) | 17 | 19 | 2 | 10min | 20min | NHibernate.Hql.Ast.ANTLR.Exec .AbstractStatementExecutor .DropTemporaryTableIfNecessary (IQueryable,ISessionImplementor) |
Create(IToken) | 75 | 77 | 2 | 10min | 20min | NHibernate.Hql.Ast.ANTLR.Tree .HqlSqlWalkerTreeAdaptor.Create(IToken) |
AddAll(IList,IList) | 16 | 17 | 1 | 10min | 20min | NHibernate.Util.ArrayHelper.AddAll(IList ,IList) |
Recreate(IPersistentCollection,Object ,ISessionImplementor) | 26 | 27 | 1 | 10min | 20min | NHibernate.Persister.Collection .AbstractCollectionPersister.Recreate (IPersistentCollection,Object ,ISessionImplementor) |
Dehydrate(Object,Object[],Object ,Boolean[],Boolean[][],Int32,IDbCommand ,ISessionImplementor,Int32) | 16 | 17 | 1 | 10min | 20min | NHibernate.Persister.Entity .AbstractEntityPersister.Dehydrate (Object,Object[],Object,Boolean[] ,Boolean[][],Int32,IDbCommand ,ISessionImplementor,Int32) |
Insert(Object,Object[],Boolean[],Int32 ,SqlCommandInfo,Object ,ISessionImplementor) | 25 | 26 | 1 | 10min | 20min | NHibernate.Persister.Entity .AbstractEntityPersister.Insert(Object ,Object[],Boolean[],Int32,SqlCommandInfo ,Object,ISessionImplementor) |
Merge(IModelExplicitDeclarationsHolder ,IModelExplicitDeclarationsHolder) | 32 | 33 | 1 | 10min | 20min | NHibernate.Mapping.ByCode .ModelExplicitDeclarationsHolderExtensio ns.Merge (IModelExplicitDeclarationsHolder ,IModelExplicitDeclarationsHolder) |
GetTopologicalSortOrder(List <JoinWalker+DependentAlias>) | 17 | 18 | 1 | 10min | 20min | NHibernate.Loader.JoinWalker .GetTopologicalSortOrder(List <JoinWalker+DependentAlias>) |
VisitExpression(Expression) | 32 | 33 | 1 | 10min | 20min | NHibernate.Linq.Visitors .HqlGeneratorExpressionTreeVisitor .VisitExpression(Expression) |
Configure(IType,IDictionary<String ,String>,Dialect) | 21 | 22 | 1 | 10min | 20min | NHibernate.Id.IncrementGenerator .Configure(IType,IDictionary<String ,String>,Dialect) |
ResolveCollectionProperty(IASTNode) | 17 | 18 | 1 | 10min | 20min | NHibernate.Hql.Ast.ANTLR.Tree.MethodNode .ResolveCollectionProperty(IASTNode) |
CascadeOn(IEntityPersister,Object,Object ) | 17 | 18 | 1 | 10min | 20min | NHibernate.Engine.Cascade.CascadeOn (IEntityPersister,Object,Object) |
RegisterFunctions() | 56 | 57 | 1 | 10min | 20min | NHibernate.Dialect.MsSql2000Dialect .RegisterFunctions() |
HandleJoinedSubclass(PersistentClass ,HbmJoinedSubclass,IDictionary<String ,MetaAttribute>) | 20 | 21 | 1 | 10min | 20min | NHibernate.Cfg.XmlHbmBinding .JoinedSubclassBinder .HandleJoinedSubclass(PersistentClass ,HbmJoinedSubclass,IDictionary<String ,MetaAttribute>) |
![]() | Rule Violated: Avoid adding methods to a type that already had many methods |
• How to Fix Issues of this Rule: To refactor such type and increase code quality and maintainability, certainly you'll have to split the type into several smaller types that together, implement the same logic. The estimated Debt, which means the effort to fix such issue, is equal to 10 minutes per method added. Issues of this rule have a High severity, because it is important to focus on these issues now, before such code gets released in production.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1106:AvoidAddingMethodsToATypeThatAlreadyHadManyMethods", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
27 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
27 types | nbOldMethods | nbNewMethods | addedMethods | removedMethods | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
AbstractEntityPersister | 312 | 322 | 11 methods | 1 method | 1h 50min | 9min | NHibernate.Persister.Entity .AbstractEntityPersister |
Loader | 79 | 89 | 11 methods | 1 method | 1h 50min | 9min | NHibernate.Loader.Loader |
ProjectionsExtensions | 44 | 48 | 10 methods | 6 methods | 1h 40min | 9min | NHibernate.Criterion .ProjectionsExtensions |
AbstractSessionImpl | 85 | 93 | 8 methods | no method | 1h 20min | 7min | NHibernate.Impl.AbstractSessionImpl |
ISessionImplementor | 68 | 76 | 8 methods | no method | 1h 20min | 7min | NHibernate.Engine.ISessionImplementor |
SingleTableEntityPersister | 50 | 57 | 7 methods | no method | 1h 10min | 6min | NHibernate.Persister.Entity .SingleTableEntityPersister |
SimpleModelInspector | 125 | 128 | 6 methods | 3 methods | 1h 0min | 5min | NHibernate.Mapping.ByCode .SimpleModelInspector |
ClassCustomizer<TEntity> | 40 | 45 | 5 methods | no method | 50min | 5min | NHibernate.Mapping.ByCode.Impl .CustomizersImpl.ClassCustomizer<TEntity > |
AbstractExplicitlyDeclaredModel | 69 | 71 | 4 methods | 2 methods | 40min | 4min 21s | NHibernate.Mapping.ByCode .AbstractExplicitlyDeclaredModel |
FakeModelExplicitDeclarationsHolder | 54 | 56 | 4 methods | 2 methods | 40min | 4min 21s | NHibernate.Mapping.ByCode .FakeModelExplicitDeclarationsHolder |
IModelExplicitDeclarationsHolder | 53 | 55 | 4 methods | 2 methods | 40min | 4min 21s | NHibernate.Mapping.ByCode .IModelExplicitDeclarationsHolder |
ClassMapper | 33 | 37 | 4 methods | no method | 40min | 4min 21s | NHibernate.Mapping.ByCode.Impl .ClassMapper |
ExplicitDeclarationsHolder | 53 | 55 | 4 methods | 2 methods | 40min | 4min 21s | NHibernate.Mapping.ByCode.Impl .ExplicitDeclarationsHolder |
PropertyContainerCustomizer<TEntity> | 62 | 63 | 4 methods | 3 methods | 40min | 4min 21s | NHibernate.Mapping.ByCode.Impl .CustomizersImpl .PropertyContainerCustomizer<TEntity> |
ISession | 91 | 92 | 3 methods | 2 methods | 30min | 3min 34s | NHibernate.ISession |
AbstractCollectionPersister | 150 | 152 | 3 methods | 1 method | 30min | 3min 34s | NHibernate.Persister.Collection .AbstractCollectionPersister |
EntityType | 47 | 49 | 2 methods | no method | 20min | 2min 47s | NHibernate.Type.EntityType |
ExpressionProcessor | 44 | 45 | 2 methods | 1 method | 20min | 2min 47s | NHibernate.Impl.ExpressionProcessor |
JoinedSubclassEntityPersister | 39 | 41 | 2 methods | no method | 20min | 2min 47s | NHibernate.Persister.Entity .JoinedSubclassEntityPersister |
SqlString | 44 | 45 | 2 methods | 1 method | 20min | 2min 47s | NHibernate.SqlCommand.SqlString |
CriteriaQueryTranslator | 53 | 55 | 2 methods | no method | 20min | 2min 47s | NHibernate.Loader.Criteria .CriteriaQueryTranslator |
LinkedHashMap<TKey,TValue> | 33 | 34 | 1 method | no method | 10min | 2min 0s | NHibernate.Util.LinkedHashMap<TKey ,TValue> |
AbstractQueryImpl | 117 | 118 | 1 method | no method | 10min | 2min 0s | NHibernate.Impl.AbstractQueryImpl |
SessionFactoryImpl | 69 | 70 | 1 method | no method | 10min | 2min 0s | NHibernate.Impl.SessionFactoryImpl |
TypeExtensions | 33 | 34 | 1 method | no method | 10min | 2min 0s | NHibernate.Mapping.ByCode.TypeExtensions |
Dialect | 150 | 151 | 1 method | no method | 10min | 2min 0s | NHibernate.Dialect.Dialect |
CollectionBinder | 43 | 44 | 1 method | no method | 10min | 2min 0s | NHibernate.Cfg.XmlHbmBinding .CollectionBinder |
![]() | Rule Violated: Avoid adding instance fields to a type that already had many instance fields |
• How to Fix Issues of this Rule: To refactor such type and increase code quality and maintainability, certainly you'll have to group subsets of fields into smaller types and dispatch the logic implemented into the methods into these smaller types. The estimated Debt, which means the effort to fix such issue, is equal to 10 minutes per field added. Issues of this rule have a High severity, because it is important to focus on these issues now, before such code gets released in production.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1107:AvoidAddingInstanceFieldsToATypeThatAlreadyHadManyInstanceFields", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
7 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
7 types | nbOldFields | nbNewFields | addedFields | removedFields | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
SingleTableEntityPersister | 34 | 37 | 3 fields | no field | 30min | 21min | NHibernate.Persister.Entity .SingleTableEntityPersister |
AbstractExplicitlyDeclaredModel | 30 | 31 | 2 fields | 1 field | 20min | 20min | NHibernate.Mapping.ByCode .AbstractExplicitlyDeclaredModel |
FakeModelExplicitDeclarationsHolder | 26 | 27 | 2 fields | 1 field | 20min | 20min | NHibernate.Mapping.ByCode .FakeModelExplicitDeclarationsHolder |
ExplicitDeclarationsHolder | 26 | 27 | 2 fields | 1 field | 20min | 20min | NHibernate.Mapping.ByCode.Impl .ExplicitDeclarationsHolder |
SessionImpl | 20 | 21 | 1 field | no field | 10min | 20min | NHibernate.Impl.SessionImpl |
AbstractCollectionPersister | 87 | 88 | 1 field | no field | 10min | 20min | NHibernate.Persister.Collection .AbstractCollectionPersister |
CriteriaQueryTranslator | 17 | 18 | 1 field | no field | 10min | 20min | NHibernate.Loader.Criteria .CriteriaQueryTranslator |
![]() | Rule Violated: Avoid transforming an immutable type into a mutable one |
• How to Fix Issues of this Rule: If being immutable is an important property for a matched type, then the code must be refactored to preserve immutability. The estimated Debt, which means the effort to fix such issue, is equal to 10 minutes plus 10 minutes per instance fields of the matched type that is now mutable. Issues of this rule have a High severity, because it is important to focus on these issues now, before such code gets released in production.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1108:AvoidTransformingAnImmutableTypeIntoAMutableOne", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
5 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
5 types | culpritFields | Debt | Severity | Full Name |
---|---|---|---|---|
LoggerProvider | 1 field | 20min | High | NHibernate.LoggerProvider |
EntityModeToTuplizerMapping | 1 field | 20min | High | NHibernate.Tuple .EntityModeToTuplizerMapping |
EntityEntityModeToTuplizerMapping | no field | 10min | High | NHibernate.Tuple.Entity .EntityEntityModeToTuplizerMapping |
ComponentEntityModeToTuplizerMapping | no field | 10min | High | NHibernate.Tuple.Component .ComponentEntityModeToTuplizerMapping |
GroupedProjection | 1 field | 20min | High | NHibernate.Criterion.GroupedProjection |
Object Oriented Design 2120 |
![]() | Rule Violated: Avoid interfaces too big |
• How to Fix Issues of this Rule: Typically to fix such issue, the interface must be refactored in a grape of smaller single-responsibility interfaces. A classic example is a ISession large interface, responsible for holding states, run commands and offer various accesses and facilities. The classic problem for a large public interface is that it has many clients that consume it. As a consequence splitting it in smaller interfaces has an important impact and it is not always feasible. The estimated Debt, which means the effort to fix such issue, varies linearly from 20 minutes for an interface with 10 methods, up to 7 hours for an interface with 100 or more methods. The Debt is divided by two if the interface is not publicly visible, because in such situation only the current project is impacted by the refactoring.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1200:AvoidInterfacesTooBig", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
64 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
64 types | Methods | Properties | Events | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
IFluentSessionFactoryConfiguration![]() | 6 methods | 5 methods | no method | 24min | 4min 38s | NHibernate.Cfg.Loquacious .IFluentSessionFactoryConfiguration |
ISelectExpression![]() | 2 methods | 8 methods | no method | 20min | 2min 0s | NHibernate.Hql.Ast.ANTLR.Tree .ISelectExpression |
ISession | 79 methods | 10 methods | no method | 6h 11min | 3h 30min | NHibernate.ISession |
IEntityPersister | 42 methods | 47 methods | no method | 6h 11min | 3h 30min | NHibernate.Persister.Entity .IEntityPersister |
IQuery | 75 methods | 5 methods | no method | 5h 31min | 3h 7min | NHibernate.IQuery |
IPersistenceContext | 62 methods | 14 methods | no method | 5h 13min | 2h 56min | NHibernate.Engine.IPersistenceContext |
ISessionImplementor | 49 methods | 23 methods | no method | 4h 55min | 2h 45min | NHibernate.Engine.ISessionImplementor |
IQueryOver<TRoot,TSubType> | 57 methods | 5 methods | no method | 4h 11min | 2h 19min | NHibernate.IQueryOver<TRoot,TSubType> |
IDetachedQuery | 57 methods | no method | no method | 3h 48min | 2h 6min | NHibernate.IDetachedQuery |
IModelExplicitDeclarationsHolder | 29 methods | 26 methods | no method | 3h 40min | 2h 1min | NHibernate.Mapping.ByCode .IModelExplicitDeclarationsHolder |
ICollectionPersister | 21 methods | 33 methods | no method | 3h 35min | 1h 58min | NHibernate.Persister.Collection .ICollectionPersister |
ICustomizersHolder | 50 methods | no method | no method | 3h 17min | 1h 47min | NHibernate.Mapping.ByCode.Impl .ICustomizersHolder |
IMultiQuery | 47 methods | no method | no method | 3h 4min | 1h 39min | NHibernate.IMultiQuery |
IPersistentCollection | 33 methods | 12 methods | no method | 2h 55min | 1h 34min | NHibernate.Collection .IPersistentCollection |
IStatistics | 6 methods | 35 methods | no method | 2h 37min | 1h 23min | NHibernate.Stat.IStatistics |
ICriteria | 36 methods | 3 methods | no method | 2h 28min | 1h 18min | NHibernate.ICriteria |
IType | 26 methods | 9 methods | no method | 2h 11min | 1h 8min | NHibernate.Type.IType |
IStatelessSession | 30 methods | 4 methods | no method | 2h 6min | 1h 5min | NHibernate.IStatelessSession |
ISessionFactoryImplementor | 17 methods | 13 methods | no method | 1h 48min | 54min | NHibernate.Engine .ISessionFactoryImplementor |
IClassMetadata | 13 methods | 16 methods | no method | 1h 44min | 52min | NHibernate.Metadata.IClassMetadata |
IModelInspector | 29 methods | no method | no method | 1h 44min | 52min | NHibernate.Mapping.ByCode .IModelInspector |
ISessionFactory | 22 methods | 3 methods | no method | 1h 26min | 41min | NHibernate.ISessionFactory |
IStatisticsImplementor | 25 methods | no method | no method | 1h 26min | 41min | NHibernate.Stat.IStatisticsImplementor |
IClassAttributesMapper<TEntity> | 25 methods | no method | no method | 1h 26min | 41min | NHibernate.Mapping.ByCode .IClassAttributesMapper<TEntity> |
IASTNode | 13 methods | 10 methods | no method | 1h 17min | 36min | NHibernate.Hql.Ast.ANTLR.Tree.IASTNode |
ICriteriaQuery | 20 methods | 3 methods | no method | 1h 17min | 36min | NHibernate.Criterion.ICriteriaQuery |
ICollectionPropertiesContainerMapper <TEntity> | 22 methods | no method | no method | 1h 13min | 33min | NHibernate.Mapping.ByCode .ICollectionPropertiesContainerMapper <TEntity> |
IDbIntegrationConfigurationProperties | 7 methods | 15 methods | no method | 1h 13min | 33min | NHibernate.Cfg.Loquacious .IDbIntegrationConfigurationProperties |
IQueryOver<TRoot> | 20 methods | no method | no method | 1h 4min | 28min | NHibernate.IQueryOver<TRoot> |
IMultiCriteria | 20 methods | no method | no method | 1h 4min | 28min | NHibernate.IMultiCriteria |
IClassAttributesMapper | 20 methods | no method | no method | 1h 4min | 28min | NHibernate.Mapping.ByCode .IClassAttributesMapper |
ICollectionPropertiesMapper | 20 methods | no method | no method | 1h 4min | 28min | NHibernate.Mapping.ByCode .ICollectionPropertiesMapper |
ICollectionPropertiesMapper<TEntity ,TElement> | 20 methods | no method | no method | 1h 4min | 28min | NHibernate.Mapping.ByCode .ICollectionPropertiesMapper<TEntity ,TElement> |
ICollectionPropertiesMapping | no method | 20 methods | no method | 1h 4min | 28min | NHibernate.Cfg.MappingSchema .ICollectionPropertiesMapping |
IInterceptor | 19 methods | no method | no method | 1h 0min | 25min | NHibernate.IInterceptor |
IInternalLogger | 14 methods | 5 methods | no method | 1h 0min | 25min | NHibernate.IInternalLogger |
IEntityTuplizer | 12 methods | 5 methods | no method | 51min | 20min | NHibernate.Tuple.Entity.IEntityTuplizer |
IOuterJoinLoadable | 16 methods | 1 method | no method | 51min | 20min | NHibernate.Persister.Entity .IOuterJoinLoadable |
IQueryTranslator | 6 methods | 11 methods | no method | 51min | 20min | NHibernate.Hql.IQueryTranslator |
IQueryable | 6 methods | 10 methods | no method | 46min | 17min | NHibernate.Persister.Entity.IQueryable |
IPropertyMapper | 16 methods | no method | no method | 46min | 17min | NHibernate.Mapping.ByCode .IPropertyMapper |
IValue | 4 methods | 11 methods | no method | 42min | 15min | NHibernate.Mapping.IValue |
ICompositeUserType | 10 methods | 4 methods | no method | 37min | 12min | NHibernate.UserTypes.ICompositeUserType |
ILazyInitializer | 6 methods | 8 methods | no method | 37min | 12min | NHibernate.Proxy.ILazyInitializer |
IManyToOneMapper | 14 methods | no method | no method | 37min | 12min | NHibernate.Mapping.ByCode .IManyToOneMapper |
IBatcher | 12 methods | 2 methods | no method | 37min | 12min | NHibernate.Engine.IBatcher |
ICacheConcurrencyStrategy | 12 methods | 2 methods | no method | 37min | 12min | NHibernate.Cache .ICacheConcurrencyStrategy |
IQueryableCollection | 7 methods | 6 methods | no method | 33min | 9min | NHibernate.Persister.Collection .IQueryableCollection |
IAnyMapper | 13 methods | no method | no method | 33min | 9min | NHibernate.Mapping.ByCode.IAnyMapper |
IDataBaseSchema | 7 methods | 6 methods | no method | 33min | 9min | NHibernate.Dialect.Schema .IDataBaseSchema |
IEntityMapping | no method | 13 methods | no method | 33min | 9min | NHibernate.Cfg.MappingSchema .IEntityMapping |
IJoinable | 7 methods | 5 methods | no method | 28min | 7min | NHibernate.Persister.Entity.IJoinable |
ILoadable | 6 methods | 6 methods | no method | 28min | 7min | NHibernate.Persister.Entity.ILoadable |
IUserType | 8 methods | 3 methods | no method | 24min | 4min 38s | NHibernate.UserTypes.IUserType |
IAbstractComponentType | 7 methods | 4 methods | no method | 24min | 4min 38s | NHibernate.Type.IAbstractComponentType |
IDriver | 9 methods | 2 methods | no method | 24min | 4min 38s | NHibernate.Driver.IDriver |
IColumnMapper | 11 methods | no method | no method | 24min | 4min 38s | NHibernate.Mapping.ByCode.IColumnMapper |
IDiscriminatorMapper | 11 methods | no method | no method | 24min | 4min 38s | NHibernate.Mapping.ByCode .IDiscriminatorMapper |
ISQLQuery | 10 methods | no method | no method | 20min | 2min 0s | NHibernate.ISQLQuery |
IElementMapper | 10 methods | no method | no method | 20min | 2min 0s | NHibernate.Mapping.ByCode.IElementMapper |
IProjection | 7 methods | 3 methods | no method | 20min | 2min 0s | NHibernate.Criterion.IProjection |
IDbIntegrationConfiguration | 5 methods | 5 methods | no method | 20min | 2min 0s | NHibernate.Cfg.Loquacious .IDbIntegrationConfiguration |
ICache | 8 methods | 2 methods | no method | 20min | 2min 0s | NHibernate.Cache.ICache |
ICollectionTypeFactory | 10 methods | no method | no method | 20min | 2min 0s | NHibernate.Bytecode .ICollectionTypeFactory |
Statistics
Stat | Methods | Properties | Events | Debt | Annual Interest |
---|---|---|---|---|---|
Sum: | 1 283 | 433 | 0 | 12d 5h | 6d 1h |
Average: | 20.05 | 6.77 | 0 | 1h 34min | 46min |
Minimum: | 0 | 0 | 0 | 20min | 2min 0s |
Maximum: | 79 | 47 | 0 | 6h 11min | 3h 30min |
Standard deviation: | 17.66 | 9.27 | 0 | 1h 31min | 54min |
Variance: | 311.92 | 85.96 | 0 | 1 046d | 370d |
![]() | Rule Violated: Base class should not use derivatives |
• How to Fix Issues of this Rule: Understand the need for using derivatives, then imagine a new design, and then refactor. Typically an algorithm in the base class needs to access something from derived classes. You can try to encapsulate this access behind an abstract or a virtual method. If you see in the base class some conditions on typeof(DerivedClass) not only urgent refactoring is needed. Such condition can easily be replaced through an abstract or a virtual method. Sometime you'll see a base class that creates instance of some derived classes. In such situation, certainly using the factory method pattern http://en.wikipedia.org/wiki/Factory_method_pattern or the abstract factory pattern http://en.wikipedia.org/wiki/Abstract_factory_pattern will improve the design. The estimated Debt, which means the effort to fix such issue, is equal to 3 minutes per derived class used by the base class + 3 minutes per member of a derived class used by the base class.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1201:BaseClassShouldNotUseDerivatives", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
15 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
15 types | derivedClassesUsed | derivedClassesMemberUsed | Debt | Severity | Full Name |
---|---|---|---|---|---|
EntityAction+BaseClass![]() | 1 type | 1 method | 6min | High | NHibernate.Action.EntityAction+BaseClass |
ClassBinder | 4 types | 9 methods | 39min | High | NHibernate.Cfg.XmlHbmBinding.ClassBinder |
QueryOver | 1 type | 4 methods | 15min | High | NHibernate.Criterion.QueryOver |
PropertyGeneration | 3 types | 3 methods | 18min | High | NHibernate.Mapping.ByCode .PropertyGeneration |
AbstractCriterion | 4 types | 3 methods | 21min | High | NHibernate.Criterion.AbstractCriterion |
Collection | 2 types | 2 methods | 12min | High | NHibernate.Mapping.Collection |
CacheInclude | 2 types | 2 methods | 12min | High | NHibernate.Mapping.ByCode.CacheInclude |
PropertyContainerCustomizer<TEntity> | 2 types | 2 methods | 12min | High | NHibernate.Mapping.ByCode.Impl .CustomizersImpl .PropertyContainerCustomizer<TEntity> |
QueryOver<TRoot> | 1 type | 2 methods | 9min | High | NHibernate.Criterion.QueryOver<TRoot> |
ScriptReader | 1 type | 1 method | 6min | High | NHibernate.Tool.hbm2ddl.ScriptReader |
AbstractBasePropertyContainerMapper | 1 type | 1 method | 6min | High | NHibernate.Mapping.ByCode.Impl .AbstractBasePropertyContainerMapper |
IdentifierValue | 1 type | 1 method | 6min | High | NHibernate.Engine.IdentifierValue |
PersistentClass | 2 types | no member | 6min | High | NHibernate.Mapping.PersistentClass |
SelectExpressionList | 1 type | no member | 3min 0s | High | NHibernate.Hql.Ast.ANTLR.Tree .SelectExpressionList |
CascadeStyle | 1 type | no member | 3min 0s | High | NHibernate.Engine.CascadeStyle |
![]() | Rule Violated: Class shouldn't be too deep in inheritance tree |
• How to Fix Issues of this Rule: In Object-Oriented Programming, a well-known motto is Favor Composition over Inheritance. This is because inheritance comes with pitfalls. In general, the implementation of a derived class is very bound up with the base class implementation. Also a base class exposes implementation details to its derived classes, that's why it's often said that inheritance breaks encapsulation. On the other hands, Composition favors binding with interfaces over binding with implementations. Hence, not only the encapsulation is preserved, but the design is clearer, because interfaces make it explicit and less coupled. Hence, to break a long inheritance chain, Composition is often a powerful way to enhance the design of the refactored underlying logic. You can also read: http://en.wikipedia.org/wiki/Composition_over_inheritance and http://stackoverflow.com/questions/49002/prefer-composition-over-inheritance The estimated Debt, which means the effort to fix such issue, depends linearly upon the depth of inheritance.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1202:ClassShouldntBeTooDeepInInheritanceTree", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
161 types matched
- The following list of types is truncated and contains only the first 100 types of the 161 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
161 types | baseClasses | Depth of inheritance | Debt | Severity | Full Name |
---|---|---|---|---|---|
Oracle12cDialect![]() | 4 types | 5 | 6min | Medium | NHibernate.Dialect.Oracle12cDialect |
CollectionFilterImpl![]() | 3 types | 4 | 3min 0s | Medium | NHibernate.Impl.CollectionFilterImpl |
ResultVariableRefNode![]() | 3 types | 4 | 3min 0s | Medium | NHibernate.Hql.Ast.ANTLR.Tree .ResultVariableRefNode |
EnumStringType<T> | 6 types | 7 | 12min | Medium | NHibernate.Type.EnumStringType<T> |
EnumType<T> | 6 types | 7 | 12min | Medium | NHibernate.Type.EnumType<T> |
TrueFalseType | 6 types | 7 | 12min | Medium | NHibernate.Type.TrueFalseType |
YesNoType | 6 types | 7 | 12min | Medium | NHibernate.Type.YesNoType |
LocalDateTimeType | 6 types | 7 | 12min | Medium | NHibernate.Type.LocalDateTimeType |
UtcDateTimeType | 6 types | 7 | 12min | Medium | NHibernate.Type.UtcDateTimeType |
BinaryBlobType | 5 types | 6 | 9min | Medium | NHibernate.Type.BinaryBlobType |
CharBooleanType | 5 types | 6 | 9min | Medium | NHibernate.Type.CharBooleanType |
CharType | 5 types | 6 | 9min | Medium | NHibernate.Type.CharType |
EnumStringType | 5 types | 6 | 9min | Medium | NHibernate.Type.EnumStringType |
PersistentEnumType | 5 types | 6 | 9min | Medium | NHibernate.Type.PersistentEnumType |
StringClobType | 5 types | 6 | 9min | Medium | NHibernate.Type.StringClobType |
AbstractDateTimeSpecificKindType | 5 types | 6 | 9min | Medium | NHibernate.Type .AbstractDateTimeSpecificKindType |
DbTimestampType | 5 types | 6 | 9min | Medium | NHibernate.Type.DbTimestampType |
AnsiCharType | 5 types | 6 | 9min | Medium | NHibernate.Type.AnsiCharType |
CurrencyType | 5 types | 6 | 9min | Medium | NHibernate.Type.CurrencyType |
DateTime2Type | 5 types | 6 | 9min | Medium | NHibernate.Type.DateTime2Type |
EnumCharType<T> | 5 types | 6 | 9min | Medium | NHibernate.Type.EnumCharType<T> |
SubselectCollectionLoader | 5 types | 6 | 9min | Medium | NHibernate.Loader.Collection .SubselectCollectionLoader |
SubselectOneToManyLoader | 5 types | 6 | 9min | Medium | NHibernate.Loader.Collection .SubselectOneToManyLoader |
UpdateStatement | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .UpdateStatement |
BooleanLiteralNode | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .BooleanLiteralNode |
CollectionFunction | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .CollectionFunction |
DeleteStatement | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .DeleteStatement |
DotNode | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree.DotNode |
IdentNode | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree.IdentNode |
IndexNode | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree.IndexNode |
IsNotNullLogicOperatorNode | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .IsNotNullLogicOperatorNode |
IsNullLogicOperatorNode | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .IsNullLogicOperatorNode |
QueryNode | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree.QueryNode |
SelectExpressionImpl | 5 types | 6 | 9min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .SelectExpressionImpl |
AnsiStringType | 4 types | 5 | 6min | Medium | NHibernate.Type.AnsiStringType |
BinaryType | 4 types | 5 | 6min | Medium | NHibernate.Type.BinaryType |
BooleanType | 4 types | 5 | 6min | Medium | NHibernate.Type.BooleanType |
ByteType | 4 types | 5 | 6min | Medium | NHibernate.Type.ByteType |
DateTimeType | 4 types | 5 | 6min | Medium | NHibernate.Type.DateTimeType |
DateType | 4 types | 5 | 6min | Medium | NHibernate.Type.DateType |
DecimalType | 4 types | 5 | 6min | Medium | NHibernate.Type.DecimalType |
DoubleType | 4 types | 5 | 6min | Medium | NHibernate.Type.DoubleType |
GuidType | 4 types | 5 | 6min | Medium | NHibernate.Type.GuidType |
Int16Type | 4 types | 5 | 6min | Medium | NHibernate.Type.Int16Type |
Int32Type | 4 types | 5 | 6min | Medium | NHibernate.Type.Int32Type |
Int64Type | 4 types | 5 | 6min | Medium | NHibernate.Type.Int64Type |
SByteType | 4 types | 5 | 6min | Medium | NHibernate.Type.SByteType |
SingleType | 4 types | 5 | 6min | Medium | NHibernate.Type.SingleType |
StringType | 4 types | 5 | 6min | Medium | NHibernate.Type.StringType |
TicksType | 4 types | 5 | 6min | Medium | NHibernate.Type.TicksType |
TimeSpanType | 4 types | 5 | 6min | Medium | NHibernate.Type.TimeSpanType |
TimestampType | 4 types | 5 | 6min | Medium | NHibernate.Type.TimestampType |
TimeType | 4 types | 5 | 6min | Medium | NHibernate.Type.TimeType |
UInt16Type | 4 types | 5 | 6min | Medium | NHibernate.Type.UInt16Type |
UInt32Type | 4 types | 5 | 6min | Medium | NHibernate.Type.UInt32Type |
UInt64Type | 4 types | 5 | 6min | Medium | NHibernate.Type.UInt64Type |
AbstractEnumType | 4 types | 5 | 6min | Medium | NHibernate.Type.AbstractEnumType |
AbstractCharType | 4 types | 5 | 6min | Medium | NHibernate.Type.AbstractCharType |
TimeAsTimeSpanType | 4 types | 5 | 6min | Medium | NHibernate.Type.TimeAsTimeSpanType |
DateTimeOffsetType | 4 types | 5 | 6min | Medium | NHibernate.Type.DateTimeOffsetType |
PrimitiveArray | 4 types | 5 | 6min | Medium | NHibernate.Mapping.PrimitiveArray |
BasicCollectionLoader | 4 types | 5 | 6min | Medium | NHibernate.Loader.Collection .BasicCollectionLoader |
OneToManyLoader | 4 types | 5 | 6min | Medium | NHibernate.Loader.Collection .OneToManyLoader |
CascadeEntityLoader | 4 types | 5 | 6min | Medium | NHibernate.Loader.Entity .CascadeEntityLoader |
EntityLoader | 4 types | 5 | 6min | Medium | NHibernate.Loader.Entity.EntityLoader |
ComponentJoin | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .ComponentJoin |
InsertStatement | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .InsertStatement |
AbstractNullnessCheckNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .AbstractNullnessCheckNode |
AbstractRestrictableStatement | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .AbstractRestrictableStatement |
AggregateNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .AggregateNode |
BinaryArithmeticOperatorNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .BinaryArithmeticOperatorNode |
Case2Node | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree.Case2Node |
CaseNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree.CaseNode |
ConstructorNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .ConstructorNode |
CountNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree.CountNode |
FromReferenceNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .FromReferenceNode |
ImpliedFromElement | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .ImpliedFromElement |
InLogicOperatorNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .InLogicOperatorNode |
LiteralNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .LiteralNode |
MethodNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree.MethodNode |
SelectClause | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .SelectClause |
UnaryArithmeticNode | 4 types | 5 | 6min | Medium | NHibernate.Hql.Ast.ANTLR.Tree .UnaryArithmeticNode |
MsSql2012Dialect | 4 types | 5 | 6min | Medium | NHibernate.Dialect.MsSql2012Dialect |
MsSqlAzure2008Dialect | 4 types | 5 | 6min | Medium | NHibernate.Dialect.MsSqlAzure2008Dialect |
MySQL55InnoDBDialect | 4 types | 5 | 6min | Medium | NHibernate.Dialect.MySQL55InnoDBDialect |
CultureInfoType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.CultureInfoType |
SerializableType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.SerializableType |
TypeType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.TypeType |
PrimitiveType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.PrimitiveType |
UriType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.UriType |
XDocType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.XDocType |
XmlDocType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.XmlDocType |
AbstractBinaryType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.AbstractBinaryType |
AbstractStringType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.AbstractStringType |
GenericOrderedSetType<T> | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.GenericOrderedSetType<T> |
GenericSortedDictionaryType<TKey,TValue> | 3 types | 4 | 3min 0s | Medium | NHibernate.Type .GenericSortedDictionaryType<TKey,TValue > |
GenericSortedListType<TKey,TValue> | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.GenericSortedListType <TKey,TValue> |
GenericSortedSetType<T> | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.GenericSortedSetType<T> |
SpecialOneToOneType | 3 types | 4 | 3min 0s | Medium | NHibernate.Type.SpecialOneToOneType |
Array | 3 types | 4 | 3min 0s | Medium | NHibernate.Mapping.Array |
![]() | Rule Violated: Class with no descendant should be sealed if possible |
• How to Fix Issues of this Rule: For each matched class, take the time to assess if it is really meant to be subclassed. Certainly most matched class will end up being declared as sealed.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1203:ClassWithNoDescendantShouldBeSealedIfPossible", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
226 types matched
- The following list of types is truncated and contains only the first 100 types of the 226 types matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
226 types | # lines of code (LOC) | Debt | Severity | Full Name |
---|---|---|---|---|
ActionQueue+InsertActionSorter![]() | 45 | 0min 30s | Medium | NHibernate.Engine .ActionQueue+InsertActionSorter |
BackTrackCacheParameterList![]() | 43 | 0min 30s | Medium | NHibernate.SqlCommand .BackTrackCacheParameterList |
MemberExpressionJoinDetector![]() | 36 | 0min 30s | Medium | NHibernate.Linq.Visitors .MemberExpressionJoinDetector |
JoinedEnumerable+JoinedEnumerator![]() | 31 | 0min 30s | Medium | NHibernate.Util .JoinedEnumerable+JoinedEnumerator |
SetSnapShot<T>![]() | 25 | 0min 30s | Medium | NHibernate.Collection.Generic.SetHelpers .SetSnapShot<T> |
GroupKeyNominator![]() | 23 | 0min 30s | Medium | NHibernate.Linq.GroupBy .GroupKeyNominator |
SimplifyConditionalVisitor![]() | 18 | 0min 30s | Medium | NHibernate.Linq.Visitors .SimplifyConditionalVisitor |
PersistentIdentifierBag<T >+SnapshotElement![]() | 17 | 0min 30s | Medium | NHibernate.Collection.Generic .PersistentIdentifierBag<T >+SnapshotElement |
AbstractEntityPersister+PropertyKey![]() | 10 | 0min 30s | Medium | NHibernate.Persister.Entity .AbstractEntityPersister+PropertyKey |
SqlTranslator![]() | 9 | 0min 30s | Medium | NHibernate.Impl.SqlTranslator |
ModelMapper+TypeHierarchyComparer![]() | 7 | 0min 30s | Medium | NHibernate.Mapping.ByCode .ModelMapper+TypeHierarchyComparer |
HqlTranslatorWrapper![]() | 6 | 0min 30s | Medium | NHibernate.Impl.HqlTranslatorWrapper |
NhNominatedExpression![]() | 6 | 0min 30s | Medium | NHibernate.Linq.Expressions .NhNominatedExpression |
KeySelectorVisitor![]() | 5 | 0min 30s | Medium | NHibernate.Linq.GroupBy .KeySelectorVisitor |
SqlGenerator+BitwiseOpWriter![]() | 5 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR .SqlGenerator+BitwiseOpWriter |
BasicFormatter+FormatProcess | 173 | 0min 30s | Medium | NHibernate.AdoNet.Util .BasicFormatter+FormatProcess |
MsSqlSelectParser | 156 | 0min 30s | Medium | NHibernate.SqlCommand.Parser .MsSqlSelectParser |
WhereJoinDetector | 149 | 0min 30s | Medium | NHibernate.Linq.Visitors .WhereJoinDetector |
DefaultMethodEmitter | 101 | 0min 30s | Medium | NHibernate.Proxy.DynamicProxy .DefaultMethodEmitter |
MsSql2005DialectQueryPager | 67 | 0min 30s | Medium | NHibernate.Dialect .MsSql2005DialectQueryPager |
DefaultyProxyMethodBuilder | 63 | 0min 30s | Medium | NHibernate.Proxy.DynamicProxy .DefaultyProxyMethodBuilder |
TopologicalSorter | 57 | 0min 30s | Medium | NHibernate.Loader.TopologicalSorter |
DynamicFilterParameterSpecification+Coll ectionOfValuesType | 54 | 0min 30s | Medium | NHibernate.Param .DynamicFilterParameterSpecification+Col lectionOfValuesType |
SelectClauseHqlNominator | 54 | 0min 30s | Medium | NHibernate.Linq.Visitors .SelectClauseHqlNominator |
ModelMapper+ComponentRelationMapper | 53 | 0min 30s | Medium | NHibernate.Mapping.ByCode .ModelMapper+ComponentRelationMapper |
GroupBySelectClauseRewriter | 50 | 0min 30s | Medium | NHibernate.Linq.GroupBy .GroupBySelectClauseRewriter |
NDataReader+NResult | 45 | 0min 30s | Medium | NHibernate.Driver.NDataReader+NResult |
ExpressionQueryImpl | 44 | 0min 30s | Medium | NHibernate.Impl.ExpressionQueryImpl |
SeparatorLineReader | 44 | 0min 30s | Medium | NHibernate.Tool.hbm2ddl .SeparatorLineReader |
MultipleQueriesCacheAssembler | 42 | 0min 30s | Medium | NHibernate.Impl .MultipleQueriesCacheAssembler |
ParameterExpander | 38 | 0min 30s | Medium | NHibernate.Impl.ParameterExpander |
MergeAggregatingResultsInExpressionRewri ter | 35 | 0min 30s | Medium | NHibernate.Linq.ReWriters .MergeAggregatingResultsInExpressionRewr iter |
DefaultArgumentHandler | 34 | 0min 30s | Medium | NHibernate.Proxy.DynamicProxy .DefaultArgumentHandler |
SimpleModelInspector+MixinDeclaredModel | 34 | 0min 30s | Medium | NHibernate.Mapping.ByCode .SimpleModelInspector+MixinDeclaredModel |
ReflectionBasedSqlStateExtracter | 32 | 0min 30s | Medium | NHibernate.Exceptions .ReflectionBasedSqlStateExtracter |
PolymorphicQuerySourceDetector | 32 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR .PolymorphicQuerySourceDetector |
JoinedEnumerable<T>+JoinedEnumerator | 31 | 0min 30s | Medium | NHibernate.Util.JoinedEnumerable<T >+JoinedEnumerator |
ModelMapper+KeyComponentRelationMapper | 31 | 0min 30s | Medium | NHibernate.Mapping.ByCode .ModelMapper+KeyComponentRelationMapper |
ErrorCounter | 31 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR.ErrorCounter |
ActionQueue+AfterTransactionCompletionPr ocessQueue | 30 | 0min 30s | Medium | NHibernate.Engine .ActionQueue+AfterTransactionCompletionP rocessQueue |
FluentSessionFactoryConfiguration | 30 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .FluentSessionFactoryConfiguration |
DbIntegrationConfiguration | 28 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .DbIntegrationConfiguration |
GroupJoinAggregateDetectionVisitor | 27 | 0min 30s | Medium | NHibernate.Linq.GroupJoin .GroupJoinAggregateDetectionVisitor |
SimplifyCompareTransformer | 27 | 0min 30s | Medium | NHibernate.Linq.ExpressionTransformers .SimplifyCompareTransformer |
WhereJoinDetector+ExpressionValues | 27 | 0min 30s | Medium | NHibernate.Linq.Visitors .WhereJoinDetector+ExpressionValues |
QueryPlanCache+HQLQueryPlanKey | 27 | 0min 30s | Medium | NHibernate.Engine.Query .QueryPlanCache+HQLQueryPlanKey |
NamedQueryDefinitionBuilder | 27 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .NamedQueryDefinitionBuilder |
WithClauseVisitor | 26 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR .WithClauseVisitor |
AuxiliaryDatabaseObjectFactory | 26 | 0min 30s | Medium | NHibernate.Cfg.XmlHbmBinding .AuxiliaryDatabaseObjectFactory |
QueryPlanCache+FilterQueryPlanKey | 25 | 0min 30s | Medium | NHibernate.Engine.Query .QueryPlanCache+FilterQueryPlanKey |
StringTokenizer+StringTokenizerEnumerato r | 24 | 0min 30s | Medium | NHibernate.Util .StringTokenizer+StringTokenizerEnumerat or |
DbIntegrationConfigurationProperties | 24 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .DbIntegrationConfigurationProperties |
Tuple | 23 | 0min 30s | Medium | NHibernate.Linq.NestedSelects.Tuple |
SequencedHashMap+OrderedEnumerator | 22 | 0min 30s | Medium | NHibernate.Util .SequencedHashMap+OrderedEnumerator |
LinkedHashMap<TKey,TValue>+KeyCollection | 21 | 0min 30s | Medium | NHibernate.Util.LinkedHashMap<TKey ,TValue>+KeyCollection |
LinkedHashMap<TKey,TValue >+ValuesCollection | 21 | 0min 30s | Medium | NHibernate.Util.LinkedHashMap<TKey ,TValue>+ValuesCollection |
SequencedHashMap+Entry | 20 | 0min 30s | Medium | NHibernate.Util.SequencedHashMap+Entry |
ProxyImplementor | 20 | 0min 30s | Medium | NHibernate.Proxy.DynamicProxy .ProxyImplementor |
ModelMapper+OneToManyRelationMapper | 20 | 0min 30s | Medium | NHibernate.Mapping.ByCode .ModelMapper+OneToManyRelationMapper |
MsSqlSelectParser+ColumnDefinition | 19 | 0min 30s | Medium | NHibernate.SqlCommand.Parser .MsSqlSelectParser+ColumnDefinition |
NestedSelectDetector | 19 | 0min 30s | Medium | NHibernate.Linq.NestedSelects .NestedSelectDetector |
ActionQueue+BeforeTransactionCompletionP rocessQueue | 18 | 0min 30s | Medium | NHibernate.Engine .ActionQueue+BeforeTransactionCompletion ProcessQueue |
CascadingAction+PersistOnFlushCascadingA ction | 18 | 0min 30s | Medium | NHibernate.Engine .CascadingAction+PersistOnFlushCascading Action |
SequenceStructure+SequenceAccessCallback | 17 | 0min 30s | Medium | NHibernate.Id.Enhanced .SequenceStructure+SequenceAccessCallbac k |
CollectionHelper+EmptyMapClass | 16 | 0min 30s | Medium | NHibernate.Util .CollectionHelper+EmptyMapClass |
SelectClauseRewriter | 16 | 0min 30s | Medium | NHibernate.Linq.NestedSelects .SelectClauseRewriter |
PagingRewriterSelectClauseVisitor | 16 | 0min 30s | Medium | NHibernate.Linq.Visitors .PagingRewriterSelectClauseVisitor |
HqlSqlTranslator | 16 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR .HqlSqlTranslator |
Configuration+Mapping | 16 | 0min 30s | Medium | NHibernate.Cfg.Configuration+Mapping |
XmlSchemas | 16 | 0min 30s | Medium | NHibernate.Cfg.XmlSchemas |
ConnectionConfiguration | 16 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .ConnectionConfiguration |
EntityCacheConfigurationProperties <TEntity> | 16 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .EntityCacheConfigurationProperties <TEntity> |
CollectionHelper+EmptyListClass | 15 | 0min 30s | Medium | NHibernate.Util .CollectionHelper+EmptyListClass |
FutureValue<T> | 15 | 0min 30s | Medium | NHibernate.Impl.FutureValue<T> |
CompareGenerator | 15 | 0min 30s | Medium | NHibernate.Linq.Functions .CompareGenerator |
HqlParseEngine+ConstantConverter | 15 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR .HqlParseEngine+ConstantConverter |
HqlSqlGenerator | 15 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR.HqlSqlGenerator |
AbstractStatementExecutor+TmpIdTableCrea tionIsolatedWork | 15 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR.Exec .AbstractStatementExecutor+TmpIdTableCre ationIsolatedWork |
AbstractStatementExecutor+TmpIdTableDrop IsolatedWork | 15 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR.Exec .AbstractStatementExecutor+TmpIdTableDro pIsolatedWork |
CacheConfiguration | 15 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .CacheConfiguration |
CommandsConfiguration | 15 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .CommandsConfiguration |
DelayedEnumerator<T> | 14 | 0min 30s | Medium | NHibernate.Impl.DelayedEnumerator<T> |
Table+ForeignKeyKey | 14 | 0min 30s | Medium | NHibernate.Mapping.Table+ForeignKeyKey |
ResultOperatorRewriter+ResultOperatorExp ressionRewriter | 14 | 0min 30s | Medium | NHibernate.Linq.ReWriters .ResultOperatorRewriter+ResultOperatorEx pressionRewriter |
SqlGenerator+QueryWriter | 14 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR .SqlGenerator+QueryWriter |
SumQueryFunctionInfo | 14 | 0min 30s | Medium | NHibernate.Dialect.Function .SumQueryFunctionInfo |
ParameterDetector | 13 | 0min 30s | Medium | NHibernate.Impl.ParameterDetector |
QuerySourceUsageLocator | 13 | 0min 30s | Medium | NHibernate.Linq.Visitors .QuerySourceUsageLocator |
SequencedHashMap+KeyCollection | 12 | 0min 30s | Medium | NHibernate.Util .SequencedHashMap+KeyCollection |
SequencedHashMap+ValuesCollection | 12 | 0min 30s | Medium | NHibernate.Util .SequencedHashMap+ValuesCollection |
ExpandedQueryExpression | 12 | 0min 30s | Medium | NHibernate.Impl.ExpandedQueryExpression |
JoinProcessor+JoinSequenceSelector | 12 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR.Util .JoinProcessor+JoinSequenceSelector |
CacheConfigurationProperties | 12 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .CacheConfigurationProperties |
TimeoutResultOperator | 10 | 0min 30s | Medium | NHibernate.Linq.TimeoutResultOperator |
SqlGenerator+FunctionArguments | 10 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR .SqlGenerator+FunctionArguments |
QuerySourceDetector | 10 | 0min 30s | Medium | NHibernate.Hql.Ast.ANTLR .QuerySourceDetector |
FirebirdDialect+PositionFunction | 10 | 0min 30s | Medium | NHibernate.Dialect .FirebirdDialect+PositionFunction |
Oracle8iDialect+LocateFunction | 10 | 0min 30s | Medium | NHibernate.Dialect .Oracle8iDialect+LocateFunction |
DbSchemaIntegrationConfiguration | 10 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .DbSchemaIntegrationConfiguration |
BatcherConfiguration | 10 | 0min 30s | Medium | NHibernate.Cfg.Loquacious .BatcherConfiguration |
![]() | Rule Violated: Overrides of Method() should call base.Method() |
• How to Fix Issues of this Rule: You should investigate if inheritance is the right choice to bind the base class implementation with the derived classes implementations. Does presenting the method with polymorphic behavior through an interface, would be a better design choice? In such situation, often using the design pattern template method http://en.wikipedia.org/wiki/Template_method_pattern might help improving the design.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1204:OverridesOfMethodShouldCallBaseMethod", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
353 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 353 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
353 methods | shouldCall | definedInBaseClass | Debt | Severity | Full Name |
---|---|---|---|---|---|
IsLogicalOneToOne()![]() | IsLogicalOneToOne() | EntityType | 5min | Medium | NHibernate.Type.ManyToOneType .IsLogicalOneToOne() |
Clear(Object)![]() | Clear(Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericIdentifierBagType <T>.Clear(Object) |
Clear(Object)![]() | Clear(Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericSetType<T>.Clear (Object) |
Clear(Object)![]() | Clear(Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericListType<T>.Clear (Object) |
Clear(Object)![]() | Clear(Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericMapType<TKey ,TValue>.Clear(Object) |
Add(Object,Object)![]() | Add(Object,Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericIdentifierBagType <T>.Add(Object,Object) |
Add(Object,Object)![]() | Add(Object,Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericSetType<T>.Add (Object,Object) |
Add(Object,Object)![]() | Add(Object,Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericListType<T>.Add (Object,Object) |
GetElementsIterator(Object)![]() | GetElementsIterator(Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericMapType<TKey ,TValue>.GetElementsIterator(Object) |
IndexOf(Object,Object)![]() | IndexOf(Object,Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericListType<T> .IndexOf(Object,Object) |
IndexOf(Object,Object)![]() | IndexOf(Object,Object) | CollectionType | 5min | Medium | NHibernate.Type.GenericMapType<TKey ,TValue>.IndexOf(Object,Object) |
GenerateTableAliasForKeyColumns(String)![]() | GenerateTableAliasForKeyColumns(String) | AbstractCollectionPersister | 5min | Medium | NHibernate.Persister.Collection .OneToManyPersister .GenerateTableAliasForKeyColumns(String) |
GetIdentifierType(Int32)![]() | GetIdentifierType(Int32) | AbstractEntityPersister | 5min | Medium | NHibernate.Persister.Entity .SingleTableEntityPersister .GetIdentifierType(Int32) |
GetJoinTableId(Int32,Object[])![]() | GetJoinTableId(Int32,Object[]) | AbstractEntityPersister | 5min | Medium | NHibernate.Persister.Entity .SingleTableEntityPersister .GetJoinTableId(Int32,Object[]) |
GetJoinTableId(Int32,Object,EntityMode)![]() | GetJoinTableId(Int32,Object,EntityMode) | AbstractEntityPersister | 5min | Medium | NHibernate.Persister.Entity .SingleTableEntityPersister .GetJoinTableId(Int32,Object,EntityMode) |
GetRefIdColumnOfTable(Int32)![]() | GetRefIdColumnOfTable(Int32) | AbstractEntityPersister | 5min | Medium | NHibernate.Persister.Entity .SingleTableEntityPersister .GetRefIdColumnOfTable(Int32) |
IsIdOfTable(Int32,Int32)![]() | IsIdOfTable(Int32,Int32) | AbstractEntityPersister | 5min | Medium | NHibernate.Persister.Entity .SingleTableEntityPersister.IsIdOfTable (Int32,Int32) |
ResolveResultTransformer (IResultTransformer)![]() | ResolveResultTransformer(IResultTransformer) | Loader | 5min | Medium | NHibernate.Loader.Custom.CustomLoader .ResolveResultTransformer (IResultTransformer) |
SaveWithGeneratedOrRequestedId (SaveOrUpdateEvent)![]() | SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent) | DefaultSaveOrUpdateEventListener | 5min | Medium | NHibernate.Event.Default .DefaultUpdateEventListener .SaveWithGeneratedOrRequestedId (SaveOrUpdateEvent) |
PerformTemporaryTableDDLInIsolation()![]() | PerformTemporaryTableDDLInIsolation() | Dialect | 5min | Medium | NHibernate.Dialect.FirebirdDialect .PerformTemporaryTableDDLInIsolation() |
DropTemporaryTableAfterUse()![]() | DropTemporaryTableAfterUse() | Dialect | 5min | Medium | NHibernate.Dialect.FirebirdDialect .DropTemporaryTableAfterUse() |
NeedsRecreate(ICollectionPersister)![]() | NeedsRecreate(ICollectionPersister) | AbstractPersistentCollection | 5min | Medium | NHibernate.Collection.Generic .PersistentGenericBag<T>.NeedsRecreate (ICollectionPersister) |
PreInsert(ICollectionPersister)![]() | PreInsert(ICollectionPersister) | AbstractPersistentCollection | 5min | Medium | NHibernate.Collection.Generic .PersistentIdentifierBag<T>.PreInsert (ICollectionPersister) |
AfterRowInsert(ICollectionPersister ,Object,Int32,Object)![]() | AfterRowInsert(ICollectionPersister,Object,Int32,Object) | AbstractPersistentCollection | 5min | Medium | NHibernate.Collection.Generic .PersistentIdentifierBag<T> .AfterRowInsert(ICollectionPersister ,Object,Int32,Object) |
GetIdentifier(Object,Int32)![]() | GetIdentifier(Object,Int32) | AbstractPersistentCollection | 5min | Medium | NHibernate.Collection.Generic .PersistentIdentifierBag<T> .GetIdentifier(Object,Int32) |
CompareTo(CollectionAction) | CompareTo(CollectionAction) | CollectionAction | 5min | Medium | NHibernate.Action.CollectionRemoveAction .CompareTo(CollectionAction) |
AfterTransactionCompletionProcessImpl (Boolean) | AfterTransactionCompletionProcessImpl(Boolean) | EntityAction | 5min | Medium | NHibernate.Action.EntityDeleteAction .AfterTransactionCompletionProcessImpl (Boolean) |
AfterTransactionCompletionProcessImpl (Boolean) | AfterTransactionCompletionProcessImpl(Boolean) | EntityAction | 5min | Medium | NHibernate.Action .EntityIdentityInsertAction .AfterTransactionCompletionProcessImpl (Boolean) |
AfterTransactionCompletionProcessImpl (Boolean) | AfterTransactionCompletionProcessImpl(Boolean) | EntityAction | 5min | Medium | NHibernate.Action.EntityInsertAction .AfterTransactionCompletionProcessImpl (Boolean) |
AfterTransactionCompletionProcessImpl (Boolean) | AfterTransactionCompletionProcessImpl(Boolean) | EntityAction | 5min | Medium | NHibernate.Action.EntityUpdateAction .AfterTransactionCompletionProcessImpl (Boolean) |
CompareTo(EntityAction) | CompareTo(EntityAction) | EntityAction | 5min | Medium | NHibernate.Action.EntityDeleteAction .CompareTo(EntityAction) |
CompareTo(EntityAction) | CompareTo(EntityAction) | EntityAction | 5min | Medium | NHibernate.Action.EntityInsertAction .CompareTo(EntityAction) |
Add(Object,Object) | Add(Object,Object) | SequencedHashMap | 5min | Medium | NHibernate.Util.LRUMap.Add(Object,Object ) |
Disassemble(Object,ISessionImplementor ,Object) | Disassemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType .Disassemble(Object,ISessionImplementor ,Object) |
Disassemble(Object,ISessionImplementor ,Object) | Disassemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CompositeCustomType .Disassemble(Object,ISessionImplementor ,Object) |
Disassemble(Object,ISessionImplementor ,Object) | Disassemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CustomType.Disassemble (Object,ISessionImplementor,Object) |
Disassemble(Object,ISessionImplementor ,Object) | Disassemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.AnyType.Disassemble (Object,ISessionImplementor,Object) |
Disassemble(Object,ISessionImplementor ,Object) | Disassemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType .Disassemble(Object,ISessionImplementor ,Object) |
Assemble(Object,ISessionImplementor ,Object) | Assemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.Assemble (Object,ISessionImplementor,Object) |
Assemble(Object,ISessionImplementor ,Object) | Assemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CompositeCustomType .Assemble(Object,ISessionImplementor ,Object) |
Assemble(Object,ISessionImplementor ,Object) | Assemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CustomType.Assemble (Object,ISessionImplementor,Object) |
Assemble(Object,ISessionImplementor ,Object) | Assemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.AnyType.Assemble(Object ,ISessionImplementor,Object) |
Assemble(Object,ISessionImplementor ,Object) | Assemble(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType.Assemble (Object,ISessionImplementor,Object) |
IsDirty(Object,Object ,ISessionImplementor) | IsDirty(Object,Object,ISessionImplementor) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.IsDirty (Object,Object,ISessionImplementor) |
Hydrate(IDataReader,String[] ,ISessionImplementor,Object) | Hydrate(IDataReader,String[],ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.Hydrate (IDataReader,String[] ,ISessionImplementor,Object) |
Hydrate(IDataReader,String[] ,ISessionImplementor,Object) | Hydrate(IDataReader,String[],ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.EntityType.Hydrate (IDataReader,String[] ,ISessionImplementor,Object) |
Hydrate(IDataReader,String[] ,ISessionImplementor,Object) | Hydrate(IDataReader,String[],ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.AnyType.Hydrate (IDataReader,String[] ,ISessionImplementor,Object) |
Hydrate(IDataReader,String[] ,ISessionImplementor,Object) | Hydrate(IDataReader,String[],ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType.Hydrate (IDataReader,String[] ,ISessionImplementor,Object) |
ResolveIdentifier(Object ,ISessionImplementor,Object) | ResolveIdentifier(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType .ResolveIdentifier(Object ,ISessionImplementor,Object) |
ResolveIdentifier(Object ,ISessionImplementor,Object) | ResolveIdentifier(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.EntityType .ResolveIdentifier(Object ,ISessionImplementor,Object) |
ResolveIdentifier(Object ,ISessionImplementor,Object) | ResolveIdentifier(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.AnyType .ResolveIdentifier(Object ,ISessionImplementor,Object) |
ResolveIdentifier(Object ,ISessionImplementor,Object) | ResolveIdentifier(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType .ResolveIdentifier(Object ,ISessionImplementor,Object) |
SemiResolve(Object,ISessionImplementor ,Object) | SemiResolve(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType .SemiResolve(Object,ISessionImplementor ,Object) |
SemiResolve(Object,ISessionImplementor ,Object) | SemiResolve(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.AnyType.SemiResolve (Object,ISessionImplementor,Object) |
SemiResolve(Object,ISessionImplementor ,Object) | SemiResolve(Object,ISessionImplementor,Object) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType .SemiResolve(Object,ISessionImplementor ,Object) |
IsModified(Object,Object,Boolean[] ,ISessionImplementor) | IsModified(Object,Object,Boolean[],ISessionImplementor) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.IsModified (Object,Object,Boolean[] ,ISessionImplementor) |
IsModified(Object,Object,Boolean[] ,ISessionImplementor) | IsModified(Object,Object,Boolean[],ISessionImplementor) | AbstractType | 5min | Medium | NHibernate.Type.AnyType.IsModified (Object,Object,Boolean[] ,ISessionImplementor) |
IsModified(Object,Object,Boolean[] ,ISessionImplementor) | IsModified(Object,Object,Boolean[],ISessionImplementor) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType .IsModified(Object,Object,Boolean[] ,ISessionImplementor) |
Replace(Object,Object ,ISessionImplementor,Object,IDictionary ,ForeignKeyDirection) | Replace(Object,Object,ISessionImplementor,Object,IDictionary,ForeignKeyDirection) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.Replace (Object,Object,ISessionImplementor ,Object,IDictionary,ForeignKeyDirection) |
IsSame(Object,Object,EntityMode) | IsSame(Object,Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.IsSame (Object,Object,EntityMode) |
IsSame(Object,Object,EntityMode) | IsSame(Object,Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.EntityType.IsSame(Object ,Object,EntityMode) |
IsSame(Object,Object,EntityMode) | IsSame(Object,Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.AnyType.IsSame(Object ,Object,EntityMode) |
IsEqual(Object,Object,EntityMode) | IsEqual(Object,Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.IsEqual (Object,Object,EntityMode) |
IsEqual(Object,Object,EntityMode) | IsEqual(Object,Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.CompositeCustomType .IsEqual(Object,Object,EntityMode) |
IsEqual(Object,Object,EntityMode) | IsEqual(Object,Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.CustomType.IsEqual (Object,Object,EntityMode) |
IsEqual(Object,Object,EntityMode) | IsEqual(Object,Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.NullableType.IsEqual (Object,Object,EntityMode) |
IsEqual(Object,Object,EntityMode) | IsEqual(Object,Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType.IsEqual (Object,Object,EntityMode) |
IsEqual(Object,Object,EntityMode ,ISessionFactoryImplementor) | IsEqual(Object,Object,EntityMode,ISessionFactoryImplementor) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.IsEqual (Object,Object,EntityMode ,ISessionFactoryImplementor) |
IsEqual(Object,Object,EntityMode ,ISessionFactoryImplementor) | IsEqual(Object,Object,EntityMode,ISessionFactoryImplementor) | AbstractType | 5min | Medium | NHibernate.Type.EntityType.IsEqual (Object,Object,EntityMode ,ISessionFactoryImplementor) |
GetHashCode(Object,EntityMode) | GetHashCode(Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType .GetHashCode(Object,EntityMode) |
GetHashCode(Object,EntityMode) | GetHashCode(Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.CustomType.GetHashCode (Object,EntityMode) |
GetHashCode(Object,EntityMode) | GetHashCode(Object,EntityMode) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType .GetHashCode(Object,EntityMode) |
GetHashCode(Object,EntityMode ,ISessionFactoryImplementor) | GetHashCode(Object,EntityMode,ISessionFactoryImplementor) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType .GetHashCode(Object,EntityMode ,ISessionFactoryImplementor) |
GetHashCode(Object,EntityMode ,ISessionFactoryImplementor) | GetHashCode(Object,EntityMode,ISessionFactoryImplementor) | AbstractType | 5min | Medium | NHibernate.Type.EntityType.GetHashCode (Object,EntityMode ,ISessionFactoryImplementor) |
Compare(Object,Object,Nullable <EntityMode>) | Compare(Object,Object,Nullable<EntityMode>) | AbstractType | 5min | Medium | NHibernate.Type.ComponentType.Compare (Object,Object,Nullable<EntityMode>) |
Compare(Object,Object,Nullable <EntityMode>) | Compare(Object,Object,Nullable<EntityMode>) | AbstractType | 5min | Medium | NHibernate.Type.EntityType.Compare (Object,Object,Nullable<EntityMode>) |
Compare(Object,Object,Nullable <EntityMode>) | Compare(Object,Object,Nullable<EntityMode>) | AbstractType | 5min | Medium | NHibernate.Type.AnyType.Compare(Object ,Object,Nullable<EntityMode>) |
Compare(Object,Object,Nullable <EntityMode>) | Compare(Object,Object,Nullable<EntityMode>) | AbstractType | 5min | Medium | NHibernate.Type.CollectionType.Compare (Object,Object,Nullable<EntityMode>) |
GetSemiResolvedType (ISessionFactoryImplementor) | GetSemiResolvedType(ISessionFactoryImplementor) | AbstractType | 5min | Medium | NHibernate.Type.EntityType .GetSemiResolvedType (ISessionFactoryImplementor) |
Get(IDataReader,Int32) | Get(IDataReader,Int32) | BooleanType | 5min | Medium | NHibernate.Type.CharBooleanType.Get (IDataReader,Int32) |
Get(IDataReader,String) | Get(IDataReader,String) | BooleanType | 5min | Medium | NHibernate.Type.CharBooleanType.Get (IDataReader,String) |
Set(IDbCommand,Object,Int32) | Set(IDbCommand,Object,Int32) | BooleanType | 5min | Medium | NHibernate.Type.CharBooleanType.Set (IDbCommand,Object,Int32) |
ObjectToSQLString(Object,Dialect) | ObjectToSQLString(Object,Dialect) | BooleanType | 5min | Medium | NHibernate.Type.CharBooleanType .ObjectToSQLString(Object,Dialect) |
StringToObject(String) | StringToObject(String) | BooleanType | 5min | Medium | NHibernate.Type.CharBooleanType .StringToObject(String) |
Get(IDataReader,Int32) | Get(IDataReader,Int32) | DateTimeType | 5min | Medium | NHibernate.Type .AbstractDateTimeSpecificKindType.Get (IDataReader,Int32) |
Get(IDataReader,Int32) | Get(IDataReader,Int32) | DateTimeType | 5min | Medium | NHibernate.Type.DateTime2Type.Get (IDataReader,Int32) |
Set(IDbCommand,Object,Int32) | Set(IDbCommand,Object,Int32) | DateTimeType | 5min | Medium | NHibernate.Type .AbstractDateTimeSpecificKindType.Set (IDbCommand,Object,Int32) |
Set(IDbCommand,Object,Int32) | Set(IDbCommand,Object,Int32) | DateTimeType | 5min | Medium | NHibernate.Type.DateTime2Type.Set (IDbCommand,Object,Int32) |
Next(Object,ISessionImplementor) | Next(Object,ISessionImplementor) | DateTimeType | 5min | Medium | NHibernate.Type.DateTime2Type.Next (Object,ISessionImplementor) |
Seed(ISessionImplementor) | Seed(ISessionImplementor) | DateTimeType | 5min | Medium | NHibernate.Type.DateTime2Type.Seed (ISessionImplementor) |
IsEqual(Object,Object) | IsEqual(Object,Object) | DateTimeType | 5min | Medium | NHibernate.Type.DateTime2Type.IsEqual (Object,Object) |
FromStringValue(String) | FromStringValue(String) | DateTimeType | 5min | Medium | NHibernate.Type .AbstractDateTimeSpecificKindType .FromStringValue(String) |
IsNull(Object,ISessionImplementor) | IsNull(Object,ISessionImplementor) | EntityType | 5min | Medium | NHibernate.Type.OneToOneType.IsNull (Object,ISessionImplementor) |
GetColumnSpan(IMapping) | GetColumnSpan(IMapping) | OneToOneType | 5min | Medium | NHibernate.Type.SpecialOneToOneType .GetColumnSpan(IMapping) |
SqlTypes(IMapping) | SqlTypes(IMapping) | OneToOneType | 5min | Medium | NHibernate.Type.SpecialOneToOneType .SqlTypes(IMapping) |
Hydrate(IDataReader,String[] ,ISessionImplementor,Object) | Hydrate(IDataReader,String[],ISessionImplementor,Object) | OneToOneType | 5min | Medium | NHibernate.Type.SpecialOneToOneType .Hydrate(IDataReader,String[] ,ISessionImplementor,Object) |
ToString(Object) | ToString(Object) | PrimitiveType | 5min | Medium | NHibernate.Type.DateTimeType.ToString (Object) |
ToString(Object) | ToString(Object) | PrimitiveType | 5min | Medium | NHibernate.Type.DateType.ToString(Object ) |
ToString(Object) | ToString(Object) | PrimitiveType | 5min | Medium | NHibernate.Type.TicksType.ToString (Object) |
ToString(Object) | ToString(Object) | PrimitiveType | 5min | Medium | NHibernate.Type.TimeSpanType.ToString (Object) |
![]() | Rule Violated: A stateless class or structure might be turned into a static type |
• How to Fix Issues of this Rule: Declare all methods as static and transform the class or structure into a static class. By default issues of this rule have a Low severity because they reflect more an advice than a problem.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1206:AStatelessClassOrStructureMightBeTurnedIntoAStaticType", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
28 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
28 types | methodsUsingMe | Debt | Severity | Full Name |
---|---|---|---|---|
ADOExceptionReporter | 4 methods | 5min | Low | NHibernate.Util.ADOExceptionReporter |
SerializationHelper | no method | 1min 0s | Low | NHibernate.Util.SerializationHelper |
TypeFactory | 34 methods | 35min | Low | NHibernate.Type.TypeFactory |
PropertyFactory | 2 methods | 3min 0s | Low | NHibernate.Tuple.PropertyFactory |
ProxyDummy | no method | 1min 0s | Low | NHibernate.Proxy.DynamicProxy.ProxyDummy |
CollectionPropertyNames | no method | 1min 0s | Low | NHibernate.Persister.Collection .CollectionPropertyNames |
PropertyToField | 6 methods | 7min | Low | NHibernate.Mapping.ByCode .PropertyToField |
MoveOrderByToEndRewriter | 1 method | 2min 0s | Low | NHibernate.Linq.ReWriters .MoveOrderByToEndRewriter |
LinqToHqlGeneratorsRegistryFactory | 1 method | 2min 0s | Low | NHibernate.Linq.Functions .LinqToHqlGeneratorsRegistryFactory |
OptimizerFactory | 6 methods | 7min | Low | NHibernate.Id.Enhanced.OptimizerFactory |
CollectionSubqueryFactory | 1 method | 2min 0s | Low | NHibernate.Hql.CollectionSubqueryFactory |
NameGenerator | 5 methods | 6min | Low | NHibernate.Hql.NameGenerator |
QuerySplitter | no method | 1min 0s | Low | NHibernate.Hql.QuerySplitter |
ASTPrinter | 5 methods | 6min | Low | NHibernate.Hql.Ast.ANTLR.Util.ASTPrinter |
ColumnHelper | 12 methods | 13min | Low | NHibernate.Hql.Ast.ANTLR.Util .ColumnHelper |
RestrictionExtensions+RestrictionBetween Builder | 1 method | 2min 0s | Low | NHibernate.Criterion .RestrictionExtensions+RestrictionBetwee nBuilder |
Subqueries | 54 methods | 55min | Low | NHibernate.Criterion.Subqueries |
Versioning | 16 methods | 17min | Low | NHibernate.Engine.Versioning |
Isolater | 3 methods | 4min 0s | Low | NHibernate.Engine.Transaction.Isolater |
ParameterParser | 2 methods | 3min 0s | Low | NHibernate.Engine.Query.ParameterParser |
SettingsFactory | 2 methods | 3min 0s | Low | NHibernate.Cfg.SettingsFactory |
ClassExtractor | 1 method | 2min 0s | Low | NHibernate.Cfg.ClassExtractor |
HbmConstants | no method | 1min 0s | Low | NHibernate.Cfg.HbmConstants |
XmlSchemas | 3 methods | 4min 0s | Low | NHibernate.Cfg.XmlSchemas |
AuxiliaryDatabaseObjectFactory | 1 method | 2min 0s | Low | NHibernate.Cfg.XmlHbmBinding .AuxiliaryDatabaseObjectFactory |
FilterDefinitionFactory | 1 method | 2min 0s | Low | NHibernate.Cfg.XmlHbmBinding .FilterDefinitionFactory |
EmitUtil | 2 methods | 3min 0s | Low | NHibernate.Bytecode.EmitUtil |
Expectations | 13 methods | 14min | Low | NHibernate.AdoNet.Expectations |
![]() | Rule Violated: Non-static classes should be instantiated or turned to static |
• How to Fix Issues of this Rule: First it is important to investigate why the class is never instantiated. If the reason is the class hosts only static methods then the class can be safely declared as static. Others reasons like, the class is meant to be instantiated via reflection, or is meant to be instantiated only by client code should lead to adapt this rule code to avoid these matches.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1207:NonStaticClassesShouldBeInstantiatedOrTurnedToStatic", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
61 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
61 types | Visibility | Debt | Severity | Full Name |
---|---|---|---|---|
QuerySelect![]() | Public | 2min 0s | Medium | NHibernate.SqlCommand.QuerySelect |
Ingres9Dialect![]() | Public | 2min 0s | Medium | NHibernate.Dialect.Ingres9Dialect |
Oracle12cDialect![]() | Public | 2min 0s | Medium | NHibernate.Dialect.Oracle12cDialect |
SybaseASA9Dialect![]() | Public | 2min 0s | Medium | NHibernate.Dialect.SybaseASA9Dialect |
DictionaryProxy | Public | 2min 0s | Medium | NHibernate.DebugHelpers.DictionaryProxy |
DictionaryProxy<K,V> | Public | 2min 0s | Medium | NHibernate.DebugHelpers.DictionaryProxy <K,V> |
CollectionProxy | Public | 2min 0s | Medium | NHibernate.DebugHelpers.CollectionProxy |
CollectionProxy<T> | Public | 2min 0s | Medium | NHibernate.DebugHelpers.CollectionProxy <T> |
ValidationFailure | Public | 2min 0s | Medium | NHibernate.Classic.ValidationFailure |
ADOExceptionReporter | Public | 2min 0s | Medium | NHibernate.Util.ADOExceptionReporter |
SerializationHelper | Public | 2min 0s | Medium | NHibernate.Util.SerializationHelper |
ADOConnectionException | Public | 2min 0s | Medium | NHibernate.Exceptions .ADOConnectionException |
ConstraintViolationException | Public | 2min 0s | Medium | NHibernate.Exceptions .ConstraintViolationException |
DataException | Public | 2min 0s | Medium | NHibernate.Exceptions.DataException |
LockAcquisitionException | Public | 2min 0s | Medium | NHibernate.Exceptions .LockAcquisitionException |
SQLGrammarException | Public | 2min 0s | Medium | NHibernate.Exceptions .SQLGrammarException |
PropertyFactory | Public | 2min 0s | Medium | NHibernate.Tuple.PropertyFactory |
InvocationInfo | Public | 2min 0s | Medium | NHibernate.Proxy.DynamicProxy .InvocationInfo |
ProxyDummy | Public | 2min 0s | Medium | NHibernate.Proxy.DynamicProxy.ProxyDummy |
CollectionPropertyNames | Public | 2min 0s | Medium | NHibernate.Persister.Collection .CollectionPropertyNames |
WhereBuilder | Public | 2min 0s | Medium | NHibernate.SqlCommand.WhereBuilder |
PropertyToField | Public | 2min 0s | Medium | NHibernate.Mapping.ByCode .PropertyToField |
ConventionModelMapper | Public | 2min 0s | Medium | NHibernate.Mapping.ByCode .ConventionModelMapper |
MoveOrderByToEndRewriter | Public | 2min 0s | Medium | NHibernate.Linq.ReWriters .MoveOrderByToEndRewriter |
LinqToHqlGeneratorsRegistryFactory | Public | 2min 0s | Medium | NHibernate.Linq.Functions .LinqToHqlGeneratorsRegistryFactory |
ProcessResultOperatorReturn | Public | 2min 0s | Medium | NHibernate.Linq.Visitors .ResultOperatorProcessors .ProcessResultOperatorReturn |
OptimizerFactory | Public | 2min 0s | Medium | NHibernate.Id.Enhanced.OptimizerFactory |
CollectionSubqueryFactory | Public | 2min 0s | Medium | NHibernate.Hql.CollectionSubqueryFactory |
NameGenerator | Public | 2min 0s | Medium | NHibernate.Hql.NameGenerator |
QuerySplitter | Public | 2min 0s | Medium | NHibernate.Hql.QuerySplitter |
HqlAs | Public | 2min 0s | Medium | NHibernate.Hql.Ast.HqlAs |
ColumnHelper | Public | 2min 0s | Medium | NHibernate.Hql.Ast.ANTLR.Util .ColumnHelper |
Expression | Public | 2min 0s | Medium | NHibernate.Criterion.Expression |
RestrictionExtensions+RestrictionBetween Builder | Public | 2min 0s | Medium | NHibernate.Criterion .RestrictionExtensions+RestrictionBetwee nBuilder |
Subqueries | Public | 2min 0s | Medium | NHibernate.Criterion.Subqueries |
QueryOverSubqueryPropertyBuilder<TRoot ,TSubType> | Public | 2min 0s | Medium | NHibernate.Criterion.Lambda .QueryOverSubqueryPropertyBuilder<TRoot ,TSubType> |
IQueryOverSubqueryPropertyBuilder<TRoot ,TSubType> | Public | 2min 0s | Medium | NHibernate.Criterion.Lambda .IQueryOverSubqueryPropertyBuilder<TRoot ,TSubType> |
Versioning | Public | 2min 0s | Medium | NHibernate.Engine.Versioning |
Isolater | Public | 2min 0s | Medium | NHibernate.Engine.Transaction.Isolater |
ParameterParser | Public | 2min 0s | Medium | NHibernate.Engine.Query.ParameterParser |
MsSql2012Dialect | Public | 2min 0s | Medium | NHibernate.Dialect.MsSql2012Dialect |
MsSql7Dialect | Public | 2min 0s | Medium | NHibernate.Dialect.MsSql7Dialect |
MsSqlAzure2008Dialect | Public | 2min 0s | Medium | NHibernate.Dialect.MsSqlAzure2008Dialect |
MySQL55InnoDBDialect | Public | 2min 0s | Medium | NHibernate.Dialect.MySQL55InnoDBDialect |
MySQL5InnoDBDialect | Public | 2min 0s | Medium | NHibernate.Dialect.MySQL5InnoDBDialect |
SQLiteDialect | Public | 2min 0s | Medium | NHibernate.Dialect.SQLiteDialect |
SybaseASE15Dialect | Public | 2min 0s | Medium | NHibernate.Dialect.SybaseASE15Dialect |
SybaseSQLAnywhere12Dialect | Public | 2min 0s | Medium | NHibernate.Dialect .SybaseSQLAnywhere12Dialect |
InformixDialect1000 | Public | 2min 0s | Medium | NHibernate.Dialect.InformixDialect1000 |
MsSqlCe40Dialect | Public | 2min 0s | Medium | NHibernate.Dialect.MsSqlCe40Dialect |
OracleLiteDialect | Public | 2min 0s | Medium | NHibernate.Dialect.OracleLiteDialect |
PostgreSQL82Dialect | Public | 2min 0s | Medium | NHibernate.Dialect.PostgreSQL82Dialect |
DB2400Dialect | Public | 2min 0s | Medium | NHibernate.Dialect.DB2400Dialect |
ClassExtractor | Public | 2min 0s | Medium | NHibernate.Cfg.ClassExtractor |
ExtendsQueueEntry | Public | 2min 0s | Medium | NHibernate.Cfg.ExtendsQueueEntry |
HbmConstants | Public | 2min 0s | Medium | NHibernate.Cfg.HbmConstants |
AuxiliaryDatabaseObjectFactory | Internal | 2min 0s | Medium | NHibernate.Cfg.XmlHbmBinding .AuxiliaryDatabaseObjectFactory |
FilterDefinitionFactory | Public | 2min 0s | Medium | NHibernate.Cfg.XmlHbmBinding .FilterDefinitionFactory |
CacheException | Public | 2min 0s | Medium | NHibernate.Cache.CacheException |
EmitUtil | Public | 2min 0s | Medium | NHibernate.Bytecode.EmitUtil |
Expectations | Public | 2min 0s | Medium | NHibernate.AdoNet.Expectations |
![]() | Rule Violated: Methods should be declared static if possible |
• How to Fix Issues of this Rule: Declare matched methods as static. Since such method doesn't use any instance fields and methods of its type and base-types, you should consider if it makes sense, to move such a method to a static utility class.
• How to Suppress an Issue of this Rule: In source code, tag the concerned code element with this attribute: [SuppressMessage("NDepend", "ND1208:MethodsShouldBeDeclaredStaticIfPossible", Justification="...")] This attribute requires the compilation symbol CODE_ANALYSIS to be set on each Visual Studio project relying on it. Without CODE_ANALYSIS symbol defined, the attribute is not compiled and the issues are not suppressed.
121 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 121 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
121 methods | staticFieldsUsed | methodsCallingMe | Debt | Severity | Full Name |
---|---|---|---|---|---|
GetKeyOfOwner(Object,ISessionImplementor )![]() | no field | 4 methods | 2min 30s | Medium | NHibernate.Type.CollectionType .GetKeyOfOwner(Object ,ISessionImplementor) |
UntransformToTuple(Object,Boolean)![]() | no field | 3 methods | 2min 0s | Medium | NHibernate.Transform .PassThroughResultTransformer .UntransformToTuple(Object,Boolean) |
IsChainedFromQuerySourceReference (MemberExpression)![]() | no field | 1 method | 1min 0s | Medium | NHibernate.Linq.NestedSelects .NestedSelectDetector .IsChainedFromQuerySourceReference (MemberExpression) |
GetColumnAliases(String,Int32)![]() | no field | no method | 0min 30s | Medium | NHibernate.Criterion.SQLProjection .GetColumnAliases(String,Int32) |
get_IsSynchronized()![]() | no field | no method | 0min 30s | Medium | NHibernate.Collection.Generic .PersistentGenericSet<T> .get_IsSynchronized() |
get_ElementCountInMemory() | no field | 1 method | 1min 0s | Medium | NHibernate.Stat .SecondLevelCacheStatistics .get_ElementCountInMemory() |
get_ElementCountOnDisk() | no field | 1 method | 1min 0s | Medium | NHibernate.Stat .SecondLevelCacheStatistics .get_ElementCountOnDisk() |
get_SizeInMemory() | no field | 1 method | 1min 0s | Medium | NHibernate.Stat .SecondLevelCacheStatistics .get_SizeInMemory() |
get_Entries() | no field | no method | 0min 30s | Medium | NHibernate.Stat .SecondLevelCacheStatistics.get_Entries( ) |
Wrap(ISession) | no field | 1 method | 1min 0s | Medium | NHibernate.Context .ThreadLocalSessionContext.Wrap(ISession ) |
NeedsWrapping(ISession) | no field | 1 method | 1min 0s | Medium | NHibernate.Context .ThreadLocalSessionContext.NeedsWrapping (ISession) |
AffectedEntity(ISet<String>,String[]) | no field | 1 method | 1min 0s | Medium | NHibernate.Action .BulkOperationCleanupAction .AffectedEntity(ISet<String>,String[]) |
RemoveEntry(SequencedHashMap+Entry) | no field | 2 methods | 1min 30s | Medium | NHibernate.Util.SequencedHashMap .RemoveEntry(SequencedHashMap+Entry) |
FromXMLString(String,IMapping) | no field | 1 method | 1min 0s | Medium | NHibernate.Type.MetaType.FromXMLString (String,IMapping) |
ToXMLString(Object ,ISessionFactoryImplementor) | no field | 2 methods | 1min 30s | Medium | NHibernate.Type.MetaType.ToXMLString (Object,ISessionFactoryImplementor) |
get_Comparator() | no field | no method | 0min 30s | Medium | NHibernate.Type.SByteType.get_Comparator () |
ToBytes(Object) | no field | 6 methods | 3min 30s | Medium | NHibernate.Type.SerializableType.ToBytes (Object) |
FromBytes(Byte[]) | no field | 4 methods | 2min 30s | Medium | NHibernate.Type.SerializableType .FromBytes(Byte[]) |
StringToObject(String) | no field | no method | 0min 30s | Medium | NHibernate.Type.TicksType.StringToObject (String) |
StringToObject(String) | no field | no method | 0min 30s | Medium | NHibernate.Type.TimeSpanType .StringToObject(String) |
StringToObject(String) | no field | no method | 0min 30s | Medium | NHibernate.Type.TimestampType .StringToObject(String) |
get_CollectionTypeFactory() | no field | 10 methods | 5min | Medium | NHibernate.Type.TypeFactory .get_CollectionTypeFactory() |
GetReferencedColumns (ISessionFactoryImplementor) | no field | no method | 0min 30s | Medium | NHibernate.Type.AnyType .GetReferencedColumns (ISessionFactoryImplementor) |
get_ReferenceToPrimaryKey() | no field | no method | 0min 30s | Medium | NHibernate.Type.AnyType .get_ReferenceToPrimaryKey() |
ResolveAny(String,Object ,ISessionImplementor) | no field | 2 methods | 1min 30s | Medium | NHibernate.Type.AnyType.ResolveAny (String,Object,ISessionImplementor) |
StringToObject(String) | no field | no method | 0min 30s | Medium | NHibernate.Type.TimeAsTimeSpanType .StringToObject(String) |
FromXMLString(String,IMapping) | no field | 1 method | 1min 0s | Medium | NHibernate.Type.ClassMetaType .FromXMLString(String,IMapping) |
ToXMLString(Object ,ISessionFactoryImplementor) | no field | 2 methods | 1min 30s | Medium | NHibernate.Type.ClassMetaType .ToXMLString(Object ,ISessionFactoryImplementor) |
Alternate(Char) | no field | 1 method | 1min 0s | Medium | NHibernate.Type.EnumCharType<T> .Alternate(Char) |
Equals (ForeignKeyDirection+ForeignKeyFromParen tClass) | no field | 1 method | 1min 0s | Medium | NHibernate.Type .ForeignKeyDirection+ForeignKeyFromParen tClass.Equals (ForeignKeyDirection+ForeignKeyFromParen tClass) |
Equals (ForeignKeyDirection+ForeignKeyToParentC lass) | no field | 1 method | 1min 0s | Medium | NHibernate.Type .ForeignKeyDirection+ForeignKeyToParentC lass.Equals (ForeignKeyDirection+ForeignKeyToParentC lass) |
CloseIfRequired() | no field | 2 methods | 1min 30s | Medium | NHibernate.Transaction.AdoTransaction .CloseIfRequired() |
GetTransformedResults(IList ,HolderInstantiator) | no field | 1 method | 1min 0s | Medium | NHibernate.Impl.MultiQueryImpl .GetTransformedResults(IList ,HolderInstantiator) |
BuildPropertyAccessor(Property) | no field | 2 methods | 1min 30s | Medium | NHibernate.Tuple.Entity .DynamicMapEntityTuplizer .BuildPropertyAccessor(Property) |
BuildComponentTuplizer(String,Component) | 1 field | 1 method | 1min 0s | Medium | NHibernate.Tuple.Component .ComponentEntityModeToTuplizerMapping .BuildComponentTuplizer(String,Component ) |
BuildPropertyAccessor(Property) | no field | 2 methods | 1min 30s | Medium | NHibernate.Tuple.Component .DynamicMapComponentTuplizer .BuildPropertyAccessor(Property) |
IsPropertyMethod(MethodInfo) | no field | 1 method | 1min 0s | Medium | NHibernate.Proxy.DynProxyTypeValidator .IsPropertyMethod(MethodInfo) |
PushStackTrace(ILGenerator) | no field | 1 method | 1min 0s | Medium | NHibernate.Proxy.DynamicProxy .DefaultMethodEmitter.PushStackTrace (ILGenerator) |
PushGenericArguments(MethodInfo ,ILGenerator) | 1 field | 1 method | 1min 0s | Medium | NHibernate.Proxy.DynamicProxy .DefaultMethodEmitter .PushGenericArguments(MethodInfo ,ILGenerator) |
PackageReturnType(MethodInfo,ILGenerator ) | no field | 1 method | 1min 0s | Medium | NHibernate.Proxy.DynamicProxy .DefaultMethodEmitter.PackageReturnType (MethodInfo,ILGenerator) |
GetProxiableMethods(Type,IEnumerable <Type>) | no field | 1 method | 1min 0s | Medium | NHibernate.Proxy.DynamicProxy .ProxyFactory.GetProxiableMethods(Type ,IEnumerable<Type>) |
HasNonIdentifierPropertyNamedId (EntityType,IMapping) | no field | 1 method | 1min 0s | Medium | NHibernate.Persister.Entity .AbstractPropertyMapping .HasNonIdentifierPropertyNamedId (EntityType,IMapping) |
get_CommandType() | no field | 10 methods | 5min | Medium | NHibernate.SqlCommand.SqlCommandInfo .get_CommandType() |
get_Formula() | no field | no method | 0min 30s | Medium | NHibernate.Mapping.Collection .get_Formula() |
get_IsUnique() | no field | no method | 0min 30s | Medium | NHibernate.Mapping.Collection .get_IsUnique() |
get_Formula() | no field | no method | 0min 30s | Medium | NHibernate.Mapping.OneToMany.get_Formula () |
get_IsUnique() | no field | no method | 0min 30s | Medium | NHibernate.Mapping.OneToMany .get_IsUnique() |
CheckColumnDuplication(ISet<String> ,IEnumerable<ISelectable>) | no field | 2 methods | 1min 30s | Medium | NHibernate.Mapping.PersistentClass .CheckColumnDuplication(ISet<String> ,IEnumerable<ISelectable>) |
SetTypeUsingReflection(String,String) | no field | no method | 0min 30s | Medium | NHibernate.Mapping.DependantValue .SetTypeUsingReflection(String,String) |
IsMappedFor(ICollection<Type>,Type) | no field | 6 methods | 3min 30s | Medium | NHibernate.Mapping.ByCode .AbstractExplicitlyDeclaredModel .IsMappedFor(ICollection<Type>,Type) |
GetCollectionElementTypeOrThrow(Type ,MemberInfo,Type) | no field | 4 methods | 2min 30s | Medium | NHibernate.Mapping.ByCode.ModelMapper .GetCollectionElementTypeOrThrow(Type ,MemberInfo,Type) |
CanReadCantWriteInsideType(PropertyInfo) | no field | 1 method | 1min 0s | Medium | NHibernate.Mapping.ByCode .ConventionModelMapper .CanReadCantWriteInsideType(PropertyInfo ) |
MergeDictionary<TSubject,TCustomizable> (Dictionary<TSubject,List<Action <TCustomizable>>>,Dictionary<TSubject ,List<Action<TCustomizable>>>) | no field | 1 method | 1min 0s | Medium | NHibernate.Mapping.ByCode.Impl .CustomizersHolder.MergeDictionary <TSubject,TCustomizable>(Dictionary <TSubject,List<Action<TCustomizable>>> ,Dictionary<TSubject,List<Action <TCustomizable>>>) |
AddCustomizer<TSubject,TCustomizable> (IDictionary<TSubject,List<Action <TCustomizable>>>,TSubject,Action <TCustomizable>) | no field | 25 methods | 13min | Medium | NHibernate.Mapping.ByCode.Impl .CustomizersHolder.AddCustomizer <TSubject,TCustomizable>(IDictionary <TSubject,List<Action<TCustomizable>>> ,TSubject,Action<TCustomizable>) |
InvokeCustomizers<TSubject,TCustomizable >(IDictionary<TSubject,List<Action <TCustomizable>>>,TSubject,TCustomizable ) | no field | 24 methods | 12min | Medium | NHibernate.Mapping.ByCode.Impl .CustomizersHolder.InvokeCustomizers <TSubject,TCustomizable>(IDictionary <TSubject,List<Action<TCustomizable>>> ,TSubject,TCustomizable) |
GetCandidatePersistentProperties(Type ,BindingFlags) | no field | 4 methods | 2min 30s | Medium | NHibernate.Mapping.ByCode.Impl .DefaultCandidatePersistentMembersProvid er.GetCandidatePersistentProperties(Type ,BindingFlags) |
ColumnTagIsRequired(HbmColumn) | no field | 1 method | 1min 0s | Medium | NHibernate.Mapping.ByCode.Impl .DiscriminatorMapper.Column |