<commit_before>Shielded.ProxyGen generates transactional proxy subclasses. Your class should
have virtual properties with getters and setters. The proxy will override both.
Getter will not call base, but setter will, before it has changed the value in
the storage, allowing you to access the old value using the getter.
WARNING: Due to limitations of CodeDom, the getter and setter must be either
both public, or both protected. A mix will cause the Factory to throw an
exception.

====

Shielded.ProxyGen is based on the work of <NAME>, titled "Automatic
Implementation of INotifyPropertyChanged on POCO Objects", available at:

    http://www.codeproject.com/Articles/141732/Automatic-Implementation-of-INotifyPropertyChanged

The Pollano work is licenced under The Code Project Open License (CPOL), available at:

    http://www.codeproject.com/info/cpol10.aspx

(Links checked on date of writing: 2013-12-07)<commit_msg>Minor README change<commit_after>Shielded.ProxyGen generates transactional proxy subclasses. Your class should
have virtual properties with getters and setters. The proxy will override both.
Getter will not call base, but setter will, before it has changed the value in
the storage, allowing you to access the old value using the getter.

WARNING: Due to limitations of CodeDom, the getter and setter must be either
both public, or both protected. A mix will cause the Factory to throw an
exception.

If your class defines a method "public void Commute(Action)", this will get
overriden. The override will execute the received action as a commute. The action
may not access (not even indirectly) any other shielded field.

====

Shielded.ProxyGen is based on the work of Felice Pollano, titled "Automatic
Implementation of INotifyPropertyChanged on POCO Objects", available at:

    http://www.codeproject.com/Articles/141732/Automatic-Implementation-of-INotifyPropertyChanged

The Pollano work is licenced under The Code Project Open License (CPOL), available at:

    http://www.codeproject.com/info/cpol10.aspx

(Links checked on date of writing: 2013-12-07)
{'fraction_non_alphanumeric': 0.05755395683453238, 'fraction_numerical': 0.015347721822541967, 'mean_word_length': 4.826815642458101, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7458761', 'n_tokens_mistral': 574, 'n_tokens_neox': 556, 'n_words': 269}