package jdepend.model; import java.util.ArrayList; import java.util.Collection; import jdepend.framework.util.MetricsFormat; import jdepend.metadata.JavaClassRelationItem; public final class GroupCohesionItem implements Comparable<GroupCohesionItem> { public String name; public Float cohesion; public Collection<JavaClassRelationItem> javaClassRelationItems = new ArrayList<JavaClassRelationItem>(); public GroupCohesionItem(String name) { super(); this.name = name; } public String getName() { return name; } public Float getCohesion() { if (this.cohesion == null) { this.cohesion = 0F; for (JavaClassRelationItem item : javaClassRelationItems) { this.cohesion += item.getRelationIntensity(); } } return cohesion; } public Collection<JavaClassRelationItem> getJavaClassRelationItems() { return javaClassRelationItems; } public void addDetail(Collection<JavaClassRelationItem> javaClassRelationItems) { this.javaClassRelationItems.addAll(javaClassRelationItems); } public void addItem(JavaClassRelationItem item) { this.javaClassRelationItems.add(item); } @Override public String toString() { StringBuilder info = new StringBuilder(); info.append("GroupCohesionItem [cohesion="); info.append(MetricsFormat.toFormattedMetrics(cohesion)); info.append(", name="); info.append(name); info.append("]"); for (JavaClassRelationItem javaClassRelationItem : javaClassRelationItems) { info.append("\n "); info.append(javaClassRelationItem); } return info.toString(); } @Override public int compareTo(GroupCohesionItem o) { return new Float(cohesion).compareTo(o.cohesion); } }