[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.modeling.tmf] Re: ISemanticModelTransformer and virtual nodes.

Not quite where are Model and ModelImpl coming from? I am guessing they 
somehow impl EObject interface below.

"Peter Friese" <peter.friese@xxxxxxxxx> wrote in message 
news:h8tsl6$vdv$1@xxxxxxxxxxxxxxxxxxxx
> 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
>