Гибкая транспортная система изображения (ЦФ) файл парсера


У меня есть простой класс, который в настоящее время имеет некоторый код в конструктор, что делает его трудно вводить, а также проверить.

public class FitsParser implements Parser {

private Header header;

/**
 * Constructor from a FITS File object and a HDU position.
 *
 * @param file The FITS file object from which the object is constructor.
 * @param hduNumber The HDU position where the keywords are located.
 * @throws Exception If any error is found.
 */
public FitsParser(final File file, final int hduNumber) throws Exception {
    try (Fits f = new Fits(file)) {
        this.header = f.getHDU(hduNumber).getHeader();
    }
}

/**
 * Constructor from a FITS Filename and a HDU position.
 *
 * @param filename The FITS filename from which the object is constructor.
 * @param hduNumber The HDU position where the keywords are located.
 * @throws Exception If any error is found.
 */
public FitsParser(final String filename, final int hduNumber) throws Exception {
    try (Fits f = new Fits(filename)) {
        this.header = f.getHDU(hduNumber).getHeader();
    }
}

@Override
public String getKey(String key) {
    return header.getStringValue(key);
}

@Override
public String getStringKey(String key) {
    return header.getStringValue(key);
}

@Override
public Integer getIntegerKey(String key) {
    return (header.containsKey(key)) ? header.getIntValue(key) : null;
}

@Override
public Float getFloatKey(String key) {
    return (header.containsKey(key)) ? header.getFloatValue(key) : null;
}

@Override
public Date getDateKey(String key) throws Exception {
    return DateParser.parseDate(this.getKey(key));
}

@Override
public Set<String> keys() {
    throw new UnsupportedOperationException("keys method is unsupported");
}

@Override
public String getFilename() {
    throw new UnsupportedOperationException("getFilename method is unsupported");
}

@Override
public Set<String> getComments() {
    throw new UnsupportedOperationException("getComments method is unsupported");
}

Что бы лучший способ сделать это? Было бы просто создать метод Parse, который делает анализ, прежде чем вызывать нужные вам способ? Единственная вещь об этом является то, что клиент должен звонить разобрать в первую очередь. У вас есть еще какие-то идеи?



Комментарии