Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
it.amattioli.applicate.browsing | 27 | 20 | 7 | 1 | 22 | 26.0% | 96.0% | 22.0% | 1 |
it.amattioli.applicate.commands | 36 | 19 | 17 | 5 | 20 | 47.0% | 80.0% | 27.000002% | 1 |
it.amattioli.applicate.commands.executors | 7 | 5 | 2 | 1 | 5 | 29.0% | 83.0% | 12.0% | 1 |
it.amattioli.applicate.commands.tree | 10 | 6 | 4 | 0 | 14 | 40.0% | 100.0% | 40.0% | 1 |
it.amattioli.applicate.context.hibernate | 5 | 4 | 1 | 1 | 11 | 20.0% | 92.0% | 12.0% | 1 |
it.amattioli.applicate.properties | 11 | 7 | 4 | 2 | 9 | 36.0% | 82.0% | 18.0% | 1 |
it.amattioli.applicate.selection | 4 | 2 | 2 | 3 | 3 | 50.0% | 50.0% | 0.0% | 1 |
it.amattioli.applicate.sessions | 13 | 8 | 5 | 0 | 7 | 38.0% | 100.0% | 38.0% | 1 |
it.amattioli.applicate.util | 1 | 1 | 0 | 2 | 3 | 0.0% | 60.000004% | 40.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 22 | 26.0% | 96.0% | 22.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
it.amattioli.applicate.browsing.Browser it.amattioli.applicate.browsing.ContentChangeListener it.amattioli.applicate.browsing.GroupBrowser it.amattioli.applicate.browsing.ListBrowser it.amattioli.applicate.browsing.ObjectBrowser it.amattioli.applicate.browsing.PagedListBrowser it.amattioli.applicate.browsing.TreeBrowser |
it.amattioli.applicate.browsing.BrowserFactory it.amattioli.applicate.browsing.ContentChangeEvent it.amattioli.applicate.browsing.ContentChangeSupport it.amattioli.applicate.browsing.DefaultGroupBrowser it.amattioli.applicate.browsing.DefaultTreeBrowser it.amattioli.applicate.browsing.EntitySelector it.amattioli.applicate.browsing.EntitySelector$1 it.amattioli.applicate.browsing.EntitySelector$2 it.amattioli.applicate.browsing.EntitySelector$3 it.amattioli.applicate.browsing.EntitySelector$Match it.amattioli.applicate.browsing.GroupBrowser$Selection it.amattioli.applicate.browsing.ListBrowserImpl it.amattioli.applicate.browsing.ListBrowserImpl$1 it.amattioli.applicate.browsing.ListBrowserImpl$2 it.amattioli.applicate.browsing.MultiBrowser it.amattioli.applicate.browsing.ObjectBrowserImpl it.amattioli.applicate.browsing.ObjectBrowserImpl$1 it.amattioli.applicate.browsing.ObjectBrowserImpl$DetailsUpdater it.amattioli.applicate.browsing.PagedListBrowserImpl it.amattioli.applicate.browsing.TreePath |
it.amattioli.applicate.commands.tree |
it.amattioli.applicate.commands it.amattioli.applicate.properties it.amattioli.applicate.selection it.amattioli.common.properties it.amattioli.dominate it.amattioli.dominate.groups it.amattioli.dominate.hibernate.filters it.amattioli.dominate.memory it.amattioli.dominate.repositories it.amattioli.dominate.specifications it.amattioli.dominate.util it.amattioli.dominate.validation java.beans java.io java.lang java.lang.reflect java.util org.apache.commons.beanutils org.apache.commons.collections org.apache.commons.collections.map org.apache.commons.lang org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
5 | 20 | 47.0% | 80.0% | 27.000002% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
it.amattioli.applicate.commands.AbstractBeanEditor it.amattioli.applicate.commands.AbstractCommand it.amattioli.applicate.commands.AbstractEditingListManager it.amattioli.applicate.commands.BeanEditor it.amattioli.applicate.commands.CollectionEditor it.amattioli.applicate.commands.Command it.amattioli.applicate.commands.CommandDecorator it.amattioli.applicate.commands.CommandExecutor it.amattioli.applicate.commands.CommandListener it.amattioli.applicate.commands.DynaCommand it.amattioli.applicate.commands.EditingListManager it.amattioli.applicate.commands.ExecutorAwareCommand it.amattioli.applicate.commands.ListEditor it.amattioli.applicate.commands.MultipleCommand it.amattioli.applicate.commands.Resettable it.amattioli.applicate.commands.UndoableCommand it.amattioli.applicate.commands.ValidationRedirector |
it.amattioli.applicate.commands.AbstractBeanEditor$1 it.amattioli.applicate.commands.ApplicationException it.amattioli.applicate.commands.BeanEditorImpl it.amattioli.applicate.commands.BeanEditorImpl$1 it.amattioli.applicate.commands.CommandDecorator$MyEntry it.amattioli.applicate.commands.CommandEvent it.amattioli.applicate.commands.CommandEventSupport it.amattioli.applicate.commands.CommandResult it.amattioli.applicate.commands.ConcurrencyException it.amattioli.applicate.commands.DefaultEditingListManager it.amattioli.applicate.commands.HibernateEntityEditor it.amattioli.applicate.commands.ListEditorImpl it.amattioli.applicate.commands.ListEditorImpl$1 it.amattioli.applicate.commands.NullCommand it.amattioli.applicate.commands.NullListEditor it.amattioli.applicate.commands.RepositoryEditor it.amattioli.applicate.commands.RepositoryEditor$RepositoryList it.amattioli.applicate.commands.TransactionalCommandContext it.amattioli.applicate.commands.TransactionalCommandEnhancer |
it.amattioli.applicate.browsing it.amattioli.applicate.commands.executors it.amattioli.applicate.commands.tree it.amattioli.applicate.context.hibernate it.amattioli.applicate.sessions |
it.amattioli.applicate.context.hibernate it.amattioli.applicate.properties it.amattioli.applicate.selection it.amattioli.common.exceptions it.amattioli.common.properties it.amattioli.dominate it.amattioli.dominate.sessions it.amattioli.dominate.util it.amattioli.dominate.validation java.beans java.io java.lang java.lang.reflect java.util net.sf.cglib.proxy org.apache.commons.beanutils org.apache.commons.lang org.hibernate org.hibernate.exception org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 5 | 29.0% | 83.0% | 12.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
it.amattioli.applicate.commands.executors.AbstractCommandExecutor it.amattioli.applicate.commands.executors.UndoIgnore |
it.amattioli.applicate.commands.executors.SimpleExecutor it.amattioli.applicate.commands.executors.UndoAvailableCommand it.amattioli.applicate.commands.executors.UndoCommand it.amattioli.applicate.commands.executors.UndoableExecutor it.amattioli.applicate.commands.executors.UndoableExecutor$1 |
it.amattioli.applicate.sessions |
it.amattioli.applicate.commands it.amattioli.common.proxies java.lang java.lang.annotation java.util |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 14 | 40.0% | 100.0% | 40.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
it.amattioli.applicate.commands.tree.AbstractTreeManager it.amattioli.applicate.commands.tree.TreeEditor it.amattioli.applicate.commands.tree.TreeEventListener it.amattioli.applicate.commands.tree.TreeManager |
it.amattioli.applicate.commands.tree.DefaultTreeEditor it.amattioli.applicate.commands.tree.DefaultTreeManager it.amattioli.applicate.commands.tree.TreeEditorCommand it.amattioli.applicate.commands.tree.TreeEvent it.amattioli.applicate.commands.tree.TreeEvent$Type it.amattioli.applicate.commands.tree.TreeEventSupport |
None | it.amattioli.applicate.browsing it.amattioli.applicate.commands it.amattioli.applicate.selection it.amattioli.common.properties it.amattioli.common.proxies it.amattioli.dominate it.amattioli.dominate.util java.beans java.io java.lang java.lang.reflect java.util org.apache.commons.beanutils org.apache.commons.lang |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 11 | 20.0% | 92.0% | 12.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
it.amattioli.applicate.context.hibernate.SameContext |
it.amattioli.applicate.context.hibernate.LongRunningContext it.amattioli.applicate.context.hibernate.ThreadLocalContext it.amattioli.applicate.context.hibernate.TransactionalCommandContext it.amattioli.applicate.context.hibernate.TransactionalCommandEnhancer |
it.amattioli.applicate.commands |
it.amattioli.applicate.commands it.amattioli.dominate.sessions java.beans java.lang java.lang.annotation java.lang.reflect net.sf.cglib.proxy org.apache.commons.beanutils org.hibernate org.hibernate.exception org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 9 | 36.0% | 82.0% | 18.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
it.amattioli.applicate.properties.PropertyAvailabilityRetriever it.amattioli.applicate.properties.PropertyClassRetriever it.amattioli.applicate.properties.PropertyWritabilityRetriever it.amattioli.applicate.properties.ValuesLister |
it.amattioli.applicate.properties.CheckPropertyChangeListener it.amattioli.applicate.properties.PropertyAvailabilityRetrieverImpl it.amattioli.applicate.properties.PropertyClass it.amattioli.applicate.properties.PropertyClassRetrieverImpl it.amattioli.applicate.properties.PropertyNotFoundException it.amattioli.applicate.properties.PropertyWritabilityRetrieverImpl it.amattioli.applicate.properties.ValuesListerImpl |
it.amattioli.applicate.browsing it.amattioli.applicate.commands |
it.amattioli.applicate.util it.amattioli.common.proxies it.amattioli.dominate java.beans java.lang java.lang.reflect java.util org.apache.commons.beanutils org.apache.commons.lang |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 3 | 50.0% | 50.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
it.amattioli.applicate.selection.SelectionListener it.amattioli.applicate.selection.Selector |
it.amattioli.applicate.selection.SelectionEvent it.amattioli.applicate.selection.SelectionSupport |
it.amattioli.applicate.browsing it.amattioli.applicate.commands it.amattioli.applicate.commands.tree |
java.lang java.util org.slf4j |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 7 | 38.0% | 100.0% | 38.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
it.amattioli.applicate.sessions.AbstractServiceEnhancer it.amattioli.applicate.sessions.AbstractServiceFactory it.amattioli.applicate.sessions.Application it.amattioli.applicate.sessions.ServiceEnhancer it.amattioli.applicate.sessions.ServiceFactory |
it.amattioli.applicate.sessions.ApplicateSession it.amattioli.applicate.sessions.CommandEventTopic it.amattioli.applicate.sessions.CompositeServiceEnhancer it.amattioli.applicate.sessions.CompositeServiceFactory it.amattioli.applicate.sessions.DefaultServiceEnhancer it.amattioli.applicate.sessions.ServiceCreationException it.amattioli.applicate.sessions.UnknownServiceException it.amattioli.applicate.sessions.VoidServiceFactory |
None | it.amattioli.applicate.commands it.amattioli.applicate.commands.executors it.amattioli.applicate.util java.lang java.lang.reflect java.util org.apache.commons.lang |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 3 | 0.0% | 60.000004% | 40.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | it.amattioli.applicate.util.ApplicateException |
it.amattioli.applicate.properties it.amattioli.applicate.sessions |
java.lang java.text java.util |
Package | Package Dependencies |
---|---|
it.amattioli.applicate.browsing | it.amattioli.applicate.commands it.amattioli.applicate.context.hibernate it.amattioli.applicate.commands |
it.amattioli.applicate.commands | it.amattioli.applicate.context.hibernate it.amattioli.applicate.commands |
it.amattioli.applicate.commands.executors | it.amattioli.applicate.commands it.amattioli.applicate.context.hibernate it.amattioli.applicate.commands |
it.amattioli.applicate.commands.tree | it.amattioli.applicate.browsing it.amattioli.applicate.commands it.amattioli.applicate.context.hibernate it.amattioli.applicate.commands |
it.amattioli.applicate.context.hibernate | it.amattioli.applicate.commands it.amattioli.applicate.context.hibernate |
it.amattioli.applicate.sessions | it.amattioli.applicate.commands it.amattioli.applicate.context.hibernate it.amattioli.applicate.commands |
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. |