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

ai.libs.jaicore.planning.hierarchical.problems.ceocstn.OCMethod Maven / Gradle / Ivy

package ai.libs.jaicore.planning.hierarchical.problems.ceocstn;

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;
import ai.libs.jaicore.logic.fol.structure.VariableParam;
import ai.libs.jaicore.planning.hierarchical.problems.stn.Method;
import ai.libs.jaicore.planning.hierarchical.problems.stn.TaskNetwork;

@SuppressWarnings("serial")
public class OCMethod extends Method {

	private final List outputs;

	public OCMethod(final String name, final List parameters, final Literal task, final Monom precondition, final TaskNetwork network, final boolean lonely, final List outputs) {
		super(name, parameters, task, precondition, network, lonely);
		this.outputs = outputs;
	}

	public List getOutputs() {
		return this.outputs;
	}

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

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy