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

com.sri.ai.grinder.helper.UniquelyNamedConstantIncludingBooleansAndNumbersPredicate Maven / Gradle / Ivy

Go to download

SRI International's AIC Symbolic Manipulation and Evaluation Library (for Java 1.8+)

The newest version!
package com.sri.ai.grinder.helper;

import java.io.Serializable;
import java.util.Set;

import com.google.common.base.Predicate;
import com.sri.ai.grinder.api.Registry;
import com.sri.ai.expresso.api.Expression;
import com.sri.ai.expresso.helper.Expressions;

/**
 * A predicate based on a set of given uniquely named constants (symbols) that also
 * implicitly include numbers and boolean constants as uniquely named constants.
 * 
 * This predicate is useful for providing a predicate to {@link Registry#setIsUniquelyNamedConstantPredicate(Predicate)}
 * for registries and contexts if we want to select a specific set of symbols as uniquely named constants.
 * 
 * @author braz
 *
 */
public class UniquelyNamedConstantIncludingBooleansAndNumbersPredicate implements Predicate, Serializable {
	private static final long serialVersionUID = 1L;
	
	private Set uniquelyNamedConstants;
	
	public UniquelyNamedConstantIncludingBooleansAndNumbersPredicate(Set uniquelyNamedConstants) {
		this.uniquelyNamedConstants = uniquelyNamedConstants;
	}
	
	@Override
	public boolean apply(Expression e) {
		boolean result = uniquelyNamedConstants.contains(e) || Expressions.isNumber(e) || Expressions.isBooleanSymbol(e);
		return result;
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy