<commit_before>## Introduction

`java-object-diff` is a simple, yet powerful library to find differences between Java objects. It takes two objects and generates a tree structure that represents any differences between the objects and their children. This tree can then be traversed to extract more information or apply changes to the underlying data structures.

[![Build Status](https://travis-ci.org/SQiShER/java-object-diff.svg?branch=master)](https://travis-ci.org/SQiShER/java-object-diff) 
[![Coverage Status](https://coveralls.io/repos/SQiShER/java-object-diff/badge.png?branch=master)](https://coveralls.io/r/SQiShER/java-object-diff?branch=master)
[![Download](https://api.bintray.com/packages/sqisher/maven/java-object-diff/images/download.svg)](https://bintray.com/sqisher/maven/java-object-diff/_latestVersion)
[![Documentation Status](https://readthedocs.org/projects/java-object-diff/badge/?version=latest)](https://readthedocs.org/projects/java-object-diff/?badge=latest)

## Features

* Works out-of-the-box with with almost any kind of object and arbitrarily deep nesting
* Finds the differences between two objects
* Returns the differences in shape of an easily traversable tree structure
* Tells you everything there is to know about the detected changes
* Provides read and write access to the underlying objects, allowing you not only to extract the changed values but even to apply the diff as a patch
* Requires no changes to your existing classes (in most cases)
* Provides a very flexible configuration API to tailor everything to your needs
* Tiny, straightforward, yet very powerful API
* Detects and handles circular references in the object graph
* No runtime dependencies except for [SLF4J](http://www.slf4j.org/)
* Compatible with Java 1.5 and above<commit_msg>OMG, finally a pretty Coveralls badge<commit_after>## Introduction

`java-object-diff` is a simple, yet powerful library to find differences between Java objects. It takes two objects and generates a tree structure that represents any differences between the objects and their children. This tree can then be traversed to extract more information or apply changes to the underlying data structures.

[![Build Status](https://travis-ci.org/SQiShER/java-object-diff.svg?branch=master)](https://travis-ci.org/SQiShER/java-object-diff) 
[![Coverage Status](https://coveralls.io/repos/SQiShER/java-object-diff/badge.svg?branch=master&service=github)](https://coveralls.io/github/SQiShER/java-object-diff?branch=master)
[![Download](https://api.bintray.com/packages/sqisher/maven/java-object-diff/images/download.svg)](https://bintray.com/sqisher/maven/java-object-diff/_latestVersion)
[![Documentation Status](https://readthedocs.org/projects/java-object-diff/badge/?version=latest)](https://readthedocs.org/projects/java-object-diff/?badge=latest)

## Features

* Works out-of-the-box with with almost any kind of object and arbitrarily deep nesting
* Finds the differences between two objects
* Returns the differences in shape of an easily traversable tree structure
* Tells you everything there is to know about the detected changes
* Provides read and write access to the underlying objects, allowing you not only to extract the changed values but even to apply the diff as a patch
* Requires no changes to your existing classes (in most cases)
* Provides a very flexible configuration API to tailor everything to your needs
* Tiny, straightforward, yet very powerful API
* Detects and handles circular references in the object graph
* No runtime dependencies except for [SLF4J](http://www.slf4j.org/)
* Compatible with Java 1.5 and above
{'fraction_non_alphanumeric': 0.09609030837004405, 'fraction_numerical': 0.0022026431718061676, 'mean_word_length': 5.39612676056338, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 16, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '436622', 'n_tokens_mistral': 1012, 'n_tokens_neox': 970, 'n_words': 358}