package edu.sc.seis.sod; import java.io.Serializable; public class Status implements Serializable { protected Status() { // for hibernate } private Status(Stage stage, Standing standing){ this.standing = standing; this.stage = stage; } public String toString(){ return stage.toString()+" "+standing.toString(); } public Standing getStanding(){ return standing; } public Stage getStage(){ return stage; } private Stage stage; private Standing standing; public short getAsShort() { return (short)((getStage().getVal()<<8)+getStanding().getVal()); } public static Status getFromShort(short val) { return Status.get(Stage.getFromInt((val&0xFF00)>>>8), Standing.getFromInt(val&0xFF)); } public static Status get(Stage stage, Standing standing){ return ALL[stage.getVal()][standing.getVal()]; } // hibernate public int getStandingInt(){ return standing.getVal(); } protected void setStandingInt(int val) { standing = Standing.getFromInt(val); } public int getStageInt(){ return stage.getVal(); } protected void setStageInt(int val) { stage = Stage.getFromInt(val); } public static final Status[][] ALL = new Status[Stage.ALL.length][Standing.ALL.length]; static { for (int stage = 0; stage < Stage.ALL.length; stage++) { for (int standing = 0; standing < Standing.ALL.length; standing++) { ALL[stage][standing] = new Status(Stage.getFromInt(stage), Standing.getFromInt(standing)); } } } public static Status get(String nestedText) { for (int i = 0; i < ALL.length; i++) { for (int j = 0; j < ALL[i].length; j++) { if(ALL[i][j].toString().equals(nestedText)) return ALL[i][j]; } } throw new IllegalArgumentException("No such status for string " + nestedText); } }