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

org.joo.libra.sql.node.OrExpressionNode Maven / Gradle / Ivy

package org.joo.libra.sql.node;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.joo.libra.Predicate;
import org.joo.libra.logic.OrPredicate;

public class OrExpressionNode extends InfixExpressionNode {

	@Override
	public Predicate buildPredicate() {
		List predicates = compactExpressionPath();
		return new OrPredicate(predicates.toArray(new Predicate[0]));
	}

	private List compactExpressionPath() {
		List predicates = new ArrayList<>();
		Predicate leftPredicate = getLeft().buildPredicate();
		if (leftPredicate instanceof OrPredicate) {
			predicates.addAll(Arrays.asList(((OrPredicate) leftPredicate).getPredicates()));
		} else {
			predicates.add(leftPredicate);
		}
		Predicate rightPredicate = getRight().buildPredicate();
		if (rightPredicate instanceof OrPredicate) {
			predicates.addAll(Arrays.asList(((OrPredicate) rightPredicate).getPredicates()));
		} else {
			predicates.add(rightPredicate);
		}
		return predicates;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy