package hirondelle.starfield.catalog.parser;
import hirondelle.starfield.util.Util;
final class Chomper {
Chomper(String aLine){
fLine = aLine;
}
String forText(int aStart, int aEnd){
return fLine.substring(aStart-1, aEnd).trim();
}
String forText(int aIndex){
return forText(aIndex, aIndex);
}
int forInt(int aStart, int aEnd){
String text = forText(aStart, aEnd);
return Integer.valueOf(text);
}
double forDouble(int aStart, int aEnd){
String text = forText(aStart, aEnd);
return Double.valueOf(text);
}
double forRightAscension(int aHourStart, int aHourEnd, int aMinStart, int aMinEnd, int aSecStart, int aSecEnd){
int hour = forInt(aHourStart, aHourEnd);
int min = forInt(aMinStart, aMinEnd);
double sec = forDouble(aSecStart, aSecEnd);
double hours = hour + min/60.0D + sec/3600.0D; return Util.radians(hours*15.0D);
}
double forDeclination(int aSign, int aDegStart, int aDegEnd, int aMinStart, int aMinEnd, int aSecStart, int aSecEnd){
int deg = forInt(aDegStart, aDegEnd);
int min = forInt(aMinStart, aMinEnd);
int sec = forInt(aSecStart, aSecEnd);
double degrees = deg + min/60.0D + sec/3600.0D; double result = Util.radians(degrees);
String sign = forText(aSign);
if ("-".equals(sign)){
result = -1 * result;
}
return result;
}
double forMagnitude(int aMagStart, int aMagEnd){
return forDouble(aMagStart,aMagEnd);
}
boolean isMissing(int aStart, int aEnd){
return ! Util.textHasContent(forText(aStart, aEnd));
}
private String fLine;
}