}
public abstract TO read(FROM input) throws UnexpectedFormatException;
protected abstract Schema getDefaultSchema();
protected abstract void validateDesiredSchema(Schema desiredSchema) throws UnsupportedTypeException;
protected abstract void configure(Map<String, String> settings);
<BUG>public void initialize(FormatSpecification formatSpecification)

throws UnsupportedTypeException {
Schema desiredSchema = formatSpecification.getSchema();
if (desiredSchema != null) {</BUG>
validateIsRecord(desiredSchema);

}
public abstract TO read(FROM input) throws UnexpectedFormatException;
protected abstract Schema getDefaultSchema();
protected abstract void validateDesiredSchema(Schema desiredSchema) throws UnsupportedTypeException;
protected abstract void configure(Map<String, String> settings);
public void initialize(FormatSpecification formatSpecification) throws UnsupportedTypeException {
Schema desiredSchema = null;
Map<String, String> settings = Collections.emptyMap();
if (formatSpecification != null) {
desiredSchema = formatSpecification.getSchema();
settings = formatSpecification.getSettings();
}
if (desiredSchema != null) {
validateIsRecord(desiredSchema);
