aboutsummaryrefslogtreecommitdiffstats
path: root/store/src/main/java/org/eclipse/viatra/solver/data/query/building/DNFAtom.java
blob: 05a3e3f83938636b1c0c6b20340e1a63378b8517 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package org.eclipse.viatra.solver.data.query.building;

import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public interface DNFAtom {
	void unifyVariables(Map<String,Variable> variables);
	static Variable unifyVariables(Map<String,Variable> unifiedVariables, Variable variable) {
		if(variable != null) {
			if(variable.isNamed() && unifiedVariables.containsKey(variable.getName())) {
				return unifiedVariables.get(variable.getName());
			}
			return variable;
		} else {
			return null;
		}
	}
	void collectAllVariables(Set<Variable> variables);
	static void addToCollection(Set<Variable> variables, Variable variable) {
		if(variable != null) {
			variables.add(variable);
		}
	}
	static void addToCollection(Set<Variable> variables, Collection<Variable> variableCollection) {
		Iterator<Variable> iterator = variableCollection.iterator();
		while(iterator.hasNext()) {
			Variable variable = iterator.next();
			addToCollection(variables, variable);
		}
	}
}