package oraloganalyzer.model;
import java.util.regex.Pattern;
/**
* @author dgottschalk Oracle-Fehler-Typen
*/
public enum OraErrorType implements Comparable<OraErrorType>
{
ORA("ORA-", 5), SP2("SP2-", 4), SQL("SQL-", 5), IMP("IMP-", 5), CPY("CPY-",
4), TNS("TNS-", 5), TS("TS-", 5), PCB("PCB-", 5), PLS("PLS-", 5), PCC(
"PCC-", 5), O2F("O2F-", 5), O2I("O2I-", 5), O2U("O2U-", 5), DRG(
"DRG-", 5), VIR("VIR-", 5), VID("VID-", 5), EPC("EPC-", 5), EXP(
"EXP-", 5), IMG("IMG-", 5), LCD("LCD-", 5), LFI("LFI-", 5), LRM(
"LRM-", 5), MOD("MOD-", 5), NCR("NCR-", 5), NMP("NMP-", 5), NNC(
"NNC-", 5), NNF("NNF-", 5), NNL("NNL-", 5), NNO("NNO-", 5), NPL(
"NPL-", 5), NZE("NZE-", 5), PCF("PCF-", 5), QSM("QSM-", 5), RMAN(
"RMAN-", 5), SDO("SDO-", 5), SLL("SLL-", 5);
/** Abk�rzung des Fehlertyps inkl. "-" Zeichen */
private final String typename;
/** Anzahl Ziffern der Fehlernummer */
private final int errNoLength;
/** L�nge des Namens */
private final int typenameLength;
/** L�nge des gesamten Fehlercodes (Name + Nr.) */
private final int errCodeLength;
private OraErrorType(String typename, int errNoLength)
{
this.typename = typename;
this.errNoLength = errNoLength;
this.typenameLength = typename.length();
this.errCodeLength = typename.length() + errNoLength;
}
public int getErrCodeLength()
{
return errCodeLength;
}
public String getTypename()
{
return typename;
}
public int getTypenameLength()
{
return typenameLength;
}
public int getErrNoLength()
{
return errNoLength;
}
public static String getRegExp()
{
StringBuilder b = new StringBuilder();
b.append("(");
OraErrorType[] types = OraErrorType.values();
for (int i = 0; i < types.length; i++)
{
b.append(types[i].getTypename());
if (i < types.length - 1)
{
b.append("|");
}
}
b.append(")");
b.append("[0-9]+");
return b.toString();
}
public static Pattern getRegExpPattern()
{
return Pattern.compile(getRegExp());
}
}