package hirondelle.starfield.catalog.parser;
import hirondelle.starfield.physics.Star;
import hirondelle.starfield.util.Util;
final class YaleBrightStarCatalog implements RecordParser {
@Override public Star parse(String aLine) {
Star result = null;
Chomper chomper = new Chomper(aLine);
String spectralClass = chomper.forText(130);
if (! Util.textHasContent(spectralClass) ){
Util.logVerbose("Skipping record. Missing spectral class.");
}
else if (spectralClass.startsWith("S") || spectralClass.startsWith("C") || spectralClass.startsWith("p") || spectralClass.startsWith("W") || spectralClass.startsWith("N")){
Util.logVerbose("Skipping record. Not in the set of expected spectral classes: " + spectralClass);
}
else {
result = new Star();
result.Temperature = Star.spectralTypeToTemperature(spectralClass.substring(0,1)); result.RightAscension = chomper.forRightAscension(76,77,78,79,80,83);
result.Declination = chomper.forDeclination(84,85,86,87,88,89,90);
result.Magnitude = chomper.forMagnitude(103,107);
}
return result;
}
}