Skip to main content



      Home
Home » Modeling » EMF » Composing Switches
Composing Switches [message #479291] Mon, 10 August 2009 11:08 Go to previous message
Eclipse UserFriend
Good day EMF NG,

A quick suggestion: wouldn't it be useful for the EMF-generated switch
classes to be more readily composable? Something like:

public interface org.eclipse.emf.ecore.util.Switch<T> {
EPackage getEPackage();
<T> doSwitch(EObject theEObject);
}

public class XxxSwitch<T> implements Switch<T> {
// Note: XxxSwitchImpl.getEPackage() { return XxxPackage.eINSTANCE; }
...
}

public class YyySwitch<T> implements Switch<T> {
// Note: YyySwitchImpl.getEPackage() { return YyyPackage.eINSTANCE; }
...
}

/**
* Example implementation; others possible.
*/
public class ComposedSwitch<T> implements Switch<T> {
private final Map<EPackage, Switch<T>> delegates = new HashMap<EPackage,
Switch<T>>();

public ComposedSwitch<T>(Switch<T>... delegates) {
for (Switch<T> delegate : delegates)
this.delegates.put(delegate.getEPackage(), delegate);
}

public T doSwitch(EObject theEObject) {
return
delegates.get(theEObject.eClass().getEPackage()).doSwitch(th eEObject);
}
}

Thanks,

Adrian Price
Senior Architect | TIBCO Software, Inc.
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic:Load / Reference Resource programmatically
Next Topic:ecore and Compartments
Goto Forum:
  


Current Time: Mon Jul 21 18:29:38 EDT 2025

Powered by FUDForum. Page generated in 0.03524 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top