Metric Results

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following document contains the results of a JDepend metric analysis. The various metrics are defined at the bottom of this document.

Summary

[ summary ] [ packages ] [ cycles ] [ explanations ]

Package TC CC AC Ca Ce A I D V
net.arccode.wechat.pay.api.common.annotation 2 0 2 1 2 100.0% 67.0% 67.0% 1
net.arccode.wechat.pay.api.common.constant 1 1 0 0 1 0.0% 100.0% 0.0% 1
net.arccode.wechat.pay.api.common.exception 1 1 0 5 1 0.0% 17.0% 83.0% 1
net.arccode.wechat.pay.api.common.log 1 1 0 1 8 0.0% 89.0% 11.0% 1
net.arccode.wechat.pay.api.common.mapping 1 1 0 1 2 0.0% 67.0% 33.0% 1
net.arccode.wechat.pay.api.common.parser 3 0 3 4 4 100.0% 50.0% 50.0% 1
net.arccode.wechat.pay.api.common.parser.json 3 3 0 0 8 0.0% 100.0% 0.0% 1
net.arccode.wechat.pay.api.common.parser.xml 3 3 0 1 8 0.0% 89.0% 11.0% 1
net.arccode.wechat.pay.api.common.util 13 13 0 7 37 0.0% 84.0% 16.0% 1
net.arccode.wechat.pay.api.common.util.json 9 7 2 1 7 22.0% 88.0% 10.0% 1
net.arccode.wechat.pay.api.protocol.base 2 0 2 10 3 100.0% 23.0% 23.0% 1
net.arccode.wechat.pay.api.protocol.mch_pay 2 2 0 0 4 0.0% 100.0% 0.0% 1
net.arccode.wechat.pay.api.protocol.pay_notify 1 1 0 0 2 0.0% 100.0% 0.0% 1
net.arccode.wechat.pay.api.protocol.refund 2 2 0 0 4 0.0% 100.0% 0.0% 1
net.arccode.wechat.pay.api.protocol.unified_order 2 2 0 0 4 0.0% 100.0% 0.0% 1
net.arccode.wechat.pay.api.service 2 1 1 0 11 50.0% 100.0% 50.0% 1

Packages

[ summary ] [ packages ] [ cycles ] [ explanations ]

net.arccode.wechat.pay.api.common.annotation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 100.0% 67.0% 67.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.arccode.wechat.pay.api.common.annotation.ApiField
net.arccode.wechat.pay.api.common.annotation.ApiListField
None net.arccode.wechat.pay.api.common.util
java.lang
java.lang.annotation

net.arccode.wechat.pay.api.common.constant

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.common.constant.WXPayConstants
None java.lang

net.arccode.wechat.pay.api.common.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 1 0.0% 17.0% 83.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.common.exception.WXPayApiException
net.arccode.wechat.pay.api.common.parser
net.arccode.wechat.pay.api.common.parser.json
net.arccode.wechat.pay.api.common.parser.xml
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.service
java.lang

net.arccode.wechat.pay.api.common.log

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 0.0% 89.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.common.log.ACLogger
net.arccode.wechat.pay.api.service
java.io
java.lang
java.net
java.text
java.util
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.protocol.base
org.slf4j

net.arccode.wechat.pay.api.common.mapping

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 0.0% 67.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.common.mapping.ACFieldMethod
net.arccode.wechat.pay.api.common.util
java.lang
java.lang.reflect

net.arccode.wechat.pay.api.common.parser

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 4 100.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.arccode.wechat.pay.api.common.parser.Converter
net.arccode.wechat.pay.api.common.parser.Reader
net.arccode.wechat.pay.api.common.parser.WXPayParser
None net.arccode.wechat.pay.api.common.parser.json
net.arccode.wechat.pay.api.common.parser.xml
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.service
java.lang
java.util
net.arccode.wechat.pay.api.common.exception
net.arccode.wechat.pay.api.protocol.base

net.arccode.wechat.pay.api.common.parser.json

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.common.parser.json.JsonConverter
net.arccode.wechat.pay.api.common.parser.json.JsonConverter$1
net.arccode.wechat.pay.api.common.parser.json.ObjectJsonParser
None java.lang
java.text
java.util
net.arccode.wechat.pay.api.common.exception
net.arccode.wechat.pay.api.common.parser
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.common.util.json
net.arccode.wechat.pay.api.protocol.base

net.arccode.wechat.pay.api.common.parser.xml

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 0.0% 89.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.common.parser.xml.ObjectXmlParser
net.arccode.wechat.pay.api.common.parser.xml.XmlConverter
net.arccode.wechat.pay.api.common.parser.xml.XmlConverter$1
net.arccode.wechat.pay.api.service
java.lang
java.text
java.util
net.arccode.wechat.pay.api.common.exception
net.arccode.wechat.pay.api.common.parser
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.protocol.base
org.w3c.dom

net.arccode.wechat.pay.api.common.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 37 0.0% 84.0% 16.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.common.util.ACHashMap
net.arccode.wechat.pay.api.common.util.Converters
net.arccode.wechat.pay.api.common.util.DateUtils
net.arccode.wechat.pay.api.common.util.HttpUtils
net.arccode.wechat.pay.api.common.util.HttpUtils$1
net.arccode.wechat.pay.api.common.util.ImageUtils
net.arccode.wechat.pay.api.common.util.MapUtils
net.arccode.wechat.pay.api.common.util.RandomUtils
net.arccode.wechat.pay.api.common.util.RequestParametersHolder
net.arccode.wechat.pay.api.common.util.SDKUtils
net.arccode.wechat.pay.api.common.util.StringUtils
net.arccode.wechat.pay.api.common.util.WXPaySignUtils
net.arccode.wechat.pay.api.common.util.XmlUtils
net.arccode.wechat.pay.api.common.log
net.arccode.wechat.pay.api.common.parser.json
net.arccode.wechat.pay.api.common.parser.xml
net.arccode.wechat.pay.api.protocol.mch_pay
net.arccode.wechat.pay.api.protocol.refund
net.arccode.wechat.pay.api.protocol.unified_order
net.arccode.wechat.pay.api.service
com.squareup.okhttp
java.awt.image
java.beans
java.io
java.lang
java.lang.reflect
java.net
java.security
java.security.cert
java.text
java.util
java.util.concurrent
java.util.regex
javax.imageio
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
javax.xml.validation
net.arccode.wechat.pay.api.common.annotation
net.arccode.wechat.pay.api.common.exception
net.arccode.wechat.pay.api.common.mapping
net.arccode.wechat.pay.api.common.parser
net.arccode.wechat.pay.api.protocol.base
org.apache.http
org.apache.http.client.config
org.apache.http.client.methods
org.apache.http.conn
org.apache.http.conn.ssl
org.apache.http.entity
org.apache.http.impl.client
org.apache.http.ssl
org.apache.http.util
org.slf4j
org.w3c.dom
org.xml.sax
sun.misc

net.arccode.wechat.pay.api.common.util.json

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 22.0% 88.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.arccode.wechat.pay.api.common.util.json.JSONErrorListener
net.arccode.wechat.pay.api.common.util.json.JSONReader
net.arccode.wechat.pay.api.common.util.json.BufferErrorListener
net.arccode.wechat.pay.api.common.util.json.ExceptionErrorListener
net.arccode.wechat.pay.api.common.util.json.JSONValidatingReader
net.arccode.wechat.pay.api.common.util.json.JSONValidatingWriter
net.arccode.wechat.pay.api.common.util.json.JSONValidator
net.arccode.wechat.pay.api.common.util.json.JSONWriter
net.arccode.wechat.pay.api.common.util.json.StdoutStreamErrorListener
net.arccode.wechat.pay.api.common.parser.json
java.beans
java.io
java.lang
java.lang.reflect
java.math
java.text
java.util

net.arccode.wechat.pay.api.protocol.base

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 3 100.0% 23.0% 23.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.arccode.wechat.pay.api.protocol.base.WXPayRequest
net.arccode.wechat.pay.api.protocol.base.WXPayResponse
None net.arccode.wechat.pay.api.common.log
net.arccode.wechat.pay.api.common.parser
net.arccode.wechat.pay.api.common.parser.json
net.arccode.wechat.pay.api.common.parser.xml
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.protocol.mch_pay
net.arccode.wechat.pay.api.protocol.pay_notify
net.arccode.wechat.pay.api.protocol.refund
net.arccode.wechat.pay.api.protocol.unified_order
net.arccode.wechat.pay.api.service
java.io
java.lang
java.util

net.arccode.wechat.pay.api.protocol.mch_pay

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.protocol.mch_pay.MchPayRequest
net.arccode.wechat.pay.api.protocol.mch_pay.MchPayResponse
None java.lang
java.util
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.protocol.base

net.arccode.wechat.pay.api.protocol.pay_notify

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.protocol.pay_notify.PayNotifyResponse
None java.lang
net.arccode.wechat.pay.api.protocol.base

net.arccode.wechat.pay.api.protocol.refund

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.protocol.refund.RefundRequest
net.arccode.wechat.pay.api.protocol.refund.RefundResponse
None java.lang
java.util
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.protocol.base

net.arccode.wechat.pay.api.protocol.unified_order

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None net.arccode.wechat.pay.api.protocol.unified_order.UnifiedOrderRequest
net.arccode.wechat.pay.api.protocol.unified_order.UnifiedOrderResponse
None java.lang
java.util
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.protocol.base

net.arccode.wechat.pay.api.service

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 50.0% 100.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
net.arccode.wechat.pay.api.service.IWXPayClient
net.arccode.wechat.pay.api.service.WXPayClient
None com.squareup.okhttp
java.io
java.lang
java.util
net.arccode.wechat.pay.api.common.exception
net.arccode.wechat.pay.api.common.log
net.arccode.wechat.pay.api.common.parser
net.arccode.wechat.pay.api.common.parser.xml
net.arccode.wechat.pay.api.common.util
net.arccode.wechat.pay.api.protocol.base
org.slf4j

Cycles

[ summary ] [ packages ] [ cycles ] [ explanations ]

There are no cyclic dependencies.

Explanation

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

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.