blob: 5555162a1a2019a0a54ef50b497be4f1350806a3 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.internal.codegen;
import java.util.*;
/**
* INTERNAL:
*/
public class HierarchyNode {
// the class that this node represents
public String className;
public HierarchyNode parent;
public List<HierarchyNode> children;
/**
* This member will hold the different definition types that should be implemented by the code generated children
* Used mostly in CMP code generation
*/
public List<?> definitions;
public HierarchyNode(String className) {
this.className = className;
this.children = new ArrayList<>();
this.definitions = new ArrayList<>();
}
public void setParent(HierarchyNode parent) {
this.parent = parent;
this.parent.addChild(this);
}
public void addChild(HierarchyNode child) {
if (!this.children.contains(child)) {
this.children.add(child);
}
}
public List<HierarchyNode> getChildren() {
return this.children;
}
public HierarchyNode getParent() {
return this.parent;
}
public String getClassName() {
return this.className;
}
@Override
public String toString() {
return "HierarchyNode:\n\t" + className + "\n" + children + "\n end HierarchyNode\n";
}
}