Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
org.opendaylight.yangtools.yang.model.api | 46 | 7 | 39 | 2 | 10 | 85.0% | 83.0% | 68.0% | 1 |
org.opendaylight.yangtools.yang.model.api.meta | 6 | 1 | 5 | 2 | 4 | 83.0% | 67.0% | 50.0% | 1 |
org.opendaylight.yangtools.yang.model.api.stmt | 102 | 4 | 98 | 1 | 12 | 96.0% | 92.0% | 88.0% | 1 |
org.opendaylight.yangtools.yang.model.api.type | 20 | 0 | 20 | 1 | 4 | 100.0% | 80.0% | 80.0% | 1 |
org.opendaylight.yangtools.yang.model.repo.api | 22 | 11 | 11 | 1 | 13 | 50.0% | 93.0% | 43.0% | 1 |
org.opendaylight.yangtools.yang.model.repo.spi | 7 | 2 | 5 | 0 | 7 | 71.0% | 100.0% | 71.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 10 | 85.0% | 83.0% | 68.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode org.opendaylight.yangtools.yang.model.api.AugmentationSchema org.opendaylight.yangtools.yang.model.api.AugmentationTarget org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode org.opendaylight.yangtools.yang.model.api.ConstraintDefinition org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode org.opendaylight.yangtools.yang.model.api.DataNodeContainer org.opendaylight.yangtools.yang.model.api.DataSchemaNode org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode org.opendaylight.yangtools.yang.model.api.Deviation org.opendaylight.yangtools.yang.model.api.DocumentedNode org.opendaylight.yangtools.yang.model.api.ExtensionDefinition org.opendaylight.yangtools.yang.model.api.FeatureDefinition org.opendaylight.yangtools.yang.model.api.GroupingDefinition org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode org.opendaylight.yangtools.yang.model.api.LeafSchemaNode org.opendaylight.yangtools.yang.model.api.ListSchemaNode org.opendaylight.yangtools.yang.model.api.Module org.opendaylight.yangtools.yang.model.api.ModuleIdentifier org.opendaylight.yangtools.yang.model.api.ModuleImport org.opendaylight.yangtools.yang.model.api.MustDefinition org.opendaylight.yangtools.yang.model.api.NamespaceRevisionAware org.opendaylight.yangtools.yang.model.api.NotificationDefinition org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath org.opendaylight.yangtools.yang.model.api.RpcDefinition org.opendaylight.yangtools.yang.model.api.SchemaContext org.opendaylight.yangtools.yang.model.api.SchemaContextHolder org.opendaylight.yangtools.yang.model.api.SchemaContextListener org.opendaylight.yangtools.yang.model.api.SchemaContextProvider org.opendaylight.yangtools.yang.model.api.SchemaNode org.opendaylight.yangtools.yang.model.api.SchemaPath org.opendaylight.yangtools.yang.model.api.SourceStreamAware org.opendaylight.yangtools.yang.model.api.TypeDefinition org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode org.opendaylight.yangtools.yang.model.api.UsesNode org.opendaylight.yangtools.yang.model.api.YangModeledAnyXmlSchemaNode |
org.opendaylight.yangtools.yang.model.api.Deviation$Deviate org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping org.opendaylight.yangtools.yang.model.api.SchemaPath$1 org.opendaylight.yangtools.yang.model.api.SchemaPath$1$1 org.opendaylight.yangtools.yang.model.api.SchemaPath$AbsoluteSchemaPath org.opendaylight.yangtools.yang.model.api.SchemaPath$RelativeSchemaPath org.opendaylight.yangtools.yang.model.api.Status |
org.opendaylight.yangtools.yang.model.api.stmt org.opendaylight.yangtools.yang.model.api.type |
com.google.common.base com.google.common.collect java.lang java.net java.util java.util.concurrent.atomic org.opendaylight.yangtools.concepts org.opendaylight.yangtools.yang.common org.opendaylight.yangtools.yang.model.api.meta org.opendaylight.yangtools.yang.model.api.stmt |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 4 | 83.0% | 67.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace org.opendaylight.yangtools.yang.model.api.meta.ModelStatement org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition |
org.opendaylight.yangtools.yang.model.api.meta.StatementSource |
org.opendaylight.yangtools.yang.model.api org.opendaylight.yangtools.yang.model.api.stmt |
java.lang java.util org.opendaylight.yangtools.concepts org.opendaylight.yangtools.yang.common |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 12 | 96.0% | 92.0% | 88.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement org.opendaylight.yangtools.yang.model.api.stmt.BitStatement org.opendaylight.yangtools.yang.model.api.stmt.BodyGroup org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement org.opendaylight.yangtools.yang.model.api.stmt.ConditionalDataDefinition org.opendaylight.yangtools.yang.model.api.stmt.ConditionalFeature org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement org.opendaylight.yangtools.yang.model.api.stmt.ContactStatement org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionContainer org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionContainer$WithReusableDefinitions org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement org.opendaylight.yangtools.yang.model.api.stmt.DocumentationGroup org.opendaylight.yangtools.yang.model.api.stmt.DocumentationGroup$WithStatus org.opendaylight.yangtools.yang.model.api.stmt.DocumentedConstraintGroup org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement org.opendaylight.yangtools.yang.model.api.stmt.InputStatement org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement org.opendaylight.yangtools.yang.model.api.stmt.LinkageGroup org.opendaylight.yangtools.yang.model.api.stmt.ListStatement org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement org.opendaylight.yangtools.yang.model.api.stmt.MetaGroup org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement org.opendaylight.yangtools.yang.model.api.stmt.ModuleHeaderGroup org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement org.opendaylight.yangtools.yang.model.api.stmt.MultipleElementsGroup org.opendaylight.yangtools.yang.model.api.stmt.MustStatement org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement org.opendaylight.yangtools.yang.model.api.stmt.PathStatement org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement$RefineContainerStatement org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement$RefineLeafStatement org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement org.opendaylight.yangtools.yang.model.api.stmt.RevisionGroup org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement org.opendaylight.yangtools.yang.model.api.stmt.Rfc6020AbnfRule org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement org.opendaylight.yangtools.yang.model.api.stmt.TypeDefinitionAware org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement org.opendaylight.yangtools.yang.model.api.stmt.TypeGroup org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$BinarySpecification org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$BitsSpecification org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$Decimal64Specification org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$EnumSpecification org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$IdentityRefSpecification org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$InstanceIdentifierSpecification org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$LeafrefSpecification org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$NumericalRestrictions org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$StringRestrictions org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement$UnionSpecification org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement |
org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier$1 org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier$1$1 org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier$Absolute org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier$Relative |
org.opendaylight.yangtools.yang.model.api |
com.google.common.base com.google.common.collect java.lang java.lang.annotation java.net java.util java.util.concurrent.atomic org.opendaylight.yangtools.concepts org.opendaylight.yangtools.yang.common org.opendaylight.yangtools.yang.model.api org.opendaylight.yangtools.yang.model.api.meta org.opendaylight.yangtools.yang.model.api.type |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 4 | 100.0% | 80.0% | 80.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition$Bit org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition$EnumPair org.opendaylight.yangtools.yang.model.api.type.IdentityTypeDefinition org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition org.opendaylight.yangtools.yang.model.api.type.LengthConstraint org.opendaylight.yangtools.yang.model.api.type.PatternConstraint org.opendaylight.yangtools.yang.model.api.type.RangeConstraint org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition |
None | org.opendaylight.yangtools.yang.model.api.stmt |
java.lang java.util org.opendaylight.yangtools.yang.common org.opendaylight.yangtools.yang.model.api |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 13 | 50.0% | 93.0% | 43.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactory org.opendaylight.yangtools.yang.model.repo.api.SchemaRepository org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation org.opendaylight.yangtools.yang.model.repo.api.YangSchemaSourceRepresentation org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource org.opendaylight.yangtools.yang.model.repo.api.YinDomSchemaSource org.opendaylight.yangtools.yang.model.repo.api.YinSchemaSource org.opendaylight.yangtools.yang.model.repo.api.YinSchemaSourceRepresentation org.opendaylight.yangtools.yang.model.repo.api.YinTextSchemaSource org.opendaylight.yangtools.yang.model.repo.api.YinXmlSchemaSource |
org.opendaylight.yangtools.yang.model.repo.api.MissingSchemaSourceException org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter$1 org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource$1 org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource$DelegatedYangTextSchemaSource org.opendaylight.yangtools.yang.model.repo.api.YinDomSchemaSource$Simple org.opendaylight.yangtools.yang.model.repo.api.YinDomSchemaSource$Transforming org.opendaylight.yangtools.yang.model.repo.api.YinTextSchemaSource$1 org.opendaylight.yangtools.yang.model.repo.api.YinTextSchemaSource$DelegatedYinTextSchemaSource |
org.opendaylight.yangtools.yang.model.repo.spi |
com.google.common.base com.google.common.collect com.google.common.io com.google.common.util.concurrent java.io java.lang java.util java.util.regex javax.xml.transform javax.xml.transform.dom org.opendaylight.yangtools.concepts org.opendaylight.yangtools.objcache org.w3c.dom |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 7 | 71.0% | 100.0% | 71.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.yangtools.yang.model.repo.spi.SchemaListenerRegistration org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceListener org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceProvider org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistration org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistry |
org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource$Costs |
None | com.google.common.base com.google.common.util.concurrent java.lang java.util org.opendaylight.yangtools.concepts org.opendaylight.yangtools.objcache org.opendaylight.yangtools.yang.model.repo.api |
Package | Package Dependencies |
---|---|
org.opendaylight.yangtools.yang.model.api | org.opendaylight.yangtools.yang.model.api.stmt org.opendaylight.yangtools.yang.model.api |
org.opendaylight.yangtools.yang.model.api.stmt | org.opendaylight.yangtools.yang.model.api org.opendaylight.yangtools.yang.model.api.stmt |
org.opendaylight.yangtools.yang.model.api.type | org.opendaylight.yangtools.yang.model.api org.opendaylight.yangtools.yang.model.api.stmt org.opendaylight.yangtools.yang.model.api |
Term | Description |
---|---|
Number of Classes | The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package. |
Afferent Couplings | The number of other packages that depend upon classes within the package is an indicator of the package's responsibility. |
Efferent Couplings | The number of other packages that the classes in the package depend upon is an indicator of the package's independence. |
Abstractness | The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package. |
Instability | The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package. |
Distance | The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible. |
Cycles | Packages participating in a package dependency cycle are in a deadly embrace with respect to reusability and their release cycle. Package dependency cycles can be easily identified by reviewing the textual reports of dependency cycles. Once these dependency cycles have been identified with JDepend, they can be broken by employing various object-oriented techniques. |