| package org.eclipse.dltk.itcl.internal.core.parser.ast; |
| |
| import java.util.ArrayList; |
| import java.util.Iterator; |
| import java.util.List; |
| |
| import org.eclipse.dltk.ast.ASTVisitor; |
| import org.eclipse.dltk.ast.declarations.Declaration; |
| |
| /** |
| * |
| * ensemble ensName ?command arg arg...? or ensemble ensName { |
| * |
| * part partName args body |
| * |
| * ... |
| * |
| * ensemble partName { |
| * |
| * part subPartName args body |
| * |
| * part subPartName args body |
| * |
| * ... } } |
| * |
| */ |
| public class IncrTclEnsemble extends Declaration { |
| private List<IncrTclEnsemble> ensembles; |
| private List<IncrTclEnsemblePart> parts; |
| |
| public IncrTclEnsemble(int start, int end) { |
| super(start, end); |
| } |
| |
| @Override |
| public void traverse(ASTVisitor visitor) throws Exception { |
| if (visitor.visit(this)) { |
| if (this.ensembles != null) { |
| Iterator<IncrTclEnsemble> it = this.ensembles.iterator(); |
| while (it.hasNext()) { |
| IncrTclEnsemble arg = it.next(); |
| arg.traverse(visitor); |
| } |
| } |
| if (this.parts != null) { |
| Iterator<IncrTclEnsemblePart> it = this.parts.iterator(); |
| while (it.hasNext()) { |
| IncrTclEnsemblePart arg = it.next(); |
| arg.traverse(visitor); |
| } |
| } |
| visitor.endvisit(this); |
| } |
| } |
| |
| public void addEnsamble(IncrTclEnsemble part) { |
| initialize(); |
| this.ensembles.add(part); |
| } |
| |
| private void initialize() { |
| if (this.ensembles == null) { |
| this.ensembles = new ArrayList<>(); |
| } |
| if (this.parts == null) { |
| this.parts = new ArrayList<>(); |
| } |
| } |
| |
| public List<IncrTclEnsemble> getEnsembles() { |
| initialize(); |
| return ensembles; |
| } |
| |
| public void setEnsembles(List<IncrTclEnsemble> ensembles) { |
| this.ensembles = ensembles; |
| initialize(); |
| } |
| |
| public List<IncrTclEnsemblePart> getParts() { |
| initialize(); |
| return parts; |
| } |
| |
| public void setParts(List<IncrTclEnsemblePart> parts) { |
| this.parts = parts; |
| initialize(); |
| } |
| |
| public void addPart(IncrTclEnsemblePart part) { |
| initialize(); |
| this.parts.add(part); |
| } |
| } |