svn commit: r1027496 - /lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
[email protected] Tue, 26 Oct 2010 12:17:17 -0000
| Newsgroups | gmane.comp.cms.lenya.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: florent
Date: Tue Oct 26 12:17:17 2010
New Revision: 1027496
URL: http://svn.apache.org/viewvc?rev=1027496&view=rev
Log:
- use java 5 generics and new urlinformation utils
Modified:
lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java?rev=1027496&r1=1027495&r2=1027496&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/AbstractUsecase.java Tue Oct 26 12:17:17 2010
@@ -20,8 +20,6 @@ package org.apache.lenya.cms.usecase;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -40,7 +38,7 @@ import org.apache.lenya.cms.publication.
import org.apache.lenya.cms.publication.RepositoryException;
import org.apache.lenya.cms.publication.Session;
import org.apache.lenya.cms.publication.TransactionLock;
-import org.apache.lenya.cms.publication.URLInformation;
+import org.apache.lenya.utils.URLInformation;
/**
* Abstract usecase implementation.
@@ -49,24 +47,25 @@ import org.apache.lenya.cms.publication.
*/
public class AbstractUsecase extends AbstractLogEnabled implements Usecase {
- protected static final String EVENT_CHECK_POSTCONDITIONS = "checkPostconditions";
+ protected static final String EVENT_CHECK_PRECONDITIONS = "checkPreconditions";
+
+ protected static final String EVENT_LOCK_NODES = "lockInvolvedObjects";
+
+ protected static final String EVENT_CHECK_EXECUTION_CONDITIONS = "checkExecutionConditions";
- protected static final String EVENT_EXECUTE = "execute";
-
- protected static final String EVENT_CHECK_PRECONDITIONS = "checkPreconditions";
-
- protected static final String EVENT_CHECK_EXECUTION_CONDITIONS = "checkExecutionConditions";
+ protected static final String EVENT_EXECUTE = "execute";
+ protected static final String EVENT_CHECK_POSTCONDITIONS = "checkPostconditions";
+
protected static final String ERROR_OBJECTS_CHECKED_OUT = "objects-checked-out";
+
protected static final StateMachine.Transition[] TRANSITIONS = {
new StateMachine.Transition("start", "preChecked", EVENT_CHECK_PRECONDITIONS),
new StateMachine.Transition("preChecked", "preChecked", EVENT_CHECK_PRECONDITIONS),
- new StateMachine.Transition("preChecked", "nodesLocked", "lockInvolvedObjects"),
- new StateMachine.Transition("nodesLocked", "execChecked",
- EVENT_CHECK_EXECUTION_CONDITIONS),
- new StateMachine.Transition("execChecked", "execChecked",
- EVENT_CHECK_EXECUTION_CONDITIONS),
+ new StateMachine.Transition("preChecked", "nodesLocked", EVENT_LOCK_NODES),
+ new StateMachine.Transition("nodesLocked", "execChecked",EVENT_CHECK_EXECUTION_CONDITIONS),
+ new StateMachine.Transition("execChecked", "execChecked",EVENT_CHECK_EXECUTION_CONDITIONS),
new StateMachine.Transition("nodesLocked", "preChecked", EVENT_CHECK_PRECONDITIONS),
new StateMachine.Transition("execChecked", "executed", EVENT_EXECUTE),
new StateMachine.Transition("executed", "postChecked", EVENT_CHECK_POSTCONDITIONS) };
@@ -155,20 +154,20 @@ public class AbstractUsecase extends Abs
* prevent the operation from being executed.
* @return A boolean value.
*/
- public List getErrorMessages() {
- return Collections.unmodifiableList(new ArrayList(this.errorMessages));
+ public List<UsecaseMessage> getErrorMessages() {
+ return Collections.unmodifiableList(new ArrayList<UsecaseMessage>(this.errorMessages));
}
/**
* Returns the information messages to show on the confirmation screen.
* @return An array of strings. Info messages do not prevent the operation from being executed.
*/
- public List getInfoMessages() {
- return Collections.unmodifiableList(new ArrayList(this.infoMessages));
+ public List<UsecaseMessage> getInfoMessages() {
+ return Collections.unmodifiableList(new ArrayList<UsecaseMessage>(this.infoMessages));
}
- private List errorMessages = new ArrayList();
- private List infoMessages = new ArrayList();
+ private List<UsecaseMessage> errorMessages = new ArrayList<UsecaseMessage>();
+ private List<UsecaseMessage> infoMessages = new ArrayList<UsecaseMessage>();
/**
* Adds an error message.
@@ -223,7 +222,7 @@ public class AbstractUsecase extends Abs
clearErrorMessages();
clearInfoMessages();
doCheckExecutionConditions();
- dumpErrorMessages();
+ dumpErrorMessagesToLog();
} catch (Exception e) {
getLogger().error(e.getMessage(), e);
addErrorMessage(e.getMessage() + " - Please consult the logfiles.");
@@ -259,10 +258,8 @@ public class AbstractUsecase extends Abs
}
doCheckPreconditions();
- List _errorMessages = getErrorMessages();
- for (int i = 0; i < _errorMessages.size(); i++) {
- getLogger().info(_errorMessages.get(i).toString());
- }
+ dumpErrorMessagesToLog();
+
} catch (Exception e) {
getLogger().error(e.getMessage(), e);
addErrorMessage(e.getMessage() + " - Please consult the logfiles.");
@@ -272,6 +269,8 @@ public class AbstractUsecase extends Abs
}
if (!hasErrors()) {
advanceState(EVENT_CHECK_PRECONDITIONS);
+ //flo
+ //advanceState(EVENT_LOCK_NODES);
}
}
@@ -307,7 +306,7 @@ public class AbstractUsecase extends Abs
clearErrorMessages();
clearInfoMessages();
doExecute();
- dumpErrorMessages();
+ dumpErrorMessagesToLog();
} catch (LockException e) {
exception = e;
addErrorMessage("The operation could not be completed because an involved object was changed by another user.");
@@ -340,14 +339,22 @@ public class AbstractUsecase extends Abs
/**
* Dumps the error messages to the log.
+ * @deprecated use dumpErrorMessagesToLog instead
*/
protected void dumpErrorMessages() {
- List _errorMessages = getErrorMessages();
+ List<UsecaseMessage> _errorMessages = getErrorMessages();
for (int i = 0; i < _errorMessages.size(); i++) {
getLogger().error(_errorMessages.get(i).toString());
}
}
-
+
+ protected void dumpErrorMessagesToLog() {
+ List<UsecaseMessage> _errorMessages = getErrorMessages();
+ for (UsecaseMessage um : _errorMessages){
+ getLogger().info(um.toString());
+ }
+ }
+
/**
* @see org.apache.lenya.cms.usecase.Usecase#checkPostconditions()
*/
@@ -357,7 +364,7 @@ public class AbstractUsecase extends Abs
clearErrorMessages();
clearInfoMessages();
doCheckPostconditions();
- dumpErrorMessages();
+ dumpErrorMessagesToLog();
} catch (Exception e) {
getLogger().error(e.getMessage(), e);
addErrorMessage(e.getMessage() + " - Please consult the logfiles.");
@@ -386,7 +393,7 @@ public class AbstractUsecase extends Abs
// do nothing
}
- private Map parameters = new HashMap();
+ private Properties parameters = new Properties();
/**
* @see org.apache.lenya.cms.usecase.Usecase#setParameter(java.lang.String, java.lang.Object)
@@ -477,7 +484,7 @@ public class AbstractUsecase extends Abs
* Return a map of all parameters
* @return the map
*/
- public Map getParameters() {
+ public Map<Object,Object> getParameters() {
initializeParametersIfNotDone();
return Collections.unmodifiableMap(this.parameters);
}
@@ -600,8 +607,8 @@ public class AbstractUsecase extends Abs
*/
public String[] getParameterNames() {
initializeParametersIfNotDone();
- Set keys = this.parameters.keySet();
- return (String[]) keys.toArray(new String[keys.size()]);
+ Set<String> keys = this.parameters.stringPropertyNames();
+ return keys.toArray(new String[keys.size()]);
}
protected void initializeParametersIfNotDone() {
@@ -765,8 +772,9 @@ public class AbstractUsecase extends Abs
}
private String exitUsecaseName = null;
- private Map exitUsecaseParameters = new HashMap();
-
+ //private Map<String,String> exitUsecaseParameters = new HashMap<String,String>();
+ //private Map exitUsecaseParameters = new HashMap();
+ private Properties exitUsecaseParameters = new Properties();
/**
* Sets a parameter to pass to the exit usecase.
* @param name The parameter name.
@@ -785,10 +793,9 @@ public class AbstractUsecase extends Abs
StringBuffer queryBuffer = new StringBuffer();
if (this.exitUsecaseName != null) {
queryBuffer.append("?lenya.usecase=").append(this.exitUsecaseName);
- for (Iterator i = this.exitUsecaseParameters.keySet().iterator(); i.hasNext();) {
- String key = (String) i.next();
- String value = (String) this.exitUsecaseParameters.get(key);
- queryBuffer.append("&").append(key).append("=").append(value);
+ for (String key : this.exitUsecaseParameters.stringPropertyNames()){
+ String value = (String) this.exitUsecaseParameters.get(key);
+ queryBuffer.append("&").append(key).append("=").append(value);
}
} else {
String exitUsecase = getParameterAsString("lenya.exitUsecase");
@@ -847,7 +854,7 @@ public class AbstractUsecase extends Abs
this.exitUsecaseName = exitUsecaseName;
}
- protected Map getExitUsecaseParameters() {
+ protected Properties getExitUsecaseParameters() {
return exitUsecaseParameters;
}
@@ -868,8 +875,8 @@ public class AbstractUsecase extends Abs
* @return the publication in which the use-case is being executed
*/
protected Publication getPublication() {
- if (this.pub == null) {
- String pubId = new URLInformation(getSourceURL()).getPublicationId();
+ if (this.pub == null) {
+ String pubId = new URLInformation().getPublicationId();
this.pub = getSession().getPublication(pubId);
}
return this.pub;