Configuration Object Integrity

When constructing or modifying any of the configuration objects, copies of the supplied parameters are made and used. When accessing the data of any configuration objects through one of the get methods, copies of the internal data are returned. This insures the integrity of the configuration objects and ensures that proper validity checking can be performed. It also means that changing a configuration object requires that you use one of the set methods on that component. For example, if you extract the tests from a rule using the Rule.getTests() method and then modify one of the tests in the array, the change will not be reflected in the rule until you call Rule.setTests() with the modified test array.