//$HeadURL: https://sushibar/svn/deegree/base/trunk/resources/eclipse/svn_classfile_header_template.xml $
/*---------------- FILE HEADER ------------------------------------------
This file is part of deegree.
Copyright (C) 2001-2007 by:
Department of Geography, University of Bonn
http://www.giub.uni-bonn.de/deegree/
lat/lon GmbH
http://www.lat-lon.de
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Contact:
Andreas Poth
lat/lon GmbH
Aennchenstr. 19
53177 Bonn
Germany
E-Mail: poth@lat-lon.de
Prof. Dr. Klaus Greve
Department of Geography
University of Bonn
Meckenheimer Allee 166
53115 Bonn
Germany
E-Mail: greve@giub.uni-bonn.de
---------------------------------------------------------------------------*/
package org.deegree.services.wps.process;
import java.io.StringWriter;
import java.security.MessageDigest;
import java.util.Calendar;
import org.deegree.model.identifier.IntIdentifier;
import org.deegree.processing.commandprocessor.AbstractCommand;
import org.deegree.processing.commandprocessor.CommandResult;
import org.deegree.processing.commandprocessor.CommandState;
import com.sun.corba.se.impl.orbutil.HexOutputStream;
/**
* TestCommand
*
* @author Andreas Schmitz
* @author last edited by: $Author:$
*
* @version $Revision:$, $Date:$
*/
public class TestCommand extends AbstractCommand {
private byte[] data;
String hash;
Exception exception;
public TestCommand( byte[] data ) {
super( new IntIdentifier( 0 ), null );
this.data = data;
}
/*
* (non-Javadoc)
*
* @see org.deegree.processing.commandprocessor.Command#cancel()
*/
@Override
public void cancel() {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see org.deegree.processing.commandprocessor.Command#execute()
*/
@Override
public void execute() {
MessageDigest digest;
try {
digest = MessageDigest.getInstance( "md5" );
digest.digest( data );
StringWriter sout = new StringWriter();
HexOutputStream out = new HexOutputStream( sout );
out.write( digest.digest( data ) );
hash = sout.getBuffer().toString();
} catch ( Exception e ) {
exception = e;
}
}
CommandState.STATE state;
/*
* (non-Javadoc)
*
* @see org.deegree.processing.commandprocessor.Command#getResult()
*/
@Override
public CommandResult getResult() {
return new CommandResult() {
@Override
public CommandState getState() {
return new CommandState() {
@Override
public String getDescription() {
// TODO Auto-generated method stub
return null;
}
@Override
public Calendar getExecutionFinishedTimestamp() {
// TODO Auto-generated method stub
return null;
}
@Override
public Calendar getIncomingOrderTimestamp() {
// TODO Auto-generated method stub
return null;
}
@Override
public long getRealExecutionDuration() {
// TODO Auto-generated method stub
return 0;
}
@Override
public Calendar getStartExecutionTimestamp() {
// TODO Auto-generated method stub
return null;
}
@Override
public STATE getState() {
if ( exception != null ) {
state = STATE.terminatedByException;
}
return state;
// if(hash != null){
// return STATE.finished;
// }
// return STATE.inqueue ;
}
@Override
public void setState( STATE currentState ) {
state = currentState;
}
};
}
@Override
public String getValue() {
return hash;
}
};
}
/*
* (non-Javadoc)
*
* @see org.deegree.processing.commandprocessor.Command#pause()
*/
@Override
public void pause() {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see org.deegree.processing.commandprocessor.Command#resume()
*/
@Override
public void resume() {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see org.deegree.processing.commandprocessor.Command#setPriority(int)
*/
@Override
public void setPriority( int priority ) {
// TODO Auto-generated method stub
}
}