[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.modeling.tmf] Re: ISemanticModelTransformer and virtual nodes.
|
Drew,
you need to provide getChildren() methods for each parent node for which you want to control the child nodes.
Try this:
protected List<EObject> getChildren(Model model) {
List<EObject> result = new ArrayList<EObject>();
VirtualNodeApples apples = new VirtualNodeApples(model);
VirtualNodeOranges oranges = new VirtualNodeOranges(model);
result.add(apples);
result.add(oranges);
return result;
}
protected List<EObject> getChildren(VirtualNodeApples apples) {
List<EObject> result = new ArrayList<EObject>();
EList<Fruit> fruits = apples.getFruits();
for (Fruit fruit : fruits) {
if (fruit instanceof Apple) {
result.add(fruit);
}
}
return result;
}
The VirtualNodeApples and VirtualNodeOranges classes actually are wrappers for the model root class:
public class VirtualNodeApplesOrOranges extends ModelImpl implements Model {
private final Model model;
public VirtualNodeApplesOrOranges(Model model) {
this.model = model;
}
public EList<Adapter> eAdapters() {
return model.eAdapters();
}
..
}
public class VirtualNodeApples extends VirtualNodeApplesOrOranges {
public VirtualNodeEntity(Model model) {
super(model);
}
}
Hope this helps,
Peter