Browse Source
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@182 50f2f4bb-b051-0410-bef5-90022cba6387pull/1/head
25 changed files with 1325 additions and 3 deletions
@ -0,0 +1,54 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
import junit.framework.TestCase; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Rod Johnson |
||||||
|
*/ |
||||||
|
public abstract class AbstractPropertyValuesTests extends TestCase { |
||||||
|
|
||||||
|
/** |
||||||
|
* Must contain: forname=Tony surname=Blair age=50 |
||||||
|
*/ |
||||||
|
protected void doTestTony(PropertyValues pvs) throws Exception { |
||||||
|
assertTrue("Contains 3", pvs.getPropertyValues().length == 3); |
||||||
|
assertTrue("Contains forname", pvs.contains("forname")); |
||||||
|
assertTrue("Contains surname", pvs.contains("surname")); |
||||||
|
assertTrue("Contains age", pvs.contains("age")); |
||||||
|
assertTrue("Doesn't contain tory", !pvs.contains("tory")); |
||||||
|
|
||||||
|
PropertyValue[] ps = pvs.getPropertyValues(); |
||||||
|
Map m = new HashMap(); |
||||||
|
m.put("forname", "Tony"); |
||||||
|
m.put("surname", "Blair"); |
||||||
|
m.put("age", "50"); |
||||||
|
for (int i = 0; i < ps.length; i++) { |
||||||
|
Object val = m.get(ps[i].getName()); |
||||||
|
assertTrue("Can't have unexpected value", val != null); |
||||||
|
assertTrue("Val i string", val instanceof String); |
||||||
|
assertTrue("val matches expected", val.equals(ps[i].getValue())); |
||||||
|
m.remove(ps[i].getName()); |
||||||
|
} |
||||||
|
assertTrue("Map size is 0", m.size() == 0); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,45 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 10.06.2003 |
||||||
|
*/ |
||||||
|
public class BooleanTestBean { |
||||||
|
|
||||||
|
private boolean bool1; |
||||||
|
|
||||||
|
private Boolean bool2; |
||||||
|
|
||||||
|
public boolean isBool1() { |
||||||
|
return bool1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBool1(boolean bool1) { |
||||||
|
this.bool1 = bool1; |
||||||
|
} |
||||||
|
|
||||||
|
public Boolean getBool2() { |
||||||
|
return bool2; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBool2(Boolean bool2) { |
||||||
|
this.bool2 = bool2; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,35 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2007 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import org.springframework.core.enums.ShortCodedLabeledEnum; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Rob Harrop |
||||||
|
*/ |
||||||
|
public class Colour extends ShortCodedLabeledEnum { |
||||||
|
|
||||||
|
public static final Colour RED = new Colour(0, "RED"); |
||||||
|
public static final Colour BLUE = new Colour(1, "BLUE"); |
||||||
|
public static final Colour GREEN = new Colour(2, "GREEN"); |
||||||
|
public static final Colour PURPLE = new Colour(3, "PURPLE"); |
||||||
|
|
||||||
|
private Colour(int code, String label) { |
||||||
|
super(code, label); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,85 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2007 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
|
||||||
|
import org.springframework.beans.factory.BeanNameAware; |
||||||
|
import org.springframework.beans.factory.DisposableBean; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 21.08.2003 |
||||||
|
*/ |
||||||
|
public class DerivedTestBean extends TestBean implements Serializable, BeanNameAware, DisposableBean { |
||||||
|
|
||||||
|
private String beanName; |
||||||
|
|
||||||
|
private boolean initialized; |
||||||
|
|
||||||
|
private boolean destroyed; |
||||||
|
|
||||||
|
|
||||||
|
public DerivedTestBean() { |
||||||
|
} |
||||||
|
|
||||||
|
public DerivedTestBean(String[] names) { |
||||||
|
if (names == null || names.length < 2) { |
||||||
|
throw new IllegalArgumentException("Invalid names array"); |
||||||
|
} |
||||||
|
setName(names[0]); |
||||||
|
setBeanName(names[1]); |
||||||
|
} |
||||||
|
|
||||||
|
public static DerivedTestBean create(String[] names) { |
||||||
|
return new DerivedTestBean(names); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void setBeanName(String beanName) { |
||||||
|
if (this.beanName == null || beanName == null) { |
||||||
|
this.beanName = beanName; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public String getBeanName() { |
||||||
|
return beanName; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSpouseRef(String name) { |
||||||
|
setSpouse(new TestBean(name)); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void initialize() { |
||||||
|
this.initialized = true; |
||||||
|
} |
||||||
|
|
||||||
|
public boolean wasInitialized() { |
||||||
|
return initialized; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void destroy() { |
||||||
|
this.destroyed = true; |
||||||
|
} |
||||||
|
|
||||||
|
public boolean wasDestroyed() { |
||||||
|
return destroyed; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,39 @@ |
|||||||
|
|
||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
public class Employee extends TestBean { |
||||||
|
|
||||||
|
private String co; |
||||||
|
|
||||||
|
/** |
||||||
|
* Constructor for Employee. |
||||||
|
*/ |
||||||
|
public Employee() { |
||||||
|
super(); |
||||||
|
} |
||||||
|
|
||||||
|
public String getCompany() { |
||||||
|
return co; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCompany(String co) { |
||||||
|
this.co = co; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,23 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
public interface INestedTestBean { |
||||||
|
|
||||||
|
public String getCompany(); |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
|
||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
public interface IOther { |
||||||
|
|
||||||
|
void absquatulate(); |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,71 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2007 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
|
||||||
|
/** |
||||||
|
* Interface used for {@link org.springframework.beans.TestBean}. |
||||||
|
* |
||||||
|
* <p>Two methods are the same as on Person, but if this |
||||||
|
* extends person it breaks quite a few tests.. |
||||||
|
* |
||||||
|
* @author Rod Johnson |
||||||
|
* @author Juergen Hoeller |
||||||
|
*/ |
||||||
|
public interface ITestBean { |
||||||
|
|
||||||
|
int getAge(); |
||||||
|
|
||||||
|
void setAge(int age); |
||||||
|
|
||||||
|
String getName(); |
||||||
|
|
||||||
|
void setName(String name); |
||||||
|
|
||||||
|
ITestBean getSpouse(); |
||||||
|
|
||||||
|
void setSpouse(ITestBean spouse); |
||||||
|
|
||||||
|
ITestBean[] getSpouses(); |
||||||
|
|
||||||
|
String[] getStringArray(); |
||||||
|
|
||||||
|
void setStringArray(String[] stringArray); |
||||||
|
|
||||||
|
/** |
||||||
|
* Throws a given (non-null) exception. |
||||||
|
*/ |
||||||
|
void exceptional(Throwable t) throws Throwable; |
||||||
|
|
||||||
|
Object returnsThis(); |
||||||
|
|
||||||
|
INestedTestBean getDoctor(); |
||||||
|
|
||||||
|
INestedTestBean getLawyer(); |
||||||
|
|
||||||
|
IndexedTestBean getNestedIndexedBean(); |
||||||
|
|
||||||
|
/** |
||||||
|
* Increment the age by one. |
||||||
|
* @return the previous age |
||||||
|
*/ |
||||||
|
int haveBirthday(); |
||||||
|
|
||||||
|
void unreliableFileOperation() throws IOException; |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,145 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2006 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Collection; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Set; |
||||||
|
import java.util.SortedMap; |
||||||
|
import java.util.SortedSet; |
||||||
|
import java.util.TreeSet; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 11.11.2003 |
||||||
|
*/ |
||||||
|
public class IndexedTestBean { |
||||||
|
|
||||||
|
private TestBean[] array; |
||||||
|
|
||||||
|
private Collection collection; |
||||||
|
|
||||||
|
private List list; |
||||||
|
|
||||||
|
private Set set; |
||||||
|
|
||||||
|
private SortedSet sortedSet; |
||||||
|
|
||||||
|
private Map map; |
||||||
|
|
||||||
|
private SortedMap sortedMap; |
||||||
|
|
||||||
|
|
||||||
|
public IndexedTestBean() { |
||||||
|
this(true); |
||||||
|
} |
||||||
|
|
||||||
|
public IndexedTestBean(boolean populate) { |
||||||
|
if (populate) { |
||||||
|
populate(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void populate() { |
||||||
|
TestBean tb0 = new TestBean("name0", 0); |
||||||
|
TestBean tb1 = new TestBean("name1", 0); |
||||||
|
TestBean tb2 = new TestBean("name2", 0); |
||||||
|
TestBean tb3 = new TestBean("name3", 0); |
||||||
|
TestBean tb4 = new TestBean("name4", 0); |
||||||
|
TestBean tb5 = new TestBean("name5", 0); |
||||||
|
TestBean tb6 = new TestBean("name6", 0); |
||||||
|
TestBean tb7 = new TestBean("name7", 0); |
||||||
|
TestBean tbX = new TestBean("nameX", 0); |
||||||
|
TestBean tbY = new TestBean("nameY", 0); |
||||||
|
this.array = new TestBean[] {tb0, tb1}; |
||||||
|
this.list = new ArrayList(); |
||||||
|
this.list.add(tb2); |
||||||
|
this.list.add(tb3); |
||||||
|
this.set = new TreeSet(); |
||||||
|
this.set.add(tb6); |
||||||
|
this.set.add(tb7); |
||||||
|
this.map = new HashMap(); |
||||||
|
this.map.put("key1", tb4); |
||||||
|
this.map.put("key2", tb5); |
||||||
|
this.map.put("key.3", tb5); |
||||||
|
List list = new ArrayList(); |
||||||
|
list.add(tbX); |
||||||
|
list.add(tbY); |
||||||
|
this.map.put("key4", list); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public TestBean[] getArray() { |
||||||
|
return array; |
||||||
|
} |
||||||
|
|
||||||
|
public void setArray(TestBean[] array) { |
||||||
|
this.array = array; |
||||||
|
} |
||||||
|
|
||||||
|
public Collection getCollection() { |
||||||
|
return collection; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCollection(Collection collection) { |
||||||
|
this.collection = collection; |
||||||
|
} |
||||||
|
|
||||||
|
public List getList() { |
||||||
|
return list; |
||||||
|
} |
||||||
|
|
||||||
|
public void setList(List list) { |
||||||
|
this.list = list; |
||||||
|
} |
||||||
|
|
||||||
|
public Set getSet() { |
||||||
|
return set; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSet(Set set) { |
||||||
|
this.set = set; |
||||||
|
} |
||||||
|
|
||||||
|
public SortedSet getSortedSet() { |
||||||
|
return sortedSet; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSortedSet(SortedSet sortedSet) { |
||||||
|
this.sortedSet = sortedSet; |
||||||
|
} |
||||||
|
|
||||||
|
public Map getMap() { |
||||||
|
return map; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMap(Map map) { |
||||||
|
this.map = map; |
||||||
|
} |
||||||
|
|
||||||
|
public SortedMap getSortedMap() { |
||||||
|
return sortedMap; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSortedMap(SortedMap sortedMap) { |
||||||
|
this.sortedMap = sortedMap; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,99 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import junit.framework.Assert; |
||||||
|
|
||||||
|
/** |
||||||
|
* Tests for MutablePropertyValues. |
||||||
|
* |
||||||
|
* @author Rod Johnson |
||||||
|
*/ |
||||||
|
public class MutablePropertyValuesTests extends AbstractPropertyValuesTests { |
||||||
|
|
||||||
|
public void testValid() throws Exception { |
||||||
|
MutablePropertyValues pvs = new MutablePropertyValues(); |
||||||
|
pvs.addPropertyValue(new PropertyValue("forname", "Tony")); |
||||||
|
pvs.addPropertyValue(new PropertyValue("surname", "Blair")); |
||||||
|
pvs.addPropertyValue(new PropertyValue("age", "50")); |
||||||
|
doTestTony(pvs); |
||||||
|
|
||||||
|
MutablePropertyValues deepCopy = new MutablePropertyValues(pvs); |
||||||
|
doTestTony(deepCopy); |
||||||
|
deepCopy.setPropertyValueAt(new PropertyValue("name", "Gordon"), 0); |
||||||
|
doTestTony(pvs); |
||||||
|
Assert.assertEquals("Gordon", deepCopy.getPropertyValue("name").getValue()); |
||||||
|
} |
||||||
|
|
||||||
|
public void addOrOverride() throws Exception { |
||||||
|
MutablePropertyValues pvs = new MutablePropertyValues(); |
||||||
|
pvs.addPropertyValue(new PropertyValue("forname", "Tony")); |
||||||
|
pvs.addPropertyValue(new PropertyValue("surname", "Blair")); |
||||||
|
pvs.addPropertyValue(new PropertyValue("age", "50")); |
||||||
|
doTestTony(pvs); |
||||||
|
PropertyValue addedPv = new PropertyValue("rod", "Rod"); |
||||||
|
pvs.addPropertyValue(addedPv); |
||||||
|
Assert.assertTrue(pvs.getPropertyValue("rod").equals(addedPv)); |
||||||
|
PropertyValue changedPv = new PropertyValue("forname", "Greg"); |
||||||
|
pvs.addPropertyValue(changedPv); |
||||||
|
Assert.assertTrue(pvs.getPropertyValue("forename").equals(changedPv)); |
||||||
|
} |
||||||
|
|
||||||
|
public void testChangesOnEquals() throws Exception { |
||||||
|
MutablePropertyValues pvs = new MutablePropertyValues(); |
||||||
|
pvs.addPropertyValue(new PropertyValue("forname", "Tony")); |
||||||
|
pvs.addPropertyValue(new PropertyValue("surname", "Blair")); |
||||||
|
pvs.addPropertyValue(new PropertyValue("age", "50")); |
||||||
|
MutablePropertyValues pvs2 = pvs; |
||||||
|
PropertyValues changes = pvs2.changesSince(pvs); |
||||||
|
Assert.assertTrue("changes are empty", changes.getPropertyValues().length == 0); |
||||||
|
} |
||||||
|
|
||||||
|
public void testChangeOfOneField() throws Exception { |
||||||
|
MutablePropertyValues pvs = new MutablePropertyValues(); |
||||||
|
pvs.addPropertyValue(new PropertyValue("forname", "Tony")); |
||||||
|
pvs.addPropertyValue(new PropertyValue("surname", "Blair")); |
||||||
|
pvs.addPropertyValue(new PropertyValue("age", "50")); |
||||||
|
|
||||||
|
MutablePropertyValues pvs2 = new MutablePropertyValues(pvs); |
||||||
|
PropertyValues changes = pvs2.changesSince(pvs); |
||||||
|
Assert.assertTrue("changes are empty, not of length " + changes.getPropertyValues().length, |
||||||
|
changes.getPropertyValues().length == 0); |
||||||
|
|
||||||
|
pvs2.addPropertyValue(new PropertyValue("forname", "Gordon")); |
||||||
|
changes = pvs2.changesSince(pvs); |
||||||
|
Assert.assertEquals("1 change", 1, changes.getPropertyValues().length); |
||||||
|
PropertyValue fn = changes.getPropertyValue("forname"); |
||||||
|
Assert.assertTrue("change is forname", fn != null); |
||||||
|
Assert.assertTrue("new value is gordon", fn.getValue().equals("Gordon")); |
||||||
|
|
||||||
|
MutablePropertyValues pvs3 = new MutablePropertyValues(pvs); |
||||||
|
changes = pvs3.changesSince(pvs); |
||||||
|
Assert.assertTrue("changes are empty, not of length " + changes.getPropertyValues().length, |
||||||
|
changes.getPropertyValues().length == 0); |
||||||
|
|
||||||
|
// add new
|
||||||
|
pvs3.addPropertyValue(new PropertyValue("foo", "bar")); |
||||||
|
pvs3.addPropertyValue(new PropertyValue("fi", "fum")); |
||||||
|
changes = pvs3.changesSince(pvs); |
||||||
|
Assert.assertTrue("2 change", changes.getPropertyValues().length == 2); |
||||||
|
fn = changes.getPropertyValue("foo"); |
||||||
|
Assert.assertTrue("change in foo", fn != null); |
||||||
|
Assert.assertTrue("new value is bar", fn.getValue().equals("bar")); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,60 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
/** |
||||||
|
* Simple nested test bean used for testing bean factories, AOP framework etc. |
||||||
|
* |
||||||
|
* @author Trevor D. Cook |
||||||
|
* @since 30.09.2003 |
||||||
|
*/ |
||||||
|
public class NestedTestBean implements INestedTestBean { |
||||||
|
|
||||||
|
private String company = ""; |
||||||
|
|
||||||
|
public NestedTestBean() { |
||||||
|
} |
||||||
|
|
||||||
|
public NestedTestBean(String company) { |
||||||
|
setCompany(company); |
||||||
|
} |
||||||
|
|
||||||
|
public void setCompany(String company) { |
||||||
|
this.company = (company != null ? company : ""); |
||||||
|
} |
||||||
|
|
||||||
|
public String getCompany() { |
||||||
|
return company; |
||||||
|
} |
||||||
|
|
||||||
|
public boolean equals(Object obj) { |
||||||
|
if (!(obj instanceof NestedTestBean)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
NestedTestBean ntb = (NestedTestBean) obj; |
||||||
|
return this.company.equals(ntb.company); |
||||||
|
} |
||||||
|
|
||||||
|
public int hashCode() { |
||||||
|
return this.company.hashCode(); |
||||||
|
} |
||||||
|
|
||||||
|
public String toString() { |
||||||
|
return "NestedTestBean: " + this.company; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,143 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.math.BigInteger; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 10.06.2003 |
||||||
|
*/ |
||||||
|
public class NumberTestBean { |
||||||
|
|
||||||
|
private short short1; |
||||||
|
private Short short2; |
||||||
|
|
||||||
|
private int int1; |
||||||
|
private Integer int2; |
||||||
|
|
||||||
|
private long long1; |
||||||
|
private Long long2; |
||||||
|
|
||||||
|
private BigInteger bigInteger; |
||||||
|
|
||||||
|
private float float1; |
||||||
|
private Float float2; |
||||||
|
|
||||||
|
private double double1; |
||||||
|
private Double double2; |
||||||
|
|
||||||
|
private BigDecimal bigDecimal; |
||||||
|
|
||||||
|
public short getShort1() { |
||||||
|
return short1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setShort1(short short1) { |
||||||
|
this.short1 = short1; |
||||||
|
} |
||||||
|
|
||||||
|
public Short getShort2() { |
||||||
|
return short2; |
||||||
|
} |
||||||
|
|
||||||
|
public void setShort2(Short short2) { |
||||||
|
this.short2 = short2; |
||||||
|
} |
||||||
|
|
||||||
|
public int getInt1() { |
||||||
|
return int1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setInt1(int int1) { |
||||||
|
this.int1 = int1; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer getInt2() { |
||||||
|
return int2; |
||||||
|
} |
||||||
|
|
||||||
|
public void setInt2(Integer int2) { |
||||||
|
this.int2 = int2; |
||||||
|
} |
||||||
|
|
||||||
|
public long getLong1() { |
||||||
|
return long1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setLong1(long long1) { |
||||||
|
this.long1 = long1; |
||||||
|
} |
||||||
|
|
||||||
|
public Long getLong2() { |
||||||
|
return long2; |
||||||
|
} |
||||||
|
|
||||||
|
public void setLong2(Long long2) { |
||||||
|
this.long2 = long2; |
||||||
|
} |
||||||
|
|
||||||
|
public BigInteger getBigInteger() { |
||||||
|
return bigInteger; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBigInteger(BigInteger bigInteger) { |
||||||
|
this.bigInteger = bigInteger; |
||||||
|
} |
||||||
|
|
||||||
|
public float getFloat1() { |
||||||
|
return float1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setFloat1(float float1) { |
||||||
|
this.float1 = float1; |
||||||
|
} |
||||||
|
|
||||||
|
public Float getFloat2() { |
||||||
|
return float2; |
||||||
|
} |
||||||
|
|
||||||
|
public void setFloat2(Float float2) { |
||||||
|
this.float2 = float2; |
||||||
|
} |
||||||
|
|
||||||
|
public double getDouble1() { |
||||||
|
return double1; |
||||||
|
} |
||||||
|
|
||||||
|
public void setDouble1(double double1) { |
||||||
|
this.double1 = double1; |
||||||
|
} |
||||||
|
|
||||||
|
public Double getDouble2() { |
||||||
|
return double2; |
||||||
|
} |
||||||
|
|
||||||
|
public void setDouble2(Double double2) { |
||||||
|
this.double2 = double2; |
||||||
|
} |
||||||
|
|
||||||
|
public BigDecimal getBigDecimal() { |
||||||
|
return bigDecimal; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBigDecimal(BigDecimal bigDecimal) { |
||||||
|
this.bigDecimal = bigDecimal; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,437 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2008 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Collection; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.HashSet; |
||||||
|
import java.util.LinkedList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Properties; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
import org.springframework.beans.factory.BeanFactory; |
||||||
|
import org.springframework.beans.factory.BeanFactoryAware; |
||||||
|
import org.springframework.beans.factory.BeanNameAware; |
||||||
|
import org.springframework.util.ObjectUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* Simple test bean used for testing bean factories, the AOP framework etc. |
||||||
|
* |
||||||
|
* @author Rod Johnson |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 15 April 2001 |
||||||
|
*/ |
||||||
|
public class TestBean implements BeanNameAware, BeanFactoryAware, ITestBean, IOther, Comparable { |
||||||
|
|
||||||
|
private String beanName; |
||||||
|
|
||||||
|
private String country; |
||||||
|
|
||||||
|
private BeanFactory beanFactory; |
||||||
|
|
||||||
|
private boolean postProcessed; |
||||||
|
|
||||||
|
private String name; |
||||||
|
|
||||||
|
private String sex; |
||||||
|
|
||||||
|
private int age; |
||||||
|
|
||||||
|
private boolean jedi; |
||||||
|
|
||||||
|
private ITestBean[] spouses; |
||||||
|
|
||||||
|
private String touchy; |
||||||
|
|
||||||
|
private String[] stringArray; |
||||||
|
|
||||||
|
private Integer[] someIntegerArray; |
||||||
|
|
||||||
|
private Date date = new Date(); |
||||||
|
|
||||||
|
private Float myFloat = new Float(0.0); |
||||||
|
|
||||||
|
private Collection friends = new LinkedList(); |
||||||
|
|
||||||
|
private Set someSet = new HashSet(); |
||||||
|
|
||||||
|
private Map someMap = new HashMap(); |
||||||
|
|
||||||
|
private List someList = new ArrayList(); |
||||||
|
|
||||||
|
private Properties someProperties = new Properties(); |
||||||
|
|
||||||
|
private INestedTestBean doctor = new NestedTestBean(); |
||||||
|
|
||||||
|
private INestedTestBean lawyer = new NestedTestBean(); |
||||||
|
|
||||||
|
private IndexedTestBean nestedIndexedBean; |
||||||
|
|
||||||
|
private boolean destroyed; |
||||||
|
|
||||||
|
private Number someNumber; |
||||||
|
|
||||||
|
private Colour favouriteColour; |
||||||
|
|
||||||
|
private Boolean someBoolean; |
||||||
|
|
||||||
|
private List otherColours; |
||||||
|
|
||||||
|
private List pets; |
||||||
|
|
||||||
|
|
||||||
|
public TestBean() { |
||||||
|
} |
||||||
|
|
||||||
|
public TestBean(String name) { |
||||||
|
this.name = name; |
||||||
|
} |
||||||
|
|
||||||
|
public TestBean(ITestBean spouse) { |
||||||
|
this.spouses = new ITestBean[] {spouse}; |
||||||
|
} |
||||||
|
|
||||||
|
public TestBean(String name, int age) { |
||||||
|
this.name = name; |
||||||
|
this.age = age; |
||||||
|
} |
||||||
|
|
||||||
|
public TestBean(ITestBean spouse, Properties someProperties) { |
||||||
|
this.spouses = new ITestBean[] {spouse}; |
||||||
|
this.someProperties = someProperties; |
||||||
|
} |
||||||
|
|
||||||
|
public TestBean(List someList) { |
||||||
|
this.someList = someList; |
||||||
|
} |
||||||
|
|
||||||
|
public TestBean(Set someSet) { |
||||||
|
this.someSet = someSet; |
||||||
|
} |
||||||
|
|
||||||
|
public TestBean(Map someMap) { |
||||||
|
this.someMap = someMap; |
||||||
|
} |
||||||
|
|
||||||
|
public TestBean(Properties someProperties) { |
||||||
|
this.someProperties = someProperties; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void setBeanName(String beanName) { |
||||||
|
this.beanName = beanName; |
||||||
|
} |
||||||
|
|
||||||
|
public String getBeanName() { |
||||||
|
return beanName; |
||||||
|
} |
||||||
|
|
||||||
|
public void setBeanFactory(BeanFactory beanFactory) { |
||||||
|
this.beanFactory = beanFactory; |
||||||
|
} |
||||||
|
|
||||||
|
public BeanFactory getBeanFactory() { |
||||||
|
return beanFactory; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPostProcessed(boolean postProcessed) { |
||||||
|
this.postProcessed = postProcessed; |
||||||
|
} |
||||||
|
|
||||||
|
public boolean isPostProcessed() { |
||||||
|
return postProcessed; |
||||||
|
} |
||||||
|
|
||||||
|
public String getName() { |
||||||
|
return name; |
||||||
|
} |
||||||
|
|
||||||
|
public void setName(String name) { |
||||||
|
this.name = name; |
||||||
|
} |
||||||
|
|
||||||
|
public String getSex() { |
||||||
|
return sex; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSex(String sex) { |
||||||
|
this.sex = sex; |
||||||
|
if (this.name == null) { |
||||||
|
this.name = sex; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int getAge() { |
||||||
|
return age; |
||||||
|
} |
||||||
|
|
||||||
|
public void setAge(int age) { |
||||||
|
this.age = age; |
||||||
|
} |
||||||
|
|
||||||
|
public boolean isJedi() { |
||||||
|
return jedi; |
||||||
|
} |
||||||
|
|
||||||
|
public void setJedi(boolean jedi) { |
||||||
|
this.jedi = jedi; |
||||||
|
} |
||||||
|
|
||||||
|
public ITestBean getSpouse() { |
||||||
|
return (spouses != null ? spouses[0] : null); |
||||||
|
} |
||||||
|
|
||||||
|
public void setSpouse(ITestBean spouse) { |
||||||
|
this.spouses = new ITestBean[] {spouse}; |
||||||
|
} |
||||||
|
|
||||||
|
public ITestBean[] getSpouses() { |
||||||
|
return spouses; |
||||||
|
} |
||||||
|
|
||||||
|
public String getTouchy() { |
||||||
|
return touchy; |
||||||
|
} |
||||||
|
|
||||||
|
public void setTouchy(String touchy) throws Exception { |
||||||
|
if (touchy.indexOf('.') != -1) { |
||||||
|
throw new Exception("Can't contain a ."); |
||||||
|
} |
||||||
|
if (touchy.indexOf(',') != -1) { |
||||||
|
throw new NumberFormatException("Number format exception: contains a ,"); |
||||||
|
} |
||||||
|
this.touchy = touchy; |
||||||
|
} |
||||||
|
|
||||||
|
public String getCountry() { |
||||||
|
return country; |
||||||
|
} |
||||||
|
|
||||||
|
public void setCountry(String country) { |
||||||
|
this.country = country; |
||||||
|
} |
||||||
|
|
||||||
|
public String[] getStringArray() { |
||||||
|
return stringArray; |
||||||
|
} |
||||||
|
|
||||||
|
public void setStringArray(String[] stringArray) { |
||||||
|
this.stringArray = stringArray; |
||||||
|
} |
||||||
|
|
||||||
|
public Integer[] getSomeIntegerArray() { |
||||||
|
return someIntegerArray; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSomeIntegerArray(Integer[] someIntegerArray) { |
||||||
|
this.someIntegerArray = someIntegerArray; |
||||||
|
} |
||||||
|
|
||||||
|
public Date getDate() { |
||||||
|
return date; |
||||||
|
} |
||||||
|
|
||||||
|
public void setDate(Date date) { |
||||||
|
this.date = date; |
||||||
|
} |
||||||
|
|
||||||
|
public Float getMyFloat() { |
||||||
|
return myFloat; |
||||||
|
} |
||||||
|
|
||||||
|
public void setMyFloat(Float myFloat) { |
||||||
|
this.myFloat = myFloat; |
||||||
|
} |
||||||
|
|
||||||
|
public Collection getFriends() { |
||||||
|
return friends; |
||||||
|
} |
||||||
|
|
||||||
|
public void setFriends(Collection friends) { |
||||||
|
this.friends = friends; |
||||||
|
} |
||||||
|
|
||||||
|
public Set getSomeSet() { |
||||||
|
return someSet; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSomeSet(Set someSet) { |
||||||
|
this.someSet = someSet; |
||||||
|
} |
||||||
|
|
||||||
|
public Map getSomeMap() { |
||||||
|
return someMap; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSomeMap(Map someMap) { |
||||||
|
this.someMap = someMap; |
||||||
|
} |
||||||
|
|
||||||
|
public List getSomeList() { |
||||||
|
return someList; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSomeList(List someList) { |
||||||
|
this.someList = someList; |
||||||
|
} |
||||||
|
|
||||||
|
public Properties getSomeProperties() { |
||||||
|
return someProperties; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSomeProperties(Properties someProperties) { |
||||||
|
this.someProperties = someProperties; |
||||||
|
} |
||||||
|
|
||||||
|
public INestedTestBean getDoctor() { |
||||||
|
return doctor; |
||||||
|
} |
||||||
|
|
||||||
|
public void setDoctor(INestedTestBean doctor) { |
||||||
|
this.doctor = doctor; |
||||||
|
} |
||||||
|
|
||||||
|
public INestedTestBean getLawyer() { |
||||||
|
return lawyer; |
||||||
|
} |
||||||
|
|
||||||
|
public void setLawyer(INestedTestBean lawyer) { |
||||||
|
this.lawyer = lawyer; |
||||||
|
} |
||||||
|
|
||||||
|
public Number getSomeNumber() { |
||||||
|
return someNumber; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSomeNumber(Number someNumber) { |
||||||
|
this.someNumber = someNumber; |
||||||
|
} |
||||||
|
|
||||||
|
public Colour getFavouriteColour() { |
||||||
|
return favouriteColour; |
||||||
|
} |
||||||
|
|
||||||
|
public void setFavouriteColour(Colour favouriteColour) { |
||||||
|
this.favouriteColour = favouriteColour; |
||||||
|
} |
||||||
|
|
||||||
|
public Boolean getSomeBoolean() { |
||||||
|
return someBoolean; |
||||||
|
} |
||||||
|
|
||||||
|
public void setSomeBoolean(Boolean someBoolean) { |
||||||
|
this.someBoolean = someBoolean; |
||||||
|
} |
||||||
|
|
||||||
|
public IndexedTestBean getNestedIndexedBean() { |
||||||
|
return nestedIndexedBean; |
||||||
|
} |
||||||
|
|
||||||
|
public void setNestedIndexedBean(IndexedTestBean nestedIndexedBean) { |
||||||
|
this.nestedIndexedBean = nestedIndexedBean; |
||||||
|
} |
||||||
|
|
||||||
|
public List getOtherColours() { |
||||||
|
return otherColours; |
||||||
|
} |
||||||
|
|
||||||
|
public void setOtherColours(List otherColours) { |
||||||
|
this.otherColours = otherColours; |
||||||
|
} |
||||||
|
|
||||||
|
public List getPets() { |
||||||
|
return pets; |
||||||
|
} |
||||||
|
|
||||||
|
public void setPets(List pets) { |
||||||
|
this.pets = pets; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* @see ITestBean#exceptional(Throwable) |
||||||
|
*/ |
||||||
|
public void exceptional(Throwable t) throws Throwable { |
||||||
|
if (t != null) { |
||||||
|
throw t; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void unreliableFileOperation() throws IOException { |
||||||
|
throw new IOException(); |
||||||
|
} |
||||||
|
/** |
||||||
|
* @see ITestBean#returnsThis() |
||||||
|
*/ |
||||||
|
public Object returnsThis() { |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @see IOther#absquatulate() |
||||||
|
*/ |
||||||
|
public void absquatulate() { |
||||||
|
} |
||||||
|
|
||||||
|
public int haveBirthday() { |
||||||
|
return age++; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void destroy() { |
||||||
|
this.destroyed = true; |
||||||
|
} |
||||||
|
|
||||||
|
public boolean wasDestroyed() { |
||||||
|
return destroyed; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public boolean equals(Object other) { |
||||||
|
if (this == other) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
if (other == null || !(other instanceof TestBean)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
TestBean tb2 = (TestBean) other; |
||||||
|
return (ObjectUtils.nullSafeEquals(this.name, tb2.name) && this.age == tb2.age); |
||||||
|
} |
||||||
|
|
||||||
|
public int hashCode() { |
||||||
|
return this.age; |
||||||
|
} |
||||||
|
|
||||||
|
public int compareTo(Object other) { |
||||||
|
if (this.name != null && other instanceof TestBean) { |
||||||
|
return this.name.compareTo(((TestBean) other).getName()); |
||||||
|
} |
||||||
|
else { |
||||||
|
return 1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public String toString() { |
||||||
|
return this.name; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,25 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans.support; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 29.07.2004 |
||||||
|
*/ |
||||||
|
public class DerivedFromProtectedBaseBean extends ProtectedBaseBean { |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,35 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2002-2005 the original author or authors. |
||||||
|
* |
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
|
* you may not use this file except in compliance with the License. |
||||||
|
* You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.springframework.beans.support; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Juergen Hoeller |
||||||
|
* @since 29.07.2004 |
||||||
|
*/ |
||||||
|
class ProtectedBaseBean { |
||||||
|
|
||||||
|
private String someProperty; |
||||||
|
|
||||||
|
public void setSomeProperty(String someProperty) { |
||||||
|
this.someProperty = someProperty; |
||||||
|
} |
||||||
|
|
||||||
|
public String getSomeProperty() { |
||||||
|
return someProperty; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue