2016-06-22 7 views
0

Сложение ДБJavers Diff Tool. Работает ли PrettyPrint?

JaversBuilder jb = JaversBuilder.javers().withMappingStyle(MappingStyle.BEAN).withListCompareAlgorithm(ListCompareAlgorithm.LEVENSHTEIN_DISTANCE).withPrettyPrint(true) 

, а затем

log.info(diff.prettyPrint()) 

дает

1. ListChange{globalId:'fn.dsl.diff.javers.Instance/Folder:{0F1E2D3C-4B5A-6978-8796-A5B4C3D2E1F0}', property:'permissions', containerChanges:[(3).removed:'fn.dsl.diff.javers.Permission {type: 'ALLOW', mask: '135159', GN: '[email protected]', GT: 'GROUP', source: 'DIRECT', depth: 'THIS_OBJECT_ONLY' }', (2).'fn.dsl.diff.javers.Permission {type: 'ALLOW', mask: '999415', GN: '[email protected]', GT: 'GROUP', source: 'DIRECT', depth: 'THIS_OBJECT_ONLY' }' to 'fn.dsl.diff.javers.Permission {type: 'ALLOW', mask: '135159', GN: '[email protected]', GT: 'GROUP', source: 'DIRECT', depth: 'THIS_OBJECT_ONLY' }']} 

, но ожидается довольно форматирование. Как и в документации - http://javers.org/documentation/diff-examples/#compare-valueobjects

System.out.println(diff); 

//.. shouldDetectBossChange() 

Diff: 
1. ReferenceChange{ 
    globalId:'org.javers.core.examples.model.Employee/Great Developer', 
    property:'boss', 
    oldRef:'org.javers.core.examples.model.Employee/Manager One', 
    newRef:'org.javers.core.examples.model.Employee/Manager Second'} 
2. ListChange{ 
    globalId:'org.javers.core.examples.model.Employee/Manager Second', 
    property:'subordinates', 
    containerChanges: [(0).added:'org.javers.core.examples.model.Employee/Great Developer']} 
3. ListChange{ 
    globalId:'org.javers.core.examples.model.Employee/Manager One', 
    property:'subordinates', 
    containerChanges:[(0).removed:'org.javers.core.examples.model.Employee/Great Developer']} 

Что я сделал не так? Должен ли я ожидать довольно форматирования, как показано в документах, или он был отформатирован вручную?

+0

На данный момент я должен был сделать это с регулярным выражением ' общественности статической строки prettyPrint (Diff дифф) { Строка из = diff.prettyPrint() из = out.replaceAll (" \\ {globalId : "," \\ {\ n \ tglobalId: ") out = out.replaceAll (", свойство: ",", \ n \ tproperty: ") out = out.replaceAll (" \\ ((\\ d) \\). "," \ n \ t \ t \\ (\ $ 1 \\). ") out = out.replaceAll (" '>>' "," '\ n \ t \ t >> '') возвращение ' – gilnator

ответ

3

В документе, на который вы ссылаетесь, разрывы строк были добавлены вручную.

diff.toString() и diff.prettyPrint() (так как это только псевдоним) добавляет br после каждого изменения. Так что даже ListChange с серией ElementChanges печатается в одной строке.

Используйте ChangeProcessor , чтобы настроить форматирование diff. См SimpleTextChangeLog пример

 Смежные вопросы

  • Нет связанных вопросов^_^