/******************************************************************************* | |
* Copyright (c) 1998, 2013 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.models.transparentindirection; | |
import java.util.*; | |
import java.io.*; | |
import org.eclipse.persistence.indirection.*; | |
import org.eclipse.persistence.sessions.*; | |
import org.eclipse.persistence.testing.tests.transparentindirection.TestHashtable; | |
/** | |
* Simple order object. Just a test fixture. | |
* @author: Big Country | |
*/ | |
public abstract class AbstractOrder implements Serializable { | |
public int id; | |
public String customerName; | |
public Stack contacts2;// test NoIndirectionPolicy for Vectors | |
public TestHashtable salesReps2;// test NoIndirectionPolicy for Hashtables | |
public ValueHolderInterface total;// test TransformationMapping | |
public int total2; | |
/** | |
* TopLink constructor | |
*/ | |
public AbstractOrder() { | |
super(); | |
this.initialize(); | |
} | |
/** | |
* Constructor | |
*/ | |
public AbstractOrder(String customerName) { | |
this(); | |
this.initialize(customerName); | |
} | |
public abstract void addContact(String contact); | |
public void addContact2(String contact) { | |
contacts2.addElement(contact); | |
} | |
public abstract void addLine(AbstractOrderLine line); | |
public abstract void addSalesRep(AbstractSalesRep salesRep); | |
public void addSalesRep2(AbstractSalesRep salesRep) { | |
salesReps2.put(salesRep.getKey(), salesRep); | |
salesRep.addOrder2(this); | |
} | |
public abstract boolean containsContact(String contactName); | |
public boolean containsContact2(String contactName) { | |
return contacts2.contains(contactName); | |
} | |
public abstract boolean containsLine(AbstractOrderLine line); | |
public abstract boolean containsSalesRep(AbstractSalesRep salesRep); | |
public boolean containsSalesRep2(AbstractSalesRep salesRep) { | |
return salesReps2.contains(salesRep); | |
} | |
public Vector getAttributeVector(Enumeration stream) { | |
Vector result = new Vector(); | |
while (stream.hasMoreElements()) { | |
result.addElement(stream.nextElement()); | |
} | |
return result; | |
} | |
public abstract Object getContactContainer(); | |
public Object getContactContainer2() { | |
return contacts2; | |
} | |
public abstract Enumeration getContactStream(); | |
public Enumeration getContactStream2() { | |
return contacts2.elements(); | |
} | |
public Vector getContactVector() { | |
return getAttributeVector(this.getContactStream()); | |
} | |
public Vector getContactVector2() { | |
return getAttributeVector(this.getContactStream2()); | |
} | |
public abstract Object getLineContainer(); | |
public abstract void clearLines(); | |
public abstract Enumeration getLineStream(); | |
public Vector getLineVector() { | |
return getAttributeVector(this.getLineStream()); | |
} | |
public abstract int getNumberOfContacts(); | |
public int getNumberOfContacts2() { | |
return contacts2.size(); | |
} | |
public abstract int getNumberOfLines(); | |
public abstract int getNumberOfSalesReps(); | |
public int getNumberOfSalesReps2() { | |
return salesReps2.size(); | |
} | |
public abstract Object getSalesRepContainer(); | |
public Object getSalesRepContainer2() { | |
return salesReps2; | |
} | |
public abstract Enumeration getSalesRepStream(); | |
public Enumeration getSalesRepStream2() { | |
return salesReps2.elements(); | |
} | |
public Vector getSalesRepVector() { | |
return getAttributeVector(this.getSalesRepStream()); | |
} | |
public Vector getSalesRepVector2() { | |
return getAttributeVector(this.getSalesRepStream2()); | |
} | |
public int getTotal() { | |
return ((Integer)total.getValue()).intValue(); | |
} | |
public int getTotalFromRow(Record row, Session session) { | |
int tens = ((Number)row.get("TOTT")).intValue(); | |
int ones = ((Number)row.get("TOTO")).intValue(); | |
return (tens * 10) + ones; | |
} | |
public int getTotalFromRow2(Record row, Session session) { | |
int tens = ((Number)row.get("TOTT2")).intValue(); | |
int ones = ((Number)row.get("TOTO2")).intValue(); | |
return (tens * 10) + ones; | |
} | |
public int getTotalOnes() { | |
return this.getTotal() - ((this.getTotal() / 10) * 10); | |
} | |
public int getTotalOnes2() { | |
return total2 - ((total2 / 10) * 10); | |
} | |
public int getTotalTens() { | |
return this.getTotal() / 10; | |
} | |
public int getTotalTens2() { | |
return total2 / 10; | |
} | |
/** | |
* initialize the instance | |
*/ | |
protected void initialize() { | |
this.contacts2 = new Stack(); | |
this.salesReps2 = new TestHashtable(); | |
this.total = new ValueHolder(new Integer(1)); | |
this.total2 = 0; | |
} | |
/** | |
* initialize the instance | |
*/ | |
protected void initialize(String customerName) { | |
this.customerName = customerName; | |
} | |
public abstract void removeContact(String contact); | |
public void removeContact2(String contact) { | |
contacts2.removeElement(contact); | |
} | |
public abstract void removeLine(AbstractOrderLine line); | |
public abstract void removeSalesRep(AbstractSalesRep salesRep); | |
public void removeSalesRep2(AbstractSalesRep salesRep) { | |
salesReps2.remove(salesRep.getKey()); | |
salesRep.removeOrder2(this); | |
} | |
public void setTotal(int total) { | |
this.total.setValue(new Integer(total)); | |
} | |
public String toString() { | |
StringBuffer buffer = new StringBuffer(1000); | |
buffer.append("Order("); | |
buffer.append(id); | |
buffer.append(": "); | |
buffer.append(customerName); | |
buffer.append(")"); | |
Object container = this.getLineContainer(); | |
if (container == null) { | |
return buffer.toString(); | |
} | |
buffer.append(System.getProperty("line.separator")); | |
if ((container instanceof IndirectContainer) && (!((IndirectContainer)container).isInstantiated())) { | |
buffer.append("\t"); | |
buffer.append("uninstantiated order lines..."); | |
} else { | |
for (Enumeration stream = getLineStream(); stream.hasMoreElements();) { | |
buffer.append("\t"); | |
buffer.append(stream.nextElement()); | |
buffer.append(System.getProperty("line.separator")); | |
} | |
} | |
return buffer.toString(); | |
} | |
} |