This example shows how to create a factory, a session and a map instance. The map instance is used to store, retrieve and remove a JobCapable instance using datastore identity.
The example is contained in file Example2.java .
package org.job.examples;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import org.job.JobCapable;
import org.job.JobFactory;
import org.job.JobKey;
import org.job.JobKeyMap;
import org.job.JobSession;
/**
* This class shows how to create a factory, session and map instance.
* The map instance is used to store, retrieve and remove
* a JobCapable
instance using datastore identity.
*/
public class Example2
{
/**
* This method is invoked with an argument array containing an URL.
* @param args the command line arguments containing an URL.
*/
public static void main(String[] args)
{
// create a factory
JobFactory jobFactory = org.job.impl.JobFactory.newInstance();
try {
// create a session using a built in user
JobSession session =
jobFactory.getSession(args[0], "rio", "dejaneiro");
try {
// start a transaction
session.begin();
// create JOB key map
JobKeyMap jobKeyMap = session.newKeyMap( "myJobKeyMap" );
// create a JOB capable
JobCapable jobCapable = new MyJobCapable( "Instance 4711" );
// store the JOB capable instance
JobKey jobKey = jobKeyMap.put( jobCapable );
// retrieve the JOB capable instance
Object value = jobKeyMap.get( jobKey );
// check the retrieved instance
if( !jobCapable.equals(value) )
throw new RuntimeException( "Retrieved: "+value+", expected: \""+jobCapable+'\"' );
// remove JOB capable instance
Object removedValue = jobKeyMap.remove( jobKey );
// check the removed instance
if( !value.equals(removedValue) )
throw new RuntimeException( "Retrieved: "+value+", expected: \""+removedValue+'\"' );
// commit the transaction
session.end();
} finally {
// close the session
session.close();
}
} finally {
// close the factory
jobFactory.close();
}
}
/**
* A simple JOB capable class.
*/
public static class MyJobCapable implements JobCapable
{
/** */
String name;
/**
*
*/
public MyJobCapable()
{}
/**
* @param name
*/
MyJobCapable( String name )
{
this.name = name;
}
/*
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object object)
{
if( !(object instanceof MyJobCapable) )
return false;
return this.name.equals( ((MyJobCapable)object).name );
}
/*
* @see java.lang.Object#hashCode()
*/
public int hashCode()
{
return this.name.hashCode();
}
/*
* @see java.lang.Object#toString()
*/
public String toString()
{
return this.name;
}
/**
* Required method by JOB to write this instance to the given output.
* @param out
* @throws IOException
*/
private void writeObject(ObjectOutput out) throws IOException
{
out.writeObject( this.name );
}
/**
* Required method by JOB to read from the given input into this instance.
* @param in
* @throws IOException
* @throws ClassNotFoundException
*/
private void readObject(ObjectInput in) throws IOException, ClassNotFoundException
{
this.name = (String) in.readObject();
}
}
}