/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.testing.tests.isolatedsession; import java.math.*; import java.io.*; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; import org.eclipse.persistence.descriptors.changetracking.*; /** * <p><b>Purpose</b>: Represents the mailing address on an Employee * <p><b>Description</b>: Held in a private 1:1 relationship from Employee * @see Employee */ public class IsolatedAddress implements Serializable, ChangeTracker { // implements ChangeTracker for testing public BigDecimal id; public String street; public String city; public String province; public String postalCode; public String country; //used in testing WorkingCloneCopyPolcyTest. Not mapped and should not be mapped. public boolean isWorkingCopy; public PropertyChangeListener listener; public PropertyChangeListener _persistence_getPropertyChangeListener() { return listener; } public void _persistence_setPropertyChangeListener(PropertyChangeListener listener) { this.listener = listener; } public void propertyChange(String propertyName, Object oldValue, Object newValue) { if (listener != null) { if (oldValue != newValue) { listener.propertyChange(new PropertyChangeEvent(this, propertyName, oldValue, newValue)); } } } public void collectionChange(String propertyName, Object oldValue, Object newValue, int changeType, boolean isChangeApplied) { if (listener != null) { listener.propertyChange(new CollectionChangeEvent(this, propertyName, oldValue, newValue, changeType, isChangeApplied)); } } public IsolatedAddress() { this.city = ""; this.province = ""; this.postalCode = ""; this.street = ""; this.country = ""; this.isWorkingCopy = false; } public String getCity() { return city; } public String getCountry() { return country; } /** * Return the persistent identifier of the receiver. */ public BigDecimal getId() { return id; } public String getPostalCode() { return postalCode; } public String getProvince() { return province; } public String getStreet() { return street; } public void setCity(String city) { propertyChange("city", this.city, city); this.city = city; } public void setCountry(String country) { propertyChange("country", this.country, country); this.country = country; } /** * Set the persistent identifier of the receiver. */ public void setId(BigDecimal id) { propertyChange("id", this.id, id); this.id = id; } public void setPostalCode(String postalCode) { propertyChange("postalCode", this.postalCode, postalCode); this.postalCode = postalCode; } public void setProvince(String province) { propertyChange("province", this.province, province); this.province = province; } public void setStreet(String street) { propertyChange("street", this.street, street); this.street = street; } /** * Print the address city and province. */ public String toString() { StringWriter writer = new StringWriter(); writer.write("IsolatedAddress: "); writer.write(getStreet()); writer.write(", "); writer.write(getCity()); writer.write(", "); writer.write(getProvince()); writer.write(", "); writer.write(getCountry()); return writer.toString(); } protected static org.eclipse.persistence.tools.schemaframework.TableDefinition buildIsolatedTableDefinition() { org.eclipse.persistence.tools.schemaframework.TableDefinition tabledefinition = new org.eclipse.persistence.tools.schemaframework.TableDefinition(); // SECTION: TABLE tabledefinition.setName("ISOLATED_ADDRESS"); // SECTION: FIELD org.eclipse.persistence.tools.schemaframework.FieldDefinition field = new org.eclipse.persistence.tools.schemaframework.FieldDefinition(); field.setName("ADDRESS_ID"); field.setTypeName("NUMERIC"); field.setSize(15); field.setShouldAllowNull(false); field.setIsPrimaryKey(true); field.setUnique(false); field.setIsIdentity(true); tabledefinition.addField(field); // SECTION: FIELD org.eclipse.persistence.tools.schemaframework.FieldDefinition field1 = new org.eclipse.persistence.tools.schemaframework.FieldDefinition(); field1.setName("P_CODE"); field1.setTypeName("VARCHAR"); field1.setSize(20); field1.setShouldAllowNull(true); field1.setIsPrimaryKey(false); field1.setUnique(false); field1.setIsIdentity(false); tabledefinition.addField(field1); // SECTION: FIELD org.eclipse.persistence.tools.schemaframework.FieldDefinition field2 = new org.eclipse.persistence.tools.schemaframework.FieldDefinition(); field2.setName("CITY"); field2.setTypeName("VARCHAR"); field2.setSize(80); field2.setShouldAllowNull(true); field2.setIsPrimaryKey(false); field2.setUnique(false); field2.setIsIdentity(false); tabledefinition.addField(field2); // SECTION: FIELD org.eclipse.persistence.tools.schemaframework.FieldDefinition field3 = new org.eclipse.persistence.tools.schemaframework.FieldDefinition(); field3.setName("PROVINCE"); field3.setTypeName("VARCHAR"); field3.setSize(80); field3.setShouldAllowNull(true); field3.setIsPrimaryKey(false); field3.setUnique(false); field3.setIsIdentity(false); tabledefinition.addField(field3); // SECTION: FIELD org.eclipse.persistence.tools.schemaframework.FieldDefinition field4 = new org.eclipse.persistence.tools.schemaframework.FieldDefinition(); field4.setName("STREET"); field4.setTypeName("VARCHAR"); field4.setSize(80); field4.setShouldAllowNull(true); field4.setIsPrimaryKey(false); field4.setUnique(false); field4.setIsIdentity(false); tabledefinition.addField(field4); // SECTION: FIELD org.eclipse.persistence.tools.schemaframework.FieldDefinition field5 = new org.eclipse.persistence.tools.schemaframework.FieldDefinition(); field5.setName("COUNTRY"); field5.setTypeName("VARCHAR"); field5.setSize(80); field5.setShouldAllowNull(true); field5.setIsPrimaryKey(false); field5.setUnique(false); field5.setIsIdentity(false); tabledefinition.addField(field5); return tabledefinition; } public static IsolatedAddress AddressExample1() { IsolatedAddress address = new IsolatedAddress(); address.setCity("Toronto"); address.setPostalCode("L5J2B5"); address.setProvince("ONT"); address.setStreet("1450 Acme Cr., suite 4"); address.setCountry("Canada"); return address; } public static IsolatedAddress AddressExample2() { IsolatedAddress address = new IsolatedAddress(); address.setCity("Ottawa"); address.setPostalCode("K5J2B5"); address.setProvince("ONT"); address.setStreet("12 Merival Rd., suite 5"); address.setCountry("Canada"); return address; } }