Let's see if I understood correctly.
You can use the Specification design pattern: http://en.wikipedia.org/wiki/Specification_pattern
Instead of using validation, you should use something like an implementation of the above design pattern, as it provides you with a more extensible way to add rules regarding object states.
For example, you should define the "StatusSpecification" specification, which "does some things to verify that the status is correct." The result may be logical.
A damaged rule evaluator will take this logical result and make the necessary decisions (to exclude an exception? Try to restore the final application? Just notice the user about the error "Report an error?").
To summarize: you need to have some “specification loader” and execute the state of the object with respect to the loaded rules for the type of object. In the end, in this case, you will evaluate this state on one line (from the consumer's point of view), and perhaps your property flag may be the logical result.
source share