Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-07-03 05:08:22 +0000
committerslewis2005-07-03 05:08:22 +0000
commit485d4ffabe0ca9c5bca504a19b383180918ba291 (patch)
tree7543f19f4b62994b2088d6484cacd5e04cc0f79f
parent4fa241969774f5e41bde041035ea1afcfc2cafdb (diff)
downloadorg.eclipse.ecf-485d4ffabe0ca9c5bca504a19b383180918ba291.tar.gz
org.eclipse.ecf-485d4ffabe0ca9c5bca504a19b383180918ba291.tar.xz
org.eclipse.ecf-485d4ffabe0ca9c5bca504a19b383180918ba291.zip
Added ReplicateSharedObjectTransaction and built addProcessor/removeProcessor and fireEventProcessor methods into BaseSharedObject
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java33
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/ReplicateSharedObjectTransaction.java44
2 files changed, 76 insertions, 1 deletions
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java
index 5a17a7f83..7f9092c71 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/BaseSharedObject.java
@@ -11,7 +11,10 @@
package org.eclipse.ecf.provider.generic.sobject;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
+import java.util.Vector;
import org.eclipse.ecf.core.IIdentifiable;
import org.eclipse.ecf.core.ISharedObject;
@@ -20,6 +23,7 @@ import org.eclipse.ecf.core.ISharedObjectContext;
import org.eclipse.ecf.core.SharedObjectInitException;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.util.Event;
+import org.eclipse.ecf.core.util.IEventProcessor;
import org.eclipse.ecf.provider.Trace;
/**
@@ -31,6 +35,7 @@ public class BaseSharedObject implements ISharedObject, IIdentifiable {
Trace trace = Trace.create("basesharedobject");
ISharedObjectConfig config = null;
+ List eventProcessors = new Vector();
protected void trace(String msg) {
if (Trace.ON && trace != null) {
@@ -42,6 +47,32 @@ public class BaseSharedObject implements ISharedObject, IIdentifiable {
trace.dumpStack(t,msg);
}
}
+ protected void addProcessor(IEventProcessor proc) {
+ eventProcessors.add(proc);
+ }
+ protected boolean removeProcessor(IEventProcessor proc) {
+ return eventProcessors.remove(proc);
+ }
+ protected void fireEventProcessors(Event event) {
+ if (event == null) return;
+ Event evt = event;
+ trace("fireEventProcessors("+event+")");
+ if (eventProcessors.size()==0) {
+ handleUnhandledEvent(event);
+ return;
+ }
+ for(Iterator i=eventProcessors.iterator(); i.hasNext(); ) {
+ IEventProcessor ep = (IEventProcessor) i.next();
+ if (ep != null) {
+ if (evt != null) {
+ if (ep.acceptEvent(evt)) {
+ trace(getID()+":eventProcessor="+ep+":event="+evt);
+ evt = ep.processEvent(evt);
+ }
+ }
+ }
+ }
+ }
/* (non-Javadoc)
* @see org.eclipse.ecf.core.ISharedObject#init(org.eclipse.ecf.core.ISharedObjectConfig)
*/
@@ -75,7 +106,7 @@ public class BaseSharedObject implements ISharedObject, IIdentifiable {
* @see org.eclipse.ecf.core.ISharedObject#handleEvent(org.eclipse.ecf.core.util.Event)
*/
public void handleEvent(Event event) {
- handleUnhandledEvent(event);
+ fireEventProcessors(event);
}
protected void handleUnhandledEvent(Event event) {
trace("Unhandled event:"+event);
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/ReplicateSharedObjectTransaction.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/ReplicateSharedObjectTransaction.java
new file mode 100644
index 000000000..bccd52ac8
--- /dev/null
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/sobject/ReplicateSharedObjectTransaction.java
@@ -0,0 +1,44 @@
+/****************************************************************************
+* Copyright (c) 2004 Composent, Inc. and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Composent, Inc. - initial API and implementation
+*****************************************************************************/
+package org.eclipse.ecf.provider.generic.sobject;
+
+import org.eclipse.ecf.core.ISharedObjectContainerTransaction;
+import org.eclipse.ecf.core.SharedObjectAddAbortException;
+
+/**
+ * @author slewis
+ *
+ */
+public class ReplicateSharedObjectTransaction implements
+ ISharedObjectContainerTransaction {
+
+ BaseSharedObject sharedObject = null;
+
+ public ReplicateSharedObjectTransaction(BaseSharedObject so) {
+ sharedObject = so;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.core.ISharedObjectContainerTransaction#waitToCommit()
+ */
+ public void waitToCommit() throws SharedObjectAddAbortException {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.core.ISharedObjectContainerTransaction#getTransactionState()
+ */
+ public byte getTransactionState() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+}

Back to the top