You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by ju...@apache.org on 2002/04/03 14:00:07 UTC
cvs commit: jakarta-slide/src/share/org/apache/slide/macro Macro.java MacroImpl.java
juergen 02/04/03 04:00:07
Modified: src/share/org/apache/slide/macro Macro.java MacroImpl.java
Log:
Added delete() methods that allow to specify a DeleteListener.
(ralf)
Revision Changes Path
1.7 +34 -4 jakarta-slide/src/share/org/apache/slide/macro/Macro.java
Index: Macro.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/Macro.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Macro.java 28 Mar 2002 06:23:15 -0000 1.6
+++ Macro.java 3 Apr 2002 12:00:07 -0000 1.7
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/Macro.java,v 1.6 2002/03/28 06:23:15 jericho Exp $
- * $Revision: 1.6 $
- * $Date: 2002/03/28 06:23:15 $
+ * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/Macro.java,v 1.7 2002/04/03 12:00:07 juergen Exp $
+ * $Revision: 1.7 $
+ * $Date: 2002/04/03 12:00:07 $
*
* ====================================================================
*
@@ -76,7 +76,7 @@
* Macro helper class.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
*/
public interface Macro {
@@ -167,6 +167,19 @@
void delete(SlideToken token, String targetUri)
throws DeleteMacroException;
+ /**
+ * Recursive delete.
+ *
+ * @param token Credentials token
+ * @param targetUri Uri of the object to delete
+ * @param deleteListener the DeleteListener that will be notified
+ * before and after deleting a resource.
+ * (May be <code>null</code>)
+ * @exception DeleteMacroException Generic Slide exception
+ */
+ void delete(SlideToken token, String targetUri, DeleteListener deleteListener)
+ throws DeleteMacroException;
+
/**
* Delete macro.
@@ -179,6 +192,23 @@
*/
void delete(SlideToken token, String targetUri,
MacroParameters parameters)
+ throws DeleteMacroException;
+
+
+ /**
+ * Delete macro.
+ *
+ * @param token Credentials token
+ * @param targetUri Uri of the source
+ * @param parameters Macro parameters, not used right now,
+ * so it can be null
+ * @param deleteListener the DeleteListener that will be notified
+ * before and after deleting a resource.
+ * (May be <code>null</code>)
+ * @exception DeleteMacroException Generic Slide exception
+ */
+ void delete(SlideToken token, String targetUri,
+ MacroParameters parameters, DeleteListener deleteListener)
throws DeleteMacroException;
}
1.23 +55 -8 jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java
Index: MacroImpl.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- MacroImpl.java 28 Mar 2002 06:23:15 -0000 1.22
+++ MacroImpl.java 3 Apr 2002 12:00:07 -0000 1.23
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v 1.22 2002/03/28 06:23:15 jericho Exp $
- * $Revision: 1.22 $
- * $Date: 2002/03/28 06:23:15 $
+ * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v 1.23 2002/04/03 12:00:07 juergen Exp $
+ * $Revision: 1.23 $
+ * $Date: 2002/04/03 12:00:07 $
*
* ====================================================================
*
@@ -77,7 +77,7 @@
* Macro helper class.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.22 $
+ * @version $Revision: 1.23 $
*/
public final class MacroImpl implements Macro {
@@ -260,7 +260,22 @@
*/
public void delete(SlideToken token, String targetUri)
throws DeleteMacroException {
- delete(token, targetUri, RECURSIVE_OVERWRITE_PARAMETERS);
+ delete(token, targetUri, (DeleteListener)null);
+ }
+
+ /**
+ * Recursive delete.
+ *
+ * @param token Credentials token
+ * @param targetUri Uri of the object to delete
+ * @param deleteListener the DeleteListener that will be notified
+ * before and after deleting a resource.
+ * (May be <code>null</code>)
+ * @exception DeleteMacroException Generic Slide exception
+ */
+ public void delete(SlideToken token, String targetUri, DeleteListener deleteListener)
+ throws DeleteMacroException {
+ delete(token, targetUri, RECURSIVE_OVERWRITE_PARAMETERS, deleteListener);
}
@@ -276,11 +291,30 @@
public void delete(SlideToken token, String targetUri,
MacroParameters parameters)
throws DeleteMacroException {
+ delete(token, targetUri, parameters, null);
+ }
+
+ /**
+ * Delete macro.
+ *
+ * @param token Credentials token
+ * @param targetUri Uri of the source
+ * @param parameters Macro parameters, not used right now,
+ * so it can be null
+ * @param deleteListener the DeleteListener that will be notified
+ * before and after deleting a resource.
+ * (May be <code>null</code>)
+ * @exception DeleteMacroException Generic Slide exception
+ */
+ public void delete(SlideToken token, String targetUri,
+ MacroParameters parameters, DeleteListener deleteListener)
+ throws DeleteMacroException {
+
Domain.debug("Delete " + targetUri);
DeleteMacroException e = new DeleteMacroException("Delete failed");
- deleteObject(token, targetUri, e);
+ deleteObject(token, targetUri, e, deleteListener);
// If there were errors, we throw the nested exception
if (!e.isEmpty()) {
@@ -418,9 +452,12 @@
* @param parameters Macro parameters, not used right now, so it can
* be null
* @param e Nested exception
+ * @param deleteListener the DeleteListener that will be notified
+ * before and after deleting a resource.
+ * (May be <code>null</code>)
*/
private void deleteObject(SlideToken token, String targetUri,
- MacroException e) {
+ MacroException e, DeleteListener deleteListener) {
Domain.debug("Delete object : " + targetUri);
@@ -433,10 +470,15 @@
if (currentObject.hasChildren()) {
Enumeration children = currentObject.enumerateChildren();
while (children.hasMoreElements()) {
- deleteObject(token, (String) children.nextElement(), e);
+ deleteObject(token, (String) children.nextElement(), e, deleteListener);
}
}
+ // notify DeleteListener
+ if (deleteListener != null) {
+ deleteListener.beforeDelete(targetUri);
+ }
+
// Removing all revisions
NodeRevisionDescriptors revisionDescriptors =
contentHelper.retrieve(token, currentObject.getUri());
@@ -472,6 +514,11 @@
// Removing object.
structureHelper.remove(token, currentObject);
+
+ // notify DeleteListener
+ if (deleteListener != null) {
+ deleteListener.afterDelete(targetUri);
+ }
} catch (ObjectHasChildrenException ex) {
// ignore, the object has children because something else failed
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>