103 lines
2.2 KiB
Java
103 lines
2.2 KiB
Java
package forestry.api.genetics;
|
|
|
|
/**
|
|
* Biological classifications from domain down to genus.
|
|
*
|
|
* Used by the *alyzers to display hierarchies.
|
|
*/
|
|
public interface IClassification {
|
|
|
|
public enum EnumClassLevel {
|
|
|
|
DOMAIN(0x777fff, true), KINGDOM(0x77c3ff), PHYLUM(0x77ffb6, true), DIVISION(0x77ffb6, true), CLASS(0x7bff77), ORDER(0xbeff77), FAMILY(0xfffd77),
|
|
SUBFAMILY(0xfffd77), TRIBE(0xfffd77), GENUS(0xffba77);
|
|
|
|
private int colour;
|
|
private boolean isDroppable;
|
|
|
|
private EnumClassLevel(int colour) {
|
|
this(colour, false);
|
|
}
|
|
|
|
private EnumClassLevel(int colour, boolean isDroppable) {
|
|
this.colour = colour;
|
|
this.isDroppable = isDroppable;
|
|
}
|
|
|
|
/**
|
|
* @return Colour to use for displaying this classification.
|
|
*/
|
|
public int getColour() {
|
|
return colour;
|
|
}
|
|
|
|
/**
|
|
* @return Indicates whether display of this classification level can be ommitted in case of space constraints.
|
|
*/
|
|
public boolean isDroppable() {
|
|
return isDroppable;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return Level inside the full hierarchy this particular classification is located at.
|
|
*/
|
|
EnumClassLevel getLevel();
|
|
|
|
/**
|
|
* @return Unique String identifier.
|
|
*/
|
|
String getUID();
|
|
|
|
/**
|
|
* @return Localized branch name for user display.
|
|
*/
|
|
String getName();
|
|
|
|
/**
|
|
* A branch approximates a "genus" in real life. Real life examples: "Micrapis", "Megapis"
|
|
*
|
|
* @return flavour text (may be null)
|
|
*/
|
|
String getScientific();
|
|
|
|
/**
|
|
* @return Localized description of this branch. (May be null.)
|
|
*/
|
|
String getDescription();
|
|
|
|
/**
|
|
* @return Member groups of this one.
|
|
*/
|
|
IClassification[] getMemberGroups();
|
|
|
|
/**
|
|
* Adds subgroups to this group.
|
|
*/
|
|
void addMemberGroup(IClassification group);
|
|
|
|
/**
|
|
* @return Member species of this group.
|
|
*/
|
|
IAlleleSpecies[] getMemberSpecies();
|
|
|
|
/**
|
|
* Used by the allele registry to populate internal collection of branch members on the fly.
|
|
*
|
|
* @param species
|
|
*/
|
|
void addMemberSpecies(IAlleleSpecies species);
|
|
|
|
/**
|
|
* @return Parent classification, null if this is root.
|
|
*/
|
|
IClassification getParent();
|
|
|
|
/**
|
|
* Only used internally by the AlleleRegistry if this classification has been added to another one.
|
|
*
|
|
* @param parent
|
|
*/
|
|
void setParent(IClassification parent);
|
|
}
|