Outliers with High or Low Essence

This page presents classes in our corpus with the highest or lowest relative essence. Note that 125640 classes (59%) have zero relative essence. Thus, we only report two small samples of those zero-essence classes. The first sample consists of those zero-essence classes containing the largest number of methods (zero essence, but lots of loop call graph nodes). The second sample constitutes a random sample of zero-essence classes (thus, it is not biased in any way).

High Relative Essence (Classes with Highest Relative Essence)

The classes mostly contain long methods, sometimes accompanied by comments.

Package Class E e Comment/Smell/Pattern
artofillusion. TriMeshBeveler 60.0 5.454 comments, a few long methods (containing large numbers of loops)
sandmark.watermark.execpath. ContextCodeGen 10.0 5.0 one long method (containing a large number of loops)
org.openscience.cdk.structgen.deterministic. GENMDeterministicGenerator 156.0 4.875 comments, long methods (containing large numbers of loops)
weka.core.matrix. EigenvalueDecomposition 50.0 4.545 comments, a few long methods (containing a large number of loops)
cern.colt.matrix.linalg. EigenvalueDecomposition 50.0 4.545 (code clone of above class)
com.jcraft.jorbis. Drft 70.0 4.375 long methods (containing large number of loops)
org.geotools.image.jai. Combine 8.0 4.0 comments, two long methods (containing a large number of loops)
org.apache.derby.iapi.db. ConsistencyChecker 8.0 4.0 comments, one long method (containing a large number of loops)
org.apache.batik.anim. MotionAnimation 8.0 4.0 two long methods (containing a large number of loops)
artofillusion.procedural. ProcedureEditor$ClipboardSelection 8.0 4.0 comments, two long methods (each containing four loops)
org.sablecc.sablecc. LR1Collection 8.0 4.0 long method (with many loops)
org.lnicholls.galleon.apps.movies. Movies$6 8.0 4.0 one long method (with many loops)
artofillusion. PluginRegistry$JarInfo 4.0 4.0 one long method (with many loops)
cern.colt.matrix.impl. BenchmarkMatrix2D 36.0 4.0 long methods (containing large numbers of loops)

Zero Relative Essence (Classes with Largest Number of Methods)

The classes are mostly data classes, middle men, or adapters with default method implementations, or they are machine-generated.

Package Class Methods Comment/Smell/Pattern
net.sf.jasperreports.engine.util. JRStyleResolver 99 all static "decorator" methods, all following almost the same code pattern (if delegate returns null, ask someone else)
org.apache.openejb.jee.oejb2. ObjectFactory 99 (non-abstract) factory
org.jruby.ast.visitor. AbstractVisitor 97 abstract superclass for visitor implementations, provides a large number of default visit methods
org.apache.poi.hssf.record. ExtendedFormatRecord 96 data class that can serialize/deserialize its objects to/from binary representation
org.hibernate.cfg. Settings 95 data class
sandmark.util.newgraph. EditableGraphStyle 94 middle man (acts as a kind of facade on or adapter to NodeAttributes and EdgeAttributes)
com.ibm.as400.vaccess. AS400JDBCDataSourcePaneDataBean 94 data class (a "DataBean", used by GUI to load/store its state)
org.compiere.model. X_M_InOut 94 not human-written, but machine-generated code
org.compiere.model. X_M_Product 94 not human-written, but machine-generated code
apache.xml.serializer. EmptySerializer 93 an adapter with many default method implementations
com.sun.org.apache.xml.internal.serializer. EmptySerializer 93 (clone of above)
org.sablecc.sablecc.analysis. AnalysisAdapter 93 an adapter with many default method implementations
net.sf.jasperreports.engine.base. JRBasePrintImage 93 data class
org.springframework.orm.hibernate3. HibernateTemplate 92 middle man
org.compiere.model. X_I_Product 92 not human-written, but machine-generated code
org.apache.strutsel.taglib.html. ELImgTag 92 data class
net.sf.jasperreports.engine.fill. JRTemplatePrintImage 90 middle man

Zero Relative Essence (Random Sample of Classes)

Package Class Comment/Smell/Pattern
org.apache.struts. Globals data class with one useful method
org.eclipse.jdt.internal.corext.callhierarchy. JavaImplementorFinder middle man
net.sourceforge.squirrel_sql.fw.util.beanwrapper. URLWrapperBeanInfo data class conforming to Java Beans introspection requirements
proguard.classfile.attribute.annotation. RuntimeVisibleAnnotationsAttrInfo participant in visitor pattern
org.apache.lucene.document. Field$Index enum with loop-less static utility methods
org.jgraph.pad.actionsbase.lazy. FormatLineLabelNormal listener, participant in template method pattern
com.sun.inputmethods.internal.indicim. IndicInputMethod algorithmically meaningful but loop-less methods; one method contains a manually unrolled loop
net.sourceforge.ganttproject.time.gregorian. CachingTextFormatter participant in template method pattern, listener
org.apache.tools.ant.taskdefs.optional.native2ascii. DefaultNative2Ascii participant in template method pattern
org.apache.xerces.impl.xs. ElementPSVImpl data class, getters and one reset method
org.springframework.remoting. RemoteConnectFailureException exception subtype, just a constructor delegating to super class, only purpose is to have a new exception type
org.exoplatform.container.client. MockClientInfo mock object (only getters, all returning constants)