/*
* Main.java
* Copyright (c) 2004 The Prevayler Team
*
* See distributed LICENSE file for licensing details.
*/
package org.prevayler.tutorial;
import java.util.Iterator;
import org.prevayler.Prevayler;
import org.prevayler.PrevaylerFactory;
/**
* 2-Minute Tutorial Main-Class.
*
* @author Carlos Villela
* @since Mar 7, 2004
*/
public class Main {
public static void main(String... args) throws Exception {
if (args.length == 0) {
throw new IllegalArgumentException("The first argument has to be a path for prevayler");
}
// START SNIPPET: creating
// Create a new prevayler. /tasklist-base is the tx-journal directory.
Prevayler prevayler = PrevaylerFactory.createPrevayler(new TaskList(), args[0]);
TaskList list = (TaskList) prevayler.prevalentSystem();
// END SNIPPET: creating
System.out.println("Tasks: " + list.getTasks().size() + ", adding ");
// START SNIPPET: adding
Task dishes = (Task) prevayler.execute(new AddTask("do the dishes", Task.MAX_PRIORITY));
Task dog = (Task) prevayler.execute(new AddTask("walk the dog", Task.MED_PRIORITY));
Task laundry = (Task) prevayler.execute(new AddTask("do the laundry", Task.MIN_PRIORITY));
// END SNIPPET: adding
// START SNIPPET: iterating
for (Iterator i = list.getTasks().iterator(); i.hasNext();) {
Task t = (Task) i.next();
System.out.println("Task: " + t.getDescription() + ", " + t.getPriority());
}
// END SNIPPET: iterating
System.out.println("Tasks: " + list.getTasks().size() + ", removing...");
System.out.println("Before removing...");
// START SNIPPET: removing
prevayler.execute(new RemoveTask(dishes));
prevayler.execute(new RemoveTask(dog));
prevayler.execute(new RemoveTask(laundry));
// END SNIPPET: removing
System.out.println("After removing...");
System.out.println("Tasks: " + list.getTasks().size());
// START SNIPPET: snapshotting
prevayler.takeSnapshot();
// END SNIPPET: snapshotting
}
}