Clover coverage report - Code Coverage for tapestry release 4.0-beta-2
Coverage timestamp: Sat Jul 9 2005 22:02:17 EDT
file stats: LOC: 102   Methods: 7
NCLOC: 49   Classes: 1
30 day Evaluation License registered to hlship@comcast.net Your 30 day evaluation period has expired. Please visit http://www.cenqua.com to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
PropertyChangeImpl.java 100% 100% 100% 100%
coverage
 1    // Copyright 2004, 2005 The Apache Software Foundation
 2    //
 3    // Licensed under the Apache License, Version 2.0 (the "License");
 4    // you may not use this file except in compliance with the License.
 5    // You may obtain a copy of the License at
 6    //
 7    // http://www.apache.org/licenses/LICENSE-2.0
 8    //
 9    // Unless required by applicable law or agreed to in writing, software
 10    // distributed under the License is distributed on an "AS IS" BASIS,
 11    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12    // See the License for the specific language governing permissions and
 13    // limitations under the License.
 14   
 15    package org.apache.tapestry.record;
 16   
 17    import org.apache.hivemind.util.Defense;
 18    import org.apache.hivemind.util.ToStringBuilder;
 19   
 20    /**
 21    * Represents a change to a component on a page.
 22    *
 23    * @author Howard Lewis Ship
 24    */
 25   
 26    public class PropertyChangeImpl implements PropertyChange
 27    {
 28    private String _componentPath;
 29   
 30    private String _propertyName;
 31   
 32    private Object _newValue;
 33   
 34  75 public PropertyChangeImpl(String componentPath, String propertyName, Object newValue)
 35    {
 36  75 Defense.notNull(propertyName, "propertyName");
 37   
 38    // TODO: This breaks some tests, but those tests are wrong.
 39    // Defense.notNull(newValue, "newValue");
 40   
 41  75 _componentPath = componentPath;
 42  75 _propertyName = propertyName;
 43  75 _newValue = newValue;
 44    }
 45   
 46    /**
 47    * The path to the component on the page, or null if the property is a property of the page.
 48    */
 49   
 50  40 public String getComponentPath()
 51    {
 52  40 return _componentPath;
 53    }
 54   
 55    /**
 56    * The new value for the property, which may be null.
 57    */
 58   
 59  40 public Object getNewValue()
 60    {
 61  40 return _newValue;
 62    }
 63   
 64    /**
 65    * The name of the property that changed.
 66    */
 67   
 68  40 public String getPropertyName()
 69    {
 70  40 return _propertyName;
 71    }
 72   
 73  1 public String toString()
 74    {
 75  1 ToStringBuilder builder = new ToStringBuilder(this);
 76   
 77  1 builder.append("componentPath", _componentPath);
 78  1 builder.append("propertyName", _propertyName);
 79  1 builder.append("newValue", _newValue);
 80   
 81  1 return builder.toString();
 82    }
 83   
 84  31 public boolean equals(Object object)
 85    {
 86  31 if (this == object)
 87  1 return true;
 88   
 89  30 if (object == null || object.getClass() != this.getClass())
 90  1 return false;
 91   
 92  29 PropertyChangeImpl other = (PropertyChangeImpl) object;
 93   
 94  29 return same(_componentPath, other._componentPath)
 95    && same(_propertyName, other._propertyName) && same(_newValue, other._newValue);
 96    }
 97   
 98  85 private boolean same(Object o1, Object o2)
 99    {
 100  85 return o1 == o2 || (o1 != null && o1.equals(o2));
 101    }
 102    }