blob: 43974b989cc9f9d1069f4b6c655380adceb200d4 [file] [log] [blame]
/*******************************************************************************
* 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.internal.sessions.remote;
import java.util.*;
import java.io.*;
import org.eclipse.persistence.internal.helper.*;
import org.eclipse.persistence.internal.sessions.AbstractSession;
import org.eclipse.persistence.queries.*;
/**
* As the name signifies the object is responsible for carrying read objects from the server to the client.
*/
public class Transporter implements Serializable {
/** Object(s) read from the server */
public Object object;
// Changed to public to allow access to TransporterHolder and TransporterHepler in org.eclipse.persistence.sessions.remote.corba.orbix.
public boolean wasOperationSuccessful;
// Changed to public to allow access to TransporterHolder and TransporterHepler in org.eclipse.persistence.sessions.remote.corba.orbix.
protected Map objectDescriptors;
protected DatabaseQuery query;
public Transporter() {
this.wasOperationSuccessful = true;
}
public Transporter(Object object) {
this();
this.object = object;
}
/**
* Return the exception which this Transporter is holding. An exception will only be returned when the
* operation that returned this transporter was not successful.
* @return java.lang.RuntimeException
*/
public RuntimeException getException() {
if (wasOperationSuccessful()) {
return null;
}
return (RuntimeException)getObject();
}
/**
* Serialize the object.
*/
public void prepare(AbstractSession session) {
if (session.getSerializer() != null) {
this.object = session.getSerializer().serialize(this.object, session);
}
}
/**
* Deserialize the object.
*/
public void expand(AbstractSession session) {
if (session.getSerializer() != null) {
this.object = session.getSerializer().deserialize((byte[])this.object, session);
}
}
/**
* Returns the read object(s) from the server side.
*/
public Object getObject() {
return object;
}
/**
* Returns a hashtable of object descriptors.
*/
public Map getObjectDescriptors() {
return objectDescriptors;
}
/**
* Return the query associated with this transporter.
* @return org.eclipse.persistence.queries.DatabaseQuery
*/
public DatabaseQuery getQuery() {
return query;
}
/**
* Set the exception associated with this Transporter
* @param java.lang.RuntimeException
*/
public void setException(RuntimeException exception) {
setObject(exception);
setWasOperationSuccessful(false);
}
/**
* Set the read object(s) from the server side.
*/
public void setObject(Object object) {
this.object = object;
}
/**
* Get object to object descriptor
*/
public void setObjectDescriptors(Map objectDescriptors) {
this.objectDescriptors = objectDescriptors;
}
/**
* Set the query associated with this transporter
* @param org.eclipse.persistence.queries.DatabaseQuery
*/
public void setQuery(DatabaseQuery query) {
this.query = query;
}
/**
* Set whether the operation which caused this transporter to be returned was successful.
* @param boolean
*/
public void setWasOperationSuccessful(boolean wasOperationSuccessful) {
this.wasOperationSuccessful = wasOperationSuccessful;
}
public String toString() {
return Helper.getShortClassName(getClass()) + "(" + getObject() + ")";
}
/**
* Return whether the operation which caused this transporter to be returned was successful.
* @return boolean
*/
public boolean wasOperationSuccessful() {
return wasOperationSuccessful;
}
}