All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ai.libs.jaicore.planning.hierarchical.algorithms.forwarddecomposition.graphgenerators.rtn.RTNNode Maven / Gradle / Ivy

package ai.libs.jaicore.planning.hierarchical.algorithms.forwarddecomposition.graphgenerators.rtn;

import java.util.List;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import ai.libs.jaicore.logic.fol.structure.Literal;
import ai.libs.jaicore.logic.fol.structure.Monom;

public class RTNNode {

	private static int counter = 0;
	private final int id = counter ++;

	private final boolean andNode;
	private Monom state;
	private List remainingTasks;

	public RTNNode(final boolean andNode, final Monom state, final List remainingTasks) {
		super();
		this.andNode = andNode;
		this.state = state;
		this.remainingTasks = remainingTasks;
	}

	public Monom getState() {
		return this.state;
	}

	public void setState(final Monom state) {
		this.state = state;
	}

	public List getRemainingTasks() {
		return this.remainingTasks;
	}

	public void setRemainingTasks(final List remainingTasks) {
		this.remainingTasks = remainingTasks;
	}

	public boolean isAndNode() {
		return this.andNode;
	}

	@Override
	public int hashCode() {
		return new HashCodeBuilder().append(this.state).append(this.remainingTasks).toHashCode();
	}

	@Override
	public boolean equals(final Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (!(obj instanceof RTNNode)) {
			return false;
		}
		RTNNode other = (RTNNode) obj;
		return new EqualsBuilder().append(other.state, this.state).append(other.remainingTasks, this.remainingTasks).isEquals();

	}

	@Override
	public String toString() {
		return "RTNNode [id=" + this.id + ", state=" + this.state + ", remainingTasks=" + this.remainingTasks + "]";
	}

	public int getId() {
		return this.id;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy