Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
org.opendaylight.ovsdb.lib | 11 | 4 | 7 | 3 | 14 | 64.0% | 82.0% | 46.0% | 1 |
org.opendaylight.ovsdb.lib.error | 10 | 10 | 0 | 3 | 2 | 0.0% | 40.0% | 60.000004% | 1 |
org.opendaylight.ovsdb.lib.impl | 10 | 10 | 0 | 1 | 18 | 0.0% | 95.0% | 5.0% | 1 |
org.opendaylight.ovsdb.lib.jsonrpc | 9 | 8 | 1 | 3 | 20 | 11.0% | 87.0% | 2.0% | 1 |
org.opendaylight.ovsdb.lib.message | 13 | 10 | 3 | 5 | 12 | 23.0% | 71.0% | 6.0% | 1 |
org.opendaylight.ovsdb.lib.notation | 12 | 12 | 0 | 7 | 7 | 0.0% | 50.0% | 50.0% | 1 |
org.opendaylight.ovsdb.lib.notation.json | 17 | 17 | 0 | 2 | 13 | 0.0% | 87.0% | 13.0% | 1 |
org.opendaylight.ovsdb.lib.operations | 15 | 13 | 2 | 3 | 8 | 13.0% | 73.0% | 14.0% | 1 |
org.opendaylight.ovsdb.lib.schema | 14 | 11 | 3 | 7 | 13 | 21.0% | 65.0% | 14.0% | 1 |
org.opendaylight.ovsdb.lib.schema.typed | 6 | 3 | 3 | 2 | 10 | 50.0% | 83.0% | 33.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 14 | 64.0% | 82.0% | 46.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.ovsdb.lib.EchoServiceCallbackFilters org.opendaylight.ovsdb.lib.LockAquisitionCallback org.opendaylight.ovsdb.lib.LockStolenCallback org.opendaylight.ovsdb.lib.MonitorCallBack org.opendaylight.ovsdb.lib.OvsdbClient org.opendaylight.ovsdb.lib.OvsdbConnection org.opendaylight.ovsdb.lib.OvsdbConnectionListener |
org.opendaylight.ovsdb.lib.MonitorHandle org.opendaylight.ovsdb.lib.OvsdbConnectionInfo org.opendaylight.ovsdb.lib.OvsdbConnectionInfo$ConnectionType org.opendaylight.ovsdb.lib.OvsdbConnectionInfo$SocketConnectionType |
org.opendaylight.ovsdb.lib.impl org.opendaylight.ovsdb.lib.jsonrpc org.opendaylight.ovsdb.lib.operations |
com.google.common.util.concurrent io.netty.channel io.netty.handler.ssl java.io java.lang java.net java.security.cert java.util javax.net.ssl org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.operations org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.schema.typed |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 2 | 0.0% | 40.0% | 60.000004% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.opendaylight.ovsdb.lib.error.BadSchemaException org.opendaylight.ovsdb.lib.error.ColumnSchemaNotFoundException org.opendaylight.ovsdb.lib.error.InvalidEncodingException org.opendaylight.ovsdb.lib.error.ParsingException org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException org.opendaylight.ovsdb.lib.error.TableSchemaNotFoundException org.opendaylight.ovsdb.lib.error.TyperException org.opendaylight.ovsdb.lib.error.UnexpectedResultException org.opendaylight.ovsdb.lib.error.UnsupportedArgumentException org.opendaylight.ovsdb.lib.error.UnsupportedMethodException |
org.opendaylight.ovsdb.lib.jsonrpc org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.schema.typed |
java.lang org.opendaylight.ovsdb.lib.notation |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 18 | 0.0% | 95.0% | 5.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.opendaylight.ovsdb.lib.impl.ChannelConnectionHandler org.opendaylight.ovsdb.lib.impl.OvsdbClientImpl$1 org.opendaylight.ovsdb.lib.impl.OvsdbClientImpl$2 org.opendaylight.ovsdb.lib.impl.OvsdbClientImpl$CallbackContext org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService$1 org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService$1HandleNewPassiveSslRunner org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService$2 org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService$3 org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService$4 org.opendaylight.ovsdb.lib.impl.StalePassiveConnectionService$1 |
org.opendaylight.ovsdb.lib.jsonrpc |
com.google.common.util.concurrent io.netty.channel io.netty.channel.socket io.netty.handler.codec.string io.netty.handler.ssl io.netty.handler.timeout io.netty.util io.netty.util.concurrent java.lang java.net java.util java.util.concurrent javax.net.ssl org.opendaylight.ovsdb.lib org.opendaylight.ovsdb.lib.jsonrpc org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.schema org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 20 | 11.0% | 87.0% | 2.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.ovsdb.lib.jsonrpc.Params |
org.opendaylight.ovsdb.lib.jsonrpc.ExceptionHandler org.opendaylight.ovsdb.lib.jsonrpc.JsonRpc10Request org.opendaylight.ovsdb.lib.jsonrpc.JsonRpc10Response org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcDecoder org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcEncoder org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcEndpoint$CallContext org.opendaylight.ovsdb.lib.jsonrpc.JsonRpcServiceBinderHandler org.opendaylight.ovsdb.lib.jsonrpc.JsonUtils |
org.opendaylight.ovsdb.lib.impl org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.schema |
com.fasterxml.jackson.core com.fasterxml.jackson.core.io com.fasterxml.jackson.core.json com.fasterxml.jackson.core.util com.fasterxml.jackson.databind com.google.common.base com.google.common.collect com.google.common.util.concurrent io.netty.buffer io.netty.channel io.netty.handler.codec io.netty.handler.timeout java.io java.lang java.lang.reflect java.util org.opendaylight.ovsdb.lib org.opendaylight.ovsdb.lib.error org.opendaylight.ovsdb.lib.impl org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
5 | 12 | 23.0% | 71.0% | 6.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.ovsdb.lib.message.OvsdbRPC org.opendaylight.ovsdb.lib.message.OvsdbRPC$Callback org.opendaylight.ovsdb.lib.message.Response |
org.opendaylight.ovsdb.lib.message.EchoResponse org.opendaylight.ovsdb.lib.message.MonitorRequest org.opendaylight.ovsdb.lib.message.MonitorRequestBuilder org.opendaylight.ovsdb.lib.message.MonitorSelect org.opendaylight.ovsdb.lib.message.TableUpdate org.opendaylight.ovsdb.lib.message.TableUpdate$RowUpdate org.opendaylight.ovsdb.lib.message.TableUpdates org.opendaylight.ovsdb.lib.message.TransactBuilder org.opendaylight.ovsdb.lib.message.TransactResponse org.opendaylight.ovsdb.lib.message.UpdateNotification |
org.opendaylight.ovsdb.lib org.opendaylight.ovsdb.lib.impl org.opendaylight.ovsdb.lib.notation.json org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.schema.typed |
com.fasterxml.jackson.annotation com.fasterxml.jackson.databind com.google.common.collect com.google.common.util.concurrent java.lang java.util org.opendaylight.ovsdb.lib.jsonrpc org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.notation.json org.opendaylight.ovsdb.lib.operations org.opendaylight.ovsdb.lib.schema org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
7 | 7 | 0.0% | 50.0% | 50.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.opendaylight.ovsdb.lib.notation.Column org.opendaylight.ovsdb.lib.notation.Condition org.opendaylight.ovsdb.lib.notation.Function org.opendaylight.ovsdb.lib.notation.Mutation org.opendaylight.ovsdb.lib.notation.Mutator org.opendaylight.ovsdb.lib.notation.OvsdbMap org.opendaylight.ovsdb.lib.notation.OvsdbSet org.opendaylight.ovsdb.lib.notation.ReferencedRow org.opendaylight.ovsdb.lib.notation.ResultSet org.opendaylight.ovsdb.lib.notation.Row org.opendaylight.ovsdb.lib.notation.UUID org.opendaylight.ovsdb.lib.notation.Version |
org.opendaylight.ovsdb.lib org.opendaylight.ovsdb.lib.error org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.notation.json org.opendaylight.ovsdb.lib.operations org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.schema.typed |
com.fasterxml.jackson.databind com.google.common.collect java.lang java.util java.util.regex org.opendaylight.ovsdb.lib.notation.json org.opendaylight.ovsdb.lib.schema |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 13 | 0.0% | 87.0% | 13.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.opendaylight.ovsdb.lib.notation.json.ConditionSerializer org.opendaylight.ovsdb.lib.notation.json.Converter org.opendaylight.ovsdb.lib.notation.json.Converter$1 org.opendaylight.ovsdb.lib.notation.json.Converter$AtomDeser org.opendaylight.ovsdb.lib.notation.json.Converter$MapConverter org.opendaylight.ovsdb.lib.notation.json.Converter$MapDeser org.opendaylight.ovsdb.lib.notation.json.Converter$SetConverter org.opendaylight.ovsdb.lib.notation.json.Converter$SetDeser org.opendaylight.ovsdb.lib.notation.json.Converter$UpdateNotificationConverter org.opendaylight.ovsdb.lib.notation.json.Converter$UpdateNotificationDeser org.opendaylight.ovsdb.lib.notation.json.MutationSerializer org.opendaylight.ovsdb.lib.notation.json.OvsdbMapSerializer org.opendaylight.ovsdb.lib.notation.json.OvsdbSetSerializer org.opendaylight.ovsdb.lib.notation.json.OvsdbTypesIdResolver org.opendaylight.ovsdb.lib.notation.json.RowSerializer org.opendaylight.ovsdb.lib.notation.json.UUIDSerializer org.opendaylight.ovsdb.lib.notation.json.UUIDStringConverter |
org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.notation |
com.fasterxml.jackson.annotation com.fasterxml.jackson.core com.fasterxml.jackson.databind com.fasterxml.jackson.databind.jsontype.impl com.fasterxml.jackson.databind.node com.fasterxml.jackson.databind.type com.fasterxml.jackson.databind.util java.io java.lang java.util org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 8 | 13.0% | 73.0% | 14.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.ovsdb.lib.operations.ConditionalOperation org.opendaylight.ovsdb.lib.operations.Operation |
org.opendaylight.ovsdb.lib.operations.Abort org.opendaylight.ovsdb.lib.operations.Assert org.opendaylight.ovsdb.lib.operations.Comment org.opendaylight.ovsdb.lib.operations.Commit org.opendaylight.ovsdb.lib.operations.Delete org.opendaylight.ovsdb.lib.operations.Insert org.opendaylight.ovsdb.lib.operations.Mutate org.opendaylight.ovsdb.lib.operations.OperationResult org.opendaylight.ovsdb.lib.operations.Operations org.opendaylight.ovsdb.lib.operations.Select org.opendaylight.ovsdb.lib.operations.TransactionBuilder org.opendaylight.ovsdb.lib.operations.Update org.opendaylight.ovsdb.lib.operations.Where |
org.opendaylight.ovsdb.lib org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.schema |
com.google.common.collect com.google.common.util.concurrent java.lang java.util org.opendaylight.ovsdb.lib org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.schema.typed |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
7 | 13 | 21.0% | 65.0% | 14.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.ovsdb.lib.schema.BaseType org.opendaylight.ovsdb.lib.schema.ColumnType org.opendaylight.ovsdb.lib.schema.TableSchema |
org.opendaylight.ovsdb.lib.schema.BaseType$BooleanBaseType org.opendaylight.ovsdb.lib.schema.BaseType$IntegerBaseType org.opendaylight.ovsdb.lib.schema.BaseType$RealBaseType org.opendaylight.ovsdb.lib.schema.BaseType$StringBaseType org.opendaylight.ovsdb.lib.schema.BaseType$UuidBaseType org.opendaylight.ovsdb.lib.schema.BaseType$UuidBaseType$RefType org.opendaylight.ovsdb.lib.schema.ColumnSchema org.opendaylight.ovsdb.lib.schema.ColumnType$AtomicColumnType org.opendaylight.ovsdb.lib.schema.ColumnType$KeyValuedColumnType org.opendaylight.ovsdb.lib.schema.DatabaseSchema org.opendaylight.ovsdb.lib.schema.GenericTableSchema |
org.opendaylight.ovsdb.lib org.opendaylight.ovsdb.lib.impl org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.notation.json org.opendaylight.ovsdb.lib.operations org.opendaylight.ovsdb.lib.schema.typed |
com.fasterxml.jackson.databind com.fasterxml.jackson.databind.node com.google.common.collect com.google.common.reflect java.lang java.lang.reflect java.util org.opendaylight.ovsdb.lib.error org.opendaylight.ovsdb.lib.jsonrpc org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.operations org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 10 | 50.0% | 83.0% | 33.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.opendaylight.ovsdb.lib.schema.typed.TypedBaseTable org.opendaylight.ovsdb.lib.schema.typed.TypedColumn org.opendaylight.ovsdb.lib.schema.typed.TypedTable |
org.opendaylight.ovsdb.lib.schema.typed.MethodType org.opendaylight.ovsdb.lib.schema.typed.TyperUtils org.opendaylight.ovsdb.lib.schema.typed.TyperUtils$1 |
org.opendaylight.ovsdb.lib org.opendaylight.ovsdb.lib.operations |
com.google.common.base com.google.common.reflect java.lang java.lang.annotation java.lang.reflect java.util org.opendaylight.ovsdb.lib.error org.opendaylight.ovsdb.lib.message org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema |
Package | Package Dependencies |
---|---|
org.opendaylight.ovsdb.lib | org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema |
org.opendaylight.ovsdb.lib.error | org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation |
org.opendaylight.ovsdb.lib.impl | org.opendaylight.ovsdb.lib.jsonrpc org.opendaylight.ovsdb.lib.error org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation |
org.opendaylight.ovsdb.lib.jsonrpc | org.opendaylight.ovsdb.lib.error org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation |
org.opendaylight.ovsdb.lib.message | org.opendaylight.ovsdb.lib.jsonrpc org.opendaylight.ovsdb.lib.error org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation |
org.opendaylight.ovsdb.lib.notation | org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation |
org.opendaylight.ovsdb.lib.notation.json | org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation |
org.opendaylight.ovsdb.lib.operations | org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema |
org.opendaylight.ovsdb.lib.schema | org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema |
org.opendaylight.ovsdb.lib.schema.typed | org.opendaylight.ovsdb.lib.notation org.opendaylight.ovsdb.lib.schema org.opendaylight.ovsdb.lib.notation |
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. |