2012-04-25 3 views
0

내 기록은 일반 텍스트로 표시됩니다. 예를 들어 : -한 형식으로 레코드를 다른 형식으로 매핑하는 가장 좋은 방법은 무엇입니까?

//Record in format A 
Header|meta.1|meta.2|... 
body|data.1|data.2|... 

//Now I want to convert it to record in format B 
Meta=[meta.1, meta.2] 
Content=[data.1, data.2] 
Summary=[{meta.1, data.1}, {meta.2, data.2}] 
//condition is possible 
type=if meta.1==TYPE1 then T1 

위의 형식은 단지 예를 들어 있습니다. 서로 다른 형식의 레코드를 커버하는 것에 대한 일반적인 아이디어를 묻습니다.

나는 첫 번째 형식으로 레코드를 구문 분석하고 결과를 어딘가에 저장 한 다음 Java에서 두 번째 형식으로 레코드를 채울 수 있음을 알고있다.

그러나 더 나은 유지 보수가 가능하고 확장 성이 뛰어나고 강력한 방법을 찾고 있습니다. 구성/템플릿 파일에 모든 매핑 규칙을 쓸 수 있습니까? 사용하면 데이터를 넣고 결과를 얻습니다. 매핑이 변경되면 필요한 구성/템플릿 파일을 수정하면됩니다.

모든 아이디어를 환영합니다. 감사합니다 ...

+1

예 매핑 파일을 사용할 수 있습니다. 그것들은 .java/.class 확장자를 가지며 규칙은 Java 표현식처럼 보입니다. :) - 진실하게, 단일 레코드의 형식을 변경하지 않고 레코드의 그룹 부분 등을 변경하기 만하면되므로 코딩을해야 할 수도 있습니다. 그리고 그 레코드 세트를 매우 일반적인 방식으로 할 수있는 라이브러리가 있는지 의심 스럽습니다. 의 규칙. - 그런 라이브러리가 있다면 그것은 프로그래밍 언어의 종류를 필요로 할 것이고 (더 구체적으로는 DSL) 더 이상 Java와 멀지 않습니다. 그러나 자바 대신 Scala와 같은 해석 된 JVM 언어를 사용해보십시오. – Thomas

+0

재밌 네요. :) 답변 해주셔서 감사합니다. –

답변

관련 문제