Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

package gov.va.med.ewv.codes;

import java.io.Serializable;
import java.util.List;

// Would like to use this to remove duplication among diagnosis codes, procedure codes,
// and e codes, but would have to work out how to annotate the inheriting classes
public abstract class CodeBase implements Serializable, Comparable<CodeBase>
{
protected static final long serialVersionUID = 1748134964415856234L;

protected Long sequenceNumber;
protected String value;

public CodeBase(Long sequenceNumber, String value)
{
this.sequenceNumber = sequenceNumber;
this.value = value;
}

public String getSequenceNumberAsString()
{
String ret = null;

if(sequenceNumber == null) {
ret = " ";
} else {
ret = Long.toString(sequenceNumber) + ". ";
}

return ret;
}

public long getSequenceNumber()
{
return ((sequenceNumber == null) ? 0L : sequenceNumber);
}

public void setSequenceNumber(Long num)
{
this.sequenceNumber = num;
}

public String getValue()
{
return value;
}

public void setValue(String value)
{
this.value = value;
}

public int compareTo(CodeBase otherCode) throws NullPointerException
{
// The sequenceNumber alone determines the order.
return sequenceNumber.compareTo(otherCode.getSequenceNumber());
}

public static <T extends CodeBase> List<T> renumber(List<T> codeList)
{
long sequenceNumber = 1L;

for(CodeBase nextCode : codeList)
{
nextCode.setSequenceNumber(sequenceNumber++);
}

return codeList;
}

}