diff options
| author | slewis | 2005-07-03 05:08:22 +0000 |
|---|---|---|
| committer | slewis | 2005-07-03 05:08:22 +0000 |
| commit | 485d4ffabe0ca9c5bca504a19b383180918ba291 (patch) | |
| tree | 7543f19f4b62994b2088d6484cacd5e04cc0f79f | |
| parent | 4fa241969774f5e41bde041035ea1afcfc2cafdb (diff) | |
| download | org.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
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; + } + +} |
