package com.ikokoon.serenity.model; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; /** * @author Michael Couck * @since 09.12.09 * @version 01.00 */ @Entity public abstract class Composite<E, F> { public static final String NAME = "name"; public static final String CLASS_NAME = "className"; public static final String METHOD_NAME = "methodName"; public static final String NUMBER = "number"; public static final String DESCRIPTION = "description"; private Long id; private Composite<E, F> parent; private List<F> children = new ArrayList<F>(); @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return id; } public void setId(Long id) { this.id = id; } @ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER) public Composite<E, F> getParent() { return parent; } public void setParent(Composite<E, F> parent) { this.parent = parent; } @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.EAGER) public List<F> getChildren() { return children; } public void setChildren(List<F> children) { this.children = children; } public static final double COVERAGE_GOOD = 50; public static final double COVERAGE_OK = 30; public static final double COVERAGE_BAD = 10; public static final double COMPLEXITY_GOOD = 10; public static final double COMPLEXITY_OK = 30; public static final double COMPLEXITY_BAD = 10; public static final double ABSTRACTNESS_GOOD = 0.5; public static final double ABSTRACTNESS_OK = 0.3; public static final double ABSTRACTNESS_BAD = 0.0; public static final double STABILITY_GOOD = 0.5; public static final double STABILITY_OK = 0.2; public static final double STABILITY_BAD = 0.0; public static final double DISTANCE_GOOD = 0.5; public static final double DISTANCE_OK = 0.3; public static final double DISTANCE_BAD = 0.0; public static double getCOVERAGE_GOOD() { return COVERAGE_GOOD; } public static double getCOVERAGE_OK() { return COVERAGE_OK; } public static double getCOVERAGE_BAD() { return COVERAGE_BAD; } public static double getCOMPLEXITY_GOOD() { return COMPLEXITY_GOOD; } public static double getCOMPLEXITY_OK() { return COMPLEXITY_OK; } public static double getCOMPLEXITY_BAD() { return COMPLEXITY_BAD; } public static double getABSTRACTNESS_GOOD() { return ABSTRACTNESS_GOOD; } public static double getABSTRACTNESS_OK() { return ABSTRACTNESS_OK; } public static double getABSTRACTNESS_BAD() { return ABSTRACTNESS_BAD; } public static double getSTABILITY_GOOD() { return STABILITY_GOOD; } public static double getSTABILITY_OK() { return STABILITY_OK; } public static double getSTABILITY_BAD() { return STABILITY_BAD; } public static double getDISTANCE_GOOD() { return DISTANCE_GOOD; } public static double getDISTANCE_OK() { return DISTANCE_OK; } public static double getDISTANCE_BAD() { return DISTANCE_BAD; } }