blob: 481671da597263e2b17f5234ccc6e6ae7d7e2835 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.oodt.pcs.pedigree;
//OODT imports
import org.apache.oodt.cas.filemgr.structs.Product;
//JDK imports
import java.util.List;
import java.util.Vector;
/**
*
* A node in the {@link PedigreeTree}.
*
* @author mattmann
* @version $Revision$
*/
public class PedigreeTreeNode {
private Product prod;
private List children;
private PedigreeTreeNode parent;
public PedigreeTreeNode(PedigreeTreeNode parent) {
this(parent, null);
}
public PedigreeTreeNode(PedigreeTreeNode parent, Product prod) {
this(parent, new Vector(), prod);
}
public PedigreeTreeNode(PedigreeTreeNode parent, List children, Product prod) {
this.parent = parent;
if (this.parent != null) {
this.parent.addChild(this);
}
this.children = children;
this.prod = prod;
}
public void setParent(PedigreeTreeNode parent) {
this.parent = parent;
}
public void addChild(PedigreeTreeNode child) {
this.children.add(child);
}
public int getNumChildren() {
if (this.children == null)
return 0;
return this.children.size();
}
public PedigreeTreeNode getChildAt(int idx) {
return (PedigreeTreeNode) this.children.get(idx);
}
public Product getNodeProduct() {
return this.prod;
}
public void setNodeProduct(Product prod) {
this.prod = prod;
}
public static PedigreeTreeNode getPedigreeTreeNodeFromProduct(Product p,
PedigreeTreeNode parent) {
PedigreeTreeNode node = new PedigreeTreeNode(parent);
node.setNodeProduct(p);
return node;
}
}