// You can redistribute this software and/or modify it under the terms of
// the Ozone Core License version 1 published by ozone-db.org.
//
// The original code and portions created by SMB are
// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.
//
// $Id: DbCommand.java,v 1.4 2002/06/25 11:34:38 mediumnet Exp $
package org.ozoneDB.core.DbRemote;
import java.io.*;
import org.ozoneDB.DxLib.DxObject;
import org.ozoneDB.core.*;
import org.ozoneDB.util.*;
/**
* This is the base class for command that can be send to an ozone server.
*
*
* @author <a href="http://www.softwarebuero.de/">SMB</a>
* @version $Revision: 1.4 $Date: 2002/06/25 11:34:38 $
*/
public abstract class DbCommand extends DxObject {
/**
* Environment of this object. Will be set by InvokeServer.
*/
public transient Env env;
/**
* Result of the command. This will only be used on the server side.
*/
public transient Object result;
/**
The database client proxy object gate which proxy objects leaving the database must be signed on.
This field is valid during the call of {@link #perform}.
*/
protected transient ProxyObjectGate proxyObjectGate;
public DbCommand() {
}
/**
* Perform whatever has to be done for this command. This method is called
* within a transaction, within a thread. The result of the command goes in
* the result member.
*/
public abstract void perform( Transaction ta ) throws Exception;
public String toString() {
return "[" + this.getClass().getName() + "]";
}
public void setProxyObjectGate(ProxyObjectGate proxyObjectGate) {
this.proxyObjectGate = proxyObjectGate;
}
/**
Returns database client proxy object gate which proxy objects leaving the database must be signed on.
The return value is valid during the call of {@link #perform}.
*/
protected ProxyObjectGate getProxyObjectGate() {
return proxyObjectGate;
}
/**
Returns wether a result should be sent to the client.
*/
public boolean shouldResultBeSentToClient() {
return true;
}
}
|