package com.ikokoon.serenity.model; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.ManyToMany; /** * @author Michael Couck * @since 12.08.09 * @version 01.00 */ @Entity @Unique(fields = { Composite.NAME }) public class Class<E, F> extends Composite<Package<?, ?>, Method<?, ?>> implements Comparable<Class<?, ?>>, Serializable { private String name; private int access; private Class<?, ?> outerClass; private Method<?, ?> outerMethod; private List<Class<?, ?>> innerClasses = new ArrayList<Class<?, ?>>(); private double coverage; private double complexity; private double stability; private double efference; private double afference; private boolean interfaze; private double allocations; private List<Efferent> efferent = new ArrayList<Efferent>(); private List<Afferent> afferent = new ArrayList<Afferent>(); private List<Snapshot<?, ?>> snapshots = new ArrayList<Snapshot<?, ?>>(); public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAccess() { return access; } public void setAccess(int access) { this.access = access; } public Class<?, ?> getOuterClass() { return outerClass; } public void setOuterClass(Class<?, ?> outerClass) { this.outerClass = outerClass; } public Method<?, ?> getOuterMethod() { return outerMethod; } public void setOuterMethod(Method<?, ?> outerMethod) { this.outerMethod = outerMethod; } public List<Class<?, ?>> getInnerClasses() { return innerClasses; } public void setInnerClasses(List<Class<?, ?>> innerClasses) { this.innerClasses = innerClasses; } public double getComplexity() { return complexity; } public void setComplexity(double complexity) { this.complexity = complexity; } public double getCoverage() { return coverage; } public void setCoverage(double coverage) { this.coverage = coverage; } public double getStability() { return stability; } public void setStability(double stability) { this.stability = stability; } public double getEfference() { return efference; } public void setEfference(double efferent) { this.efference = efferent; } public double getAfference() { return afference; } public void setAfference(double afferent) { this.afference = afferent; } public boolean getInterfaze() { return interfaze; } public void setInterfaze(boolean interfaze) { this.interfaze = interfaze; } public double getAllocations() { return allocations; } public void setAllocations(double allocations) { this.allocations = allocations; } @ManyToMany(cascade = { CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.LAZY) public List<Efferent> getEfferent() { return efferent; } public void setEfferent(List<Efferent> efferent) { this.efferent = efferent; } @ManyToMany(cascade = { CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.LAZY) public List<Afferent> getAfferent() { return afferent; } public void setAfferent(List<Afferent> afferent) { this.afferent = afferent; } public List<Snapshot<?, ?>> getSnapshots() { return snapshots; } public void setSnapshots(List<Snapshot<?, ?>> snapshots) { this.snapshots = snapshots; } public String toString() { return getId() + ":" + name; } public int compareTo(Class<?, ?> o) { int comparison = 0; if (this.getId() != null && o.getId() != null) { comparison = this.getId().compareTo(o.getId()); } else { if (this.getName() != null && o.getName() != null) { comparison = this.getName().compareTo(o.getName()); } } return comparison; } }