blob: f77f80ff8dd73587a5e10a4b92c4268b3e2a6441 [file] [log] [blame]
package org.eclipse.ant.internal.ui;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import java.util.Vector;
/**
* Object which stores the index and the length of the output for a given
* target or task (represented by a string)
*/
public class OutputStructureElement {
private OutputStructureElement parent = null;
private Vector children;
private String name;
private int startIndex = 0;
private int length = 0;
/**
* This constructor is intended to be used only by the first element of the structure (the root element)
*/
public OutputStructureElement(String name) {
// there's at least one target as it is the root which may be instantiated via this constructor
children = new Vector(1);
this.name = name;
}
/**
* This constructor is used for any element but the first element of the structure (the root element)
*/
public OutputStructureElement(String name, OutputStructureElement parent, int startIndex) {
children = new Vector(0);
this.name = name;
this.startIndex = startIndex;
parent.addChild(this);
}
public void addChild(OutputStructureElement child) {
children.add(child);
child.setParent(this);
}
public boolean hasChildren() {
return !children.isEmpty();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setParent(OutputStructureElement parent) {
this.parent = parent;
}
public OutputStructureElement getParent() {
return parent;
}
public OutputStructureElement[] getChildren() {
return (OutputStructureElement[]) children.toArray(new OutputStructureElement[children.size()]);
}
public void setStartIndex(int index) {
startIndex = index;
}
public void setEndIndex(int index) {
length = index - startIndex;
}
public int getStartIndex() {
return startIndex;
}
public int getEndIndex() {
return startIndex + length;
}
public int getLength() {
return length;
}
public String toString() {
return name;
}
}