Search

2025-01-14

CommentParser class 추가 및 CSVParser interaface 명세 추가
책임연쇄패턴 적용
public interface CSVParser<T> { T parse(); /** * * 해당 메서드는 char[index]가 targetChar와 같을 경우 index를 증분하여 반환 * 만약 매칭 실패시 0을 반환 * @param targetString * @param targetChar * @param index * @return index */ default int incrementIfMatch(char[] targetString, char targetChar, int index) { return targetChar == targetString[index] ? index + 1 : 0; } boolean canParse(); } ... import java.util.ArrayList; import java.util.List; public class CommentParser implements CSVParser<List<String>>{ final InternalBuffer buffer; final CSVConfig csvConfig; public CommentParser(InternalBuffer buffer, CSVConfig csvConfig) { this.buffer = buffer; this.csvConfig = csvConfig; } @Override public List<String> parse() { final List<String> list = new ArrayList<>(1); list.add(new String(buffer.getRow())); return list; } /** 파싱가능 여부 확인을 위해 inteface에 추가 차후 RecordParser, FieldParser 부에 파싱 가능 여부확인을 위하여 interface 명세에 추가하는 것으로 결정 **/ @Override public boolean canParse() { return buffer.getRow()[0] == csvConfig.getComment(); } }
Java
복사