package com.liferay.ide.velocity.vaulttec.ui.model; import java.util.Iterator; import java.util.Vector; /** * DOCUMENT ME! * * @version $Revision: 7 $ * @author <a href="mailto:akmal.sarhan@gmail.com">Akmal Sarhan </a> */ public class Template extends AbstractTreeNode implements IBlock { private String fName; private Vector fDirectives = new Vector(); public Template(String aName) { super(null, -1, -1); fName = aName; } /** * @see com.liferay.ide.velocity.vaulttec.ui.model.IBlock#addDirective(com.liferay.ide.velocity.vaulttec.ui.model.Directive) */ public void addDirective(Directive aDirective) { fDirectives.add(aDirective); } /** * @see com.liferay.ide.velocity.vaulttec.ui.model.ITreeNode#getName() */ public String getName() { return fName; } /** * @see com.liferay.ide.velocity.vaulttec.ui.model.ITreeNode#hasChildren() */ public boolean hasChildren() { return !fDirectives.isEmpty(); } /** * @see com.liferay.ide.velocity.vaulttec.ui.model.ITreeNode#getChildren() */ public Object[] getChildren() { return fDirectives.toArray(); } /** * @see com.liferay.ide.velocity.vaulttec.ui.model.ITreeNode#accept(com.liferay.ide.velocity.vaulttec.ui.model.ITreeVisitor) */ public boolean accept(ITreeVisitor aVisitor) { boolean more = true; // Visit all directives of this template Iterator iter = fDirectives.iterator(); while (more && iter.hasNext()) { more = ((ITreeNode) iter.next()).accept(aVisitor); } // Finally visit this template if (more) { more = aVisitor.visit(this); } return more; } /** * @see com.googlecode.veloeclipse.vaulttec.ui.model.ITreeNodeInfo#getUniqueID() */ public String getUniqueID() { return getName(); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public String toString() { return getUniqueID() + " [" + getStartLine() + ":" + getEndLine() + "] with directive(s) " + fDirectives; } }