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 |
---|---|---|---|---|---|---|---|---|---|
de.schlichtherle.truezip.entry | 12 | 6 | 6 | 2 | 7 | 50.0% | 78.0% | 28.0% | 1 |
de.schlichtherle.truezip.fs | 217 | 182 | 35 | 2 | 17 | 16.0% | 89.0% | 6.0% | 1 |
de.schlichtherle.truezip.fs.sl | 8 | 7 | 1 | 0 | 6 | 12.0% | 100.0% | 12.0% | 1 |
de.schlichtherle.truezip.fs.spi | 4 | 0 | 4 | 1 | 5 | 100.0% | 83.0% | 83.0% | 1 |
de.schlichtherle.truezip.io | 35 | 27 | 8 | 3 | 10 | 23.0% | 77.0% | 0.0% | 1 |
de.schlichtherle.truezip.rof | 12 | 7 | 5 | 2 | 5 | 42.0% | 71.0% | 13.0% | 1 |
de.schlichtherle.truezip.socket | 87 | 60 | 27 | 3 | 9 | 31.0% | 75.0% | 6.0% | 1 |
de.schlichtherle.truezip.socket.sl | 4 | 3 | 1 | 0 | 7 | 25.0% | 100.0% | 25.0% | 1 |
de.schlichtherle.truezip.socket.spi | 3 | 0 | 3 | 1 | 2 | 100.0% | 67.0% | 67.0% | 1 |
de.schlichtherle.truezip.util | 47 | 35 | 12 | 7 | 12 | 26.0% | 63.0% | 11.0% | 1 |
Packages
[ summary ] [ packages ] [ cycles ] [ explanations ]de.schlichtherle.truezip.entry
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 7 | 50.0% | 78.0% | 28.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.entry.DecoratingEntry de.schlichtherle.truezip.entry.DecoratingEntryContainer de.schlichtherle.truezip.entry.Entry de.schlichtherle.truezip.entry.EntryContainer de.schlichtherle.truezip.entry.MutableEntry de.schlichtherle.truezip.entry.package-info |
de.schlichtherle.truezip.entry.Entry$Access de.schlichtherle.truezip.entry.Entry$Size de.schlichtherle.truezip.entry.Entry$Type de.schlichtherle.truezip.entry.EntryName de.schlichtherle.truezip.entry.EntryNameBeanInfo de.schlichtherle.truezip.entry.EntryNameBeanInfo$1 |
de.schlichtherle.truezip.fs de.schlichtherle.truezip.socket |
de.schlichtherle.truezip.util java.awt java.beans java.io java.lang java.net java.util |
de.schlichtherle.truezip.fs
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 17 | 16.0% | 89.0% | 6.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.fs.FsAbstractCompositeDriver de.schlichtherle.truezip.fs.FsAbstractController de.schlichtherle.truezip.fs.FsArchiveDriver de.schlichtherle.truezip.fs.FsArchiveEntry de.schlichtherle.truezip.fs.FsArchiveFileSystem$TouchListener de.schlichtherle.truezip.fs.FsArchiveFileSystemOperation de.schlichtherle.truezip.fs.FsBasicArchiveController de.schlichtherle.truezip.fs.FsCacheController$SocketFactory de.schlichtherle.truezip.fs.FsCharsetArchiveDriver de.schlichtherle.truezip.fs.FsCompositeDriver de.schlichtherle.truezip.fs.FsController de.schlichtherle.truezip.fs.FsDecoratingController de.schlichtherle.truezip.fs.FsDecoratingManager de.schlichtherle.truezip.fs.FsDecoratingModel de.schlichtherle.truezip.fs.FsDriver de.schlichtherle.truezip.fs.FsDriverProvider de.schlichtherle.truezip.fs.FsEntry de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$Operation de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$State de.schlichtherle.truezip.fs.FsFileSystemArchiveController de.schlichtherle.truezip.fs.FsFileSystemArchiveController$MountState de.schlichtherle.truezip.fs.FsFinalizeController$SocketFactory de.schlichtherle.truezip.fs.FsLockController$Operation de.schlichtherle.truezip.fs.FsLockController$SocketFactory de.schlichtherle.truezip.fs.FsLockController$ThreadLocalAccountFactory de.schlichtherle.truezip.fs.FsLockModelController de.schlichtherle.truezip.fs.FsLockModelDecoratingController de.schlichtherle.truezip.fs.FsManager de.schlichtherle.truezip.fs.FsManagerProvider de.schlichtherle.truezip.fs.FsModel de.schlichtherle.truezip.fs.FsResourceController$SocketFactory de.schlichtherle.truezip.fs.FsSyncController$SocketFactory de.schlichtherle.truezip.fs.FsUriModifier de.schlichtherle.truezip.fs.FsUriModifier$PostFix de.schlichtherle.truezip.fs.package-info |
de.schlichtherle.truezip.fs.FsArchiveEntries de.schlichtherle.truezip.fs.FsArchiveFileSystem de.schlichtherle.truezip.fs.FsArchiveFileSystem$EntryTable de.schlichtherle.truezip.fs.FsArchiveFileSystem$PathLink de.schlichtherle.truezip.fs.FsArchiveFileSystem$SegmentLink de.schlichtherle.truezip.fs.FsArchiveFileSystem$Splitter de.schlichtherle.truezip.fs.FsArchiveFileSystemException de.schlichtherle.truezip.fs.FsBasicArchiveController$1Input de.schlichtherle.truezip.fs.FsBasicArchiveController$1Output de.schlichtherle.truezip.fs.FsBasicArchiveController$ProxyEntry de.schlichtherle.truezip.fs.FsCacheController de.schlichtherle.truezip.fs.FsCacheController$1 de.schlichtherle.truezip.fs.FsCacheController$1Input de.schlichtherle.truezip.fs.FsCacheController$1Output de.schlichtherle.truezip.fs.FsCacheController$EntryCache de.schlichtherle.truezip.fs.FsCacheController$EntryCache$Input de.schlichtherle.truezip.fs.FsCacheController$EntryCache$Input$Stream de.schlichtherle.truezip.fs.FsCacheController$EntryCache$Nio2Output de.schlichtherle.truezip.fs.FsCacheController$EntryCache$Nio2Output$Channel de.schlichtherle.truezip.fs.FsCacheController$EntryCache$Output de.schlichtherle.truezip.fs.FsCacheController$EntryCache$Output$Stream de.schlichtherle.truezip.fs.FsCacheController$SocketFactory$1 de.schlichtherle.truezip.fs.FsCacheController$SocketFactory$2 de.schlichtherle.truezip.fs.FsContextController de.schlichtherle.truezip.fs.FsContextController$Input de.schlichtherle.truezip.fs.FsContextController$Output de.schlichtherle.truezip.fs.FsCovariantEntry de.schlichtherle.truezip.fs.FsDefaultManager de.schlichtherle.truezip.fs.FsDefaultManager$ManagedModel de.schlichtherle.truezip.fs.FsDefaultManager$ReverseControllerComparator de.schlichtherle.truezip.fs.FsEntryName de.schlichtherle.truezip.fs.FsEntryNameBeanInfo de.schlichtherle.truezip.fs.FsEntryNameBeanInfo$1 de.schlichtherle.truezip.fs.FsEntryNotFoundException de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1 de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input$GetLocalTarget de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input$NewInputStream de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input$NewReadOnlyFile de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Input$NewSeekableByteChannel de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Mknod de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$GetLocalTarget de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewOutputStream de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Output$NewSeekableByteChannel de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1SetTime de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$1Unlink de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$2SetTime de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$GetEntry de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$IsExecutable de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$IsReadOnly de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$IsReadable de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$IsWritable de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$SetReadOnly de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$TryChild de.schlichtherle.truezip.fs.FsFalsePositiveArchiveController$UseParent de.schlichtherle.truezip.fs.FsFalsePositiveArchiveException de.schlichtherle.truezip.fs.FsFileSystemArchiveController$1 de.schlichtherle.truezip.fs.FsFileSystemArchiveController$MountedFileSystem de.schlichtherle.truezip.fs.FsFileSystemArchiveController$ResetFileSystem de.schlichtherle.truezip.fs.FsFilteringManager de.schlichtherle.truezip.fs.FsFilteringManager$FilteredControllerIterator de.schlichtherle.truezip.fs.FsFinalizeController de.schlichtherle.truezip.fs.FsFinalizeController$1 de.schlichtherle.truezip.fs.FsFinalizeController$FinalizeInputStream de.schlichtherle.truezip.fs.FsFinalizeController$FinalizeOutputStream de.schlichtherle.truezip.fs.FsFinalizeController$FinalizeReadOnlyFile de.schlichtherle.truezip.fs.FsFinalizeController$FinalizeSeekableByteChannel de.schlichtherle.truezip.fs.FsFinalizeController$Input de.schlichtherle.truezip.fs.FsFinalizeController$Nio2Input de.schlichtherle.truezip.fs.FsFinalizeController$Nio2Output de.schlichtherle.truezip.fs.FsFinalizeController$Output de.schlichtherle.truezip.fs.FsFinalizeController$SocketFactory$1 de.schlichtherle.truezip.fs.FsFinalizeController$SocketFactory$2 de.schlichtherle.truezip.fs.FsInputOption de.schlichtherle.truezip.fs.FsInputOptions de.schlichtherle.truezip.fs.FsLockController de.schlichtherle.truezip.fs.FsLockController$1 de.schlichtherle.truezip.fs.FsLockController$1Close de.schlichtherle.truezip.fs.FsLockController$1GetEntry de.schlichtherle.truezip.fs.FsLockController$1IsExecutable de.schlichtherle.truezip.fs.FsLockController$1IsReadOnly de.schlichtherle.truezip.fs.FsLockController$1IsReadable de.schlichtherle.truezip.fs.FsLockController$1IsWritable de.schlichtherle.truezip.fs.FsLockController$1Mknod de.schlichtherle.truezip.fs.FsLockController$1SetReadOnly de.schlichtherle.truezip.fs.FsLockController$1SetTime de.schlichtherle.truezip.fs.FsLockController$1Sync de.schlichtherle.truezip.fs.FsLockController$1Unlink de.schlichtherle.truezip.fs.FsLockController$2SetTime de.schlichtherle.truezip.fs.FsLockController$Account de.schlichtherle.truezip.fs.FsLockController$Input de.schlichtherle.truezip.fs.FsLockController$Input$1GetLocalTarget de.schlichtherle.truezip.fs.FsLockController$Input$1NewInputStream de.schlichtherle.truezip.fs.FsLockController$Input$1NewReadOnlyFile de.schlichtherle.truezip.fs.FsLockController$LockInputStream de.schlichtherle.truezip.fs.FsLockController$LockOutputStream de.schlichtherle.truezip.fs.FsLockController$LockReadOnlyFile de.schlichtherle.truezip.fs.FsLockController$LockSeekableByteChannel de.schlichtherle.truezip.fs.FsLockController$Nio2Input de.schlichtherle.truezip.fs.FsLockController$Nio2Input$1NewSeekableByteChannel de.schlichtherle.truezip.fs.FsLockController$Nio2Output de.schlichtherle.truezip.fs.FsLockController$Nio2Output$1NewSeekableByteChannel de.schlichtherle.truezip.fs.FsLockController$Output de.schlichtherle.truezip.fs.FsLockController$Output$1GetLocalTarget de.schlichtherle.truezip.fs.FsLockController$Output$1NewOutputStream de.schlichtherle.truezip.fs.FsLockController$SocketFactory$1 de.schlichtherle.truezip.fs.FsLockController$SocketFactory$2 de.schlichtherle.truezip.fs.FsLockController$ThreadLocalAccountFactory$1 de.schlichtherle.truezip.fs.FsLockController$ThreadLocalAccountFactory$1$1 de.schlichtherle.truezip.fs.FsLockController$ThreadLocalAccountFactory$2 de.schlichtherle.truezip.fs.FsLockController$ThreadLocalAccountFactory$2$1 de.schlichtherle.truezip.fs.FsLockModel de.schlichtherle.truezip.fs.FsMountPoint de.schlichtherle.truezip.fs.FsMountPointBeanInfo de.schlichtherle.truezip.fs.FsMountPointBeanInfo$1 de.schlichtherle.truezip.fs.FsNeedsLockRetryException de.schlichtherle.truezip.fs.FsNeedsSyncException de.schlichtherle.truezip.fs.FsNeedsWriteLockException de.schlichtherle.truezip.fs.FsOperationContext de.schlichtherle.truezip.fs.FsOutputOption de.schlichtherle.truezip.fs.FsOutputOptions de.schlichtherle.truezip.fs.FsPath de.schlichtherle.truezip.fs.FsPathBeanInfo de.schlichtherle.truezip.fs.FsPathBeanInfo$1 de.schlichtherle.truezip.fs.FsPersistentFalsePositiveArchiveException de.schlichtherle.truezip.fs.FsReadOnlyArchiveFileSystem de.schlichtherle.truezip.fs.FsReadOnlyArchiveFileSystemException de.schlichtherle.truezip.fs.FsResourceAccountant de.schlichtherle.truezip.fs.FsResourceAccountant$1 de.schlichtherle.truezip.fs.FsResourceAccountant$Account de.schlichtherle.truezip.fs.FsResourceAccountant$Resources de.schlichtherle.truezip.fs.FsResourceController de.schlichtherle.truezip.fs.FsResourceController$1 de.schlichtherle.truezip.fs.FsResourceController$1IOExceptionHandler de.schlichtherle.truezip.fs.FsResourceController$Input de.schlichtherle.truezip.fs.FsResourceController$Nio2Input de.schlichtherle.truezip.fs.FsResourceController$Nio2Output de.schlichtherle.truezip.fs.FsResourceController$Output de.schlichtherle.truezip.fs.FsResourceController$ResourceInputStream de.schlichtherle.truezip.fs.FsResourceController$ResourceOutputStream de.schlichtherle.truezip.fs.FsResourceController$ResourceReadOnlyFile de.schlichtherle.truezip.fs.FsResourceController$ResourceSeekableByteChannel de.schlichtherle.truezip.fs.FsResourceController$SocketFactory$1 de.schlichtherle.truezip.fs.FsResourceController$SocketFactory$2 de.schlichtherle.truezip.fs.FsResourceOpenException de.schlichtherle.truezip.fs.FsScheme de.schlichtherle.truezip.fs.FsSchemeBeanInfo de.schlichtherle.truezip.fs.FsSchemeBeanInfo$1 de.schlichtherle.truezip.fs.FsSimpleCompositeDriver de.schlichtherle.truezip.fs.FsSyncController de.schlichtherle.truezip.fs.FsSyncController$1 de.schlichtherle.truezip.fs.FsSyncController$Input de.schlichtherle.truezip.fs.FsSyncController$Nio2Input de.schlichtherle.truezip.fs.FsSyncController$Nio2Output de.schlichtherle.truezip.fs.FsSyncController$Output de.schlichtherle.truezip.fs.FsSyncController$SocketFactory$1 de.schlichtherle.truezip.fs.FsSyncController$SocketFactory$2 de.schlichtherle.truezip.fs.FsSyncController$SyncInputStream de.schlichtherle.truezip.fs.FsSyncController$SyncOutputStream de.schlichtherle.truezip.fs.FsSyncController$SyncReadOnlyFile de.schlichtherle.truezip.fs.FsSyncController$SyncSeekableByteChannel de.schlichtherle.truezip.fs.FsSyncException de.schlichtherle.truezip.fs.FsSyncExceptionBuilder de.schlichtherle.truezip.fs.FsSyncOption de.schlichtherle.truezip.fs.FsSyncOptions de.schlichtherle.truezip.fs.FsSyncShutdownHook de.schlichtherle.truezip.fs.FsSyncShutdownHook$Hook de.schlichtherle.truezip.fs.FsSyncWarningException de.schlichtherle.truezip.fs.FsTargetArchiveController de.schlichtherle.truezip.fs.FsTargetArchiveController$1 de.schlichtherle.truezip.fs.FsTargetArchiveController$1Input de.schlichtherle.truezip.fs.FsTargetArchiveController$1Output de.schlichtherle.truezip.fs.FsTargetArchiveController$DummyInputService de.schlichtherle.truezip.fs.FsTargetArchiveController$InputArchive de.schlichtherle.truezip.fs.FsTargetArchiveController$OutputArchive de.schlichtherle.truezip.fs.FsUriModifier$1 de.schlichtherle.truezip.fs.FsUriModifier$2 de.schlichtherle.truezip.fs.FsUriModifier$PostFix$1 de.schlichtherle.truezip.fs.FsUriModifier$PostFix$2 de.schlichtherle.truezip.fs.FsUriModifier$PostFix$3 |
de.schlichtherle.truezip.fs.sl de.schlichtherle.truezip.fs.spi |
de.schlichtherle.truezip.entry de.schlichtherle.truezip.io de.schlichtherle.truezip.rof de.schlichtherle.truezip.socket de.schlichtherle.truezip.util java.awt java.beans java.io java.lang java.net java.nio.channels java.nio.charset java.util java.util.concurrent java.util.concurrent.locks java.util.logging javax.swing |
de.schlichtherle.truezip.fs.sl
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 6 | 12.0% | 100.0% | 12.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.fs.sl.package-info |
de.schlichtherle.truezip.fs.sl.FsDriverLocator de.schlichtherle.truezip.fs.sl.FsDriverLocator$Boot de.schlichtherle.truezip.fs.sl.FsManagerLocator de.schlichtherle.truezip.fs.sl.FsManagerLocator$1 de.schlichtherle.truezip.fs.sl.FsManagerLocator$Boot de.schlichtherle.truezip.fs.sl.FsManagerLocator$Boot$1 de.schlichtherle.truezip.fs.sl.FsManagerLocator$DefaultManagerService |
None | de.schlichtherle.truezip.fs de.schlichtherle.truezip.fs.spi de.schlichtherle.truezip.util java.lang java.util java.util.logging |
de.schlichtherle.truezip.fs.spi
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 5 | 100.0% | 83.0% | 83.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.fs.spi.FsDriverService de.schlichtherle.truezip.fs.spi.FsManagerDecorator de.schlichtherle.truezip.fs.spi.FsManagerService de.schlichtherle.truezip.fs.spi.package-info |
None | de.schlichtherle.truezip.fs.sl |
de.schlichtherle.truezip.fs de.schlichtherle.truezip.util java.lang java.net java.util |
de.schlichtherle.truezip.io
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 10 | 23.0% | 77.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.io.DecoratingInputStream de.schlichtherle.truezip.io.DecoratingOutputStream de.schlichtherle.truezip.io.DecoratingSeekableByteChannel de.schlichtherle.truezip.io.DisconnectingInputStream de.schlichtherle.truezip.io.DisconnectingOutputStream de.schlichtherle.truezip.io.DisconnectingSeekableByteChannel de.schlichtherle.truezip.io.IOExceptionSeekableByteChannel de.schlichtherle.truezip.io.package-info |
de.schlichtherle.truezip.io.ClosedException de.schlichtherle.truezip.io.FileBusyException de.schlichtherle.truezip.io.IOExceptionOutputStream de.schlichtherle.truezip.io.InputBusyException de.schlichtherle.truezip.io.InputClosedException de.schlichtherle.truezip.io.InputException de.schlichtherle.truezip.io.LEDataOutputStream de.schlichtherle.truezip.io.LockInputStream de.schlichtherle.truezip.io.LockOutputStream de.schlichtherle.truezip.io.OutputBusyException de.schlichtherle.truezip.io.OutputClosedException de.schlichtherle.truezip.io.Paths de.schlichtherle.truezip.io.Paths$Normalizer de.schlichtherle.truezip.io.Paths$Splitter de.schlichtherle.truezip.io.SeekableByteBufferChannel de.schlichtherle.truezip.io.SequentialIOException de.schlichtherle.truezip.io.SequentialIOException$1 de.schlichtherle.truezip.io.SequentialIOException$2 de.schlichtherle.truezip.io.SequentialIOExceptionBuilder de.schlichtherle.truezip.io.Streams de.schlichtherle.truezip.io.Streams$1 de.schlichtherle.truezip.io.Streams$1ReaderTask de.schlichtherle.truezip.io.Streams$Buffer de.schlichtherle.truezip.io.Streams$ReaderThread de.schlichtherle.truezip.io.Streams$ReaderThreadFactory de.schlichtherle.truezip.io.SynchronizedInputStream de.schlichtherle.truezip.io.SynchronizedOutputStream |
de.schlichtherle.truezip.fs de.schlichtherle.truezip.rof de.schlichtherle.truezip.socket |
de.schlichtherle.truezip.util java.io java.lang java.lang.ref java.lang.reflect java.nio java.nio.channels java.util java.util.concurrent java.util.concurrent.locks |
de.schlichtherle.truezip.rof
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 5 | 42.0% | 71.0% | 13.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.rof.AbstractReadOnlyFile de.schlichtherle.truezip.rof.DecoratingReadOnlyFile de.schlichtherle.truezip.rof.DisconnectingReadOnlyFile de.schlichtherle.truezip.rof.ReadOnlyFile de.schlichtherle.truezip.rof.package-info |
de.schlichtherle.truezip.rof.BufferedReadOnlyFile de.schlichtherle.truezip.rof.ByteArrayReadOnlyFile de.schlichtherle.truezip.rof.DefaultReadOnlyFile de.schlichtherle.truezip.rof.IntervalReadOnlyFile de.schlichtherle.truezip.rof.LockReadOnlyFile de.schlichtherle.truezip.rof.ReadOnlyFileInputStream de.schlichtherle.truezip.rof.SynchronizedReadOnlyFile |
de.schlichtherle.truezip.fs de.schlichtherle.truezip.socket |
de.schlichtherle.truezip.io java.io java.lang java.util.concurrent.locks java.util.logging |
de.schlichtherle.truezip.socket
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 9 | 31.0% | 75.0% | 6.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.socket.ClutchInputSocket de.schlichtherle.truezip.socket.ClutchOutputSocket de.schlichtherle.truezip.socket.DecoratingInputShop de.schlichtherle.truezip.socket.DecoratingInputSocket de.schlichtherle.truezip.socket.DecoratingOutputShop de.schlichtherle.truezip.socket.DecoratingOutputSocket de.schlichtherle.truezip.socket.DelegatingInputSocket de.schlichtherle.truezip.socket.DelegatingOutputSocket de.schlichtherle.truezip.socket.DisconnectingInputShop$SocketFactory de.schlichtherle.truezip.socket.DisconnectingOutputShop$SocketFactory de.schlichtherle.truezip.socket.IOCache$OutputBufferPool de.schlichtherle.truezip.socket.IOCache$SocketFactory de.schlichtherle.truezip.socket.IOCache$Strategy de.schlichtherle.truezip.socket.IOEntry de.schlichtherle.truezip.socket.IOPool de.schlichtherle.truezip.socket.IOPool$Entry de.schlichtherle.truezip.socket.IOPoolProvider de.schlichtherle.truezip.socket.IOSocket de.schlichtherle.truezip.socket.InputEntry de.schlichtherle.truezip.socket.InputService de.schlichtherle.truezip.socket.InputShop de.schlichtherle.truezip.socket.InputSocket de.schlichtherle.truezip.socket.OutputEntry de.schlichtherle.truezip.socket.OutputService de.schlichtherle.truezip.socket.OutputShop de.schlichtherle.truezip.socket.OutputSocket de.schlichtherle.truezip.socket.package-info |
de.schlichtherle.truezip.socket.DisconnectingInputShop de.schlichtherle.truezip.socket.DisconnectingInputShop$1 de.schlichtherle.truezip.socket.DisconnectingInputShop$DisconnectingInputStreamImpl de.schlichtherle.truezip.socket.DisconnectingInputShop$DisconnectingReadOnlyFileImpl de.schlichtherle.truezip.socket.DisconnectingInputShop$DisconnectingSeekableByteChannelImpl de.schlichtherle.truezip.socket.DisconnectingInputShop$Input de.schlichtherle.truezip.socket.DisconnectingInputShop$Nio2Input de.schlichtherle.truezip.socket.DisconnectingInputShop$SocketFactory$1 de.schlichtherle.truezip.socket.DisconnectingInputShop$SocketFactory$2 de.schlichtherle.truezip.socket.DisconnectingOutputShop de.schlichtherle.truezip.socket.DisconnectingOutputShop$1 de.schlichtherle.truezip.socket.DisconnectingOutputShop$DisconnectingOutputStreamImpl de.schlichtherle.truezip.socket.DisconnectingOutputShop$DisconnectingSeekableByteChannel de.schlichtherle.truezip.socket.DisconnectingOutputShop$Nio2Output de.schlichtherle.truezip.socket.DisconnectingOutputShop$Output de.schlichtherle.truezip.socket.DisconnectingOutputShop$SocketFactory$1 de.schlichtherle.truezip.socket.DisconnectingOutputShop$SocketFactory$2 de.schlichtherle.truezip.socket.IOCache de.schlichtherle.truezip.socket.IOCache$1 de.schlichtherle.truezip.socket.IOCache$Buffer de.schlichtherle.truezip.socket.IOCache$Buffer$Input de.schlichtherle.truezip.socket.IOCache$Buffer$Input$1File de.schlichtherle.truezip.socket.IOCache$Buffer$Input$1Stream de.schlichtherle.truezip.socket.IOCache$Buffer$Nio2Input de.schlichtherle.truezip.socket.IOCache$Buffer$Nio2Input$1Channel de.schlichtherle.truezip.socket.IOCache$Buffer$Nio2Output de.schlichtherle.truezip.socket.IOCache$Buffer$Nio2Output$1Channel de.schlichtherle.truezip.socket.IOCache$Buffer$Output de.schlichtherle.truezip.socket.IOCache$Buffer$Output$1Stream de.schlichtherle.truezip.socket.IOCache$Input de.schlichtherle.truezip.socket.IOCache$InputBufferPool de.schlichtherle.truezip.socket.IOCache$Output de.schlichtherle.truezip.socket.IOCache$ProxyEntry de.schlichtherle.truezip.socket.IOCache$SocketFactory$1 de.schlichtherle.truezip.socket.IOCache$SocketFactory$2 de.schlichtherle.truezip.socket.IOCache$Strategy$1 de.schlichtherle.truezip.socket.IOCache$Strategy$2 de.schlichtherle.truezip.socket.IOCache$Strategy$3 de.schlichtherle.truezip.socket.IOCache$WriteBackOutputBufferPool de.schlichtherle.truezip.socket.IOCache$WriteThroughOutputBufferPool de.schlichtherle.truezip.socket.LazyInputSocket de.schlichtherle.truezip.socket.LazyInputSocket$ProxyInputStream de.schlichtherle.truezip.socket.LazyInputSocket$ProxyReadOnlyFile de.schlichtherle.truezip.socket.LazyOutputSocket de.schlichtherle.truezip.socket.LazyOutputSocket$ProxyOutputStream de.schlichtherle.truezip.socket.LockInputShop de.schlichtherle.truezip.socket.LockInputShop$1Input de.schlichtherle.truezip.socket.LockOutputShop de.schlichtherle.truezip.socket.LockOutputShop$1Output de.schlichtherle.truezip.socket.MultiplexedOutputShop de.schlichtherle.truezip.socket.MultiplexedOutputShop$1 de.schlichtherle.truezip.socket.MultiplexedOutputShop$1Output de.schlichtherle.truezip.socket.MultiplexedOutputShop$BufferedEntriesIterator de.schlichtherle.truezip.socket.MultiplexedOutputShop$BufferedEntryOutputStream de.schlichtherle.truezip.socket.MultiplexedOutputShop$BufferedEntryOutputStream$1InputProxy de.schlichtherle.truezip.socket.MultiplexedOutputShop$EntryOutputStream de.schlichtherle.truezip.socket.SynchronizedInputShop de.schlichtherle.truezip.socket.SynchronizedInputShop$1Input de.schlichtherle.truezip.socket.SynchronizedOutputShop de.schlichtherle.truezip.socket.SynchronizedOutputShop$1Output |
de.schlichtherle.truezip.fs de.schlichtherle.truezip.socket.sl de.schlichtherle.truezip.socket.spi |
de.schlichtherle.truezip.entry de.schlichtherle.truezip.io de.schlichtherle.truezip.rof de.schlichtherle.truezip.util java.io java.lang java.nio.channels java.util java.util.concurrent.locks |
de.schlichtherle.truezip.socket.sl
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 7 | 25.0% | 100.0% | 25.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.socket.sl.package-info |
de.schlichtherle.truezip.socket.sl.IOPoolLocator de.schlichtherle.truezip.socket.sl.IOPoolLocator$Boot de.schlichtherle.truezip.socket.sl.IOPoolLocator$Boot$1 |
None | de.schlichtherle.truezip.socket de.schlichtherle.truezip.socket.spi de.schlichtherle.truezip.util java.lang java.text java.util java.util.logging |
de.schlichtherle.truezip.socket.spi
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 2 | 100.0% | 67.0% | 67.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.socket.spi.IOPoolDecorator de.schlichtherle.truezip.socket.spi.IOPoolService de.schlichtherle.truezip.socket.spi.package-info |
None | de.schlichtherle.truezip.socket.sl |
de.schlichtherle.truezip.socket java.lang |
de.schlichtherle.truezip.util
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
7 | 12 | 26.0% | 63.0% | 11.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
de.schlichtherle.truezip.util.AbstractExceptionBuilder de.schlichtherle.truezip.util.CanonicalStringSet$Canonicalizer de.schlichtherle.truezip.util.ControlFlowException de.schlichtherle.truezip.util.ExceptionBuilder de.schlichtherle.truezip.util.ExceptionHandler de.schlichtherle.truezip.util.FilteringIterator de.schlichtherle.truezip.util.Link de.schlichtherle.truezip.util.Link$Type de.schlichtherle.truezip.util.Pool de.schlichtherle.truezip.util.Pool$Releasable de.schlichtherle.truezip.util.Resource de.schlichtherle.truezip.util.package-info |
de.schlichtherle.truezip.util.ArrayHelper de.schlichtherle.truezip.util.BitField de.schlichtherle.truezip.util.BitFieldBeanInfo de.schlichtherle.truezip.util.BitFieldBeanInfo$1 de.schlichtherle.truezip.util.CanonicalStringSet de.schlichtherle.truezip.util.CanonicalStringSet$1 de.schlichtherle.truezip.util.CanonicalStringSet$CanonicalStringIterator de.schlichtherle.truezip.util.HashMaps de.schlichtherle.truezip.util.InheritableThreadLocalStack de.schlichtherle.truezip.util.InheritableThreadLocalStack$Node de.schlichtherle.truezip.util.JSE7 de.schlichtherle.truezip.util.JointEnumeration de.schlichtherle.truezip.util.JointIterator de.schlichtherle.truezip.util.Link$1 de.schlichtherle.truezip.util.Link$Type$1 de.schlichtherle.truezip.util.Link$Type$2 de.schlichtherle.truezip.util.Link$Type$3 de.schlichtherle.truezip.util.Link$Type$4 de.schlichtherle.truezip.util.Link$Type$Phantom de.schlichtherle.truezip.util.Link$Type$Soft de.schlichtherle.truezip.util.Link$Type$Strong de.schlichtherle.truezip.util.Link$Type$Weak de.schlichtherle.truezip.util.Links de.schlichtherle.truezip.util.QuotedUriSyntaxException de.schlichtherle.truezip.util.ServiceLocator de.schlichtherle.truezip.util.SuffixSet de.schlichtherle.truezip.util.SuffixSet$1 de.schlichtherle.truezip.util.SuffixSet$SuffixMapper de.schlichtherle.truezip.util.ThreadGroups de.schlichtherle.truezip.util.Threads de.schlichtherle.truezip.util.Throwables de.schlichtherle.truezip.util.UriBuilder de.schlichtherle.truezip.util.UriDecoder de.schlichtherle.truezip.util.UriEncoder de.schlichtherle.truezip.util.UriEncoder$Encoding |
de.schlichtherle.truezip.entry de.schlichtherle.truezip.fs de.schlichtherle.truezip.fs.sl de.schlichtherle.truezip.fs.spi de.schlichtherle.truezip.io de.schlichtherle.truezip.socket de.schlichtherle.truezip.socket.sl |
java.awt java.beans java.io java.lang java.lang.ref java.lang.reflect java.net java.nio java.nio.charset java.util java.util.logging java.util.regex |
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. |