Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » Composing Switches
Composing Switches [message #479291] Mon, 10 August 2009 15:08 Go to previous message
Adrian Price is currently offline Adrian PriceFriend
Messages: 61
Registered: July 2009
Member
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: Wed Sep 25 13:19:55 GMT 2024

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

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

Back to the top