本文整理汇总了Java中kodkod.ast.visitor.VoidVisitor类的典型用法代码示例。如果您正苦于以下问题:Java VoidVisitor类的具体用法?Java VoidVisitor怎么用?Java VoidVisitor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
VoidVisitor类属于kodkod.ast.visitor包,在下文中一共展示了VoidVisitor类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: minRoots
import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
* Returns a minimal subset of {@linkplain #roots(Formula) roots} of the
* given formula such that all nodes in the given collection are reachable
* from those roots. The returned subset is a local minimum in that none of
* its members can be removed without leaving some node in the descendants
* set unreachable from the remaining roots.
*
* @requires descendants in formula.*components
* @return { s: Set<Formula> | s.elements in roots(formula) and descendants
* in s.elements.*components and no s': Set<Formula> |
* s.containsAll(s') and s'.size()<s.size() and descendants in
* s.elements.*components }
* @throws IllegalArgumentException descendants !in formula.*components
*/
public static Set<Formula> minRoots(Formula formula, Collection< ? extends Node> descendants) {
final Set<Node> desc = new IdentityHashSet<Node>(descendants);
final VoidVisitor visitor = new AbstractVoidVisitor() {
final Set<Node> visited = new IdentityHashSet<Node>();
@Override
protected boolean visited(Node n) {
if (visited.add(n)) {
desc.remove(n);
return false;
}
return true;
}
};
final Set<Formula> roots = new LinkedHashSet<Formula>();
for (Formula root : roots(formula)) {
final int size = desc.size();
root.accept(visitor);
if (desc.size() < size) {
roots.add(root);
}
if (desc.isEmpty()) {
break;
}
}
if (!desc.isEmpty())
throw new IllegalArgumentException(
"descendants !in formula.*components: formula=" + formula + " ; descendants=" + descendants);
return roots;
}
示例2: minRoots
import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
* Returns a minimal subset of {@linkplain #roots(Formula) roots} of the given formula such that all nodes in the given collection
* are reachable from those roots. The returned subset is a local minimum in that none of its members can be removed without leaving
* some node in the descendants set unreachable from the remaining roots.
* @requires descendants in formula.*components
* @return { s: Set<Formula> | s.elements in roots(formula) and descendants in s.elements.*components and
* no s': Set<Formula> | s.containsAll(s') and s'.size()<s.size() and descendants in s.elements.*components }
* @throws IllegalArgumentException - descendants !in formula.*components
*/
public static Set<Formula> minRoots(Formula formula, Collection<? extends Node> descendants) {
final Set<Node> desc = new IdentityHashSet<Node>(descendants);
final VoidVisitor visitor = new AbstractVoidVisitor() {
final Set<Node> visited = new IdentityHashSet<Node>();
@Override
protected boolean visited(Node n) {
if (visited.add(n)) {
desc.remove(n);
return false;
}
return true;
}
};
final Set<Formula> roots = new LinkedHashSet<Formula>();
for(Formula root : roots(formula)) {
final int size = desc.size();
root.accept(visitor);
if (desc.size()<size) { roots.add(root); }
if (desc.isEmpty()) { break; }
}
if (!desc.isEmpty())
throw new IllegalArgumentException("descendants !in formula.*components: formula="+formula+" ; descendants="+descendants);
return roots;
}
示例3: minRoots
import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
* Returns a minimal subset of {@linkplain #roots(Formula) roots} of the given formula such that all nodes in the given collection
* are reachable from those roots. The returned subset is a local minimum in that none of its members can be removed without leaving
* some node in the descendants set unreachable from the remaining roots.
* @requires descendants in formula.*components
* @return { s: Set<Formula> | s.elements in roots(formula) and descendants in s.elements.*components and
* no s': Set<Formula> | s.containsAll(s') and s'.size()<s.size() and descendants in s.elements.*components }
* @throws IllegalArgumentException descendants !in formula.*components
*/
public static Set<Formula> minRoots(Formula formula, Collection<? extends Node> descendants) {
final Set<Node> desc = new IdentityHashSet<Node>(descendants);
final VoidVisitor visitor = new AbstractVoidVisitor() {
final Set<Node> visited = new IdentityHashSet<Node>();
@Override
protected boolean visited(Node n) {
if (visited.add(n)) {
desc.remove(n);
return false;
}
return true;
}
};
final Set<Formula> roots = new LinkedHashSet<Formula>();
for(Formula root : roots(formula)) {
final int size = desc.size();
root.accept(visitor);
if (desc.size()<size) { roots.add(root); }
if (desc.isEmpty()) { break; }
}
if (!desc.isEmpty())
throw new IllegalArgumentException("descendants !in formula.*components: formula="+formula+" ; descendants="+descendants);
return roots;
}
示例4: accept
import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
@Override
public void accept(VoidVisitor visitor) {
visitor.visit(this);
}
示例5: accept
import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
* {@inheritDoc}
* @see kodkod.ast.IntExpression#accept(kodkod.ast.visitor.VoidVisitor)
*/
@Override
public void accept(VoidVisitor visitor) {
visitor.visit(this);
}
示例6: accept
import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
* {@inheritDoc}
* @see kodkod.ast.Node#accept(kodkod.ast.visitor.VoidVisitor)
*/
@Override
public void accept(VoidVisitor visitor) {
visitor.visit(this);
}
示例7: accept
import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
* {@inheritDoc}
* @see kodkod.ast.Node#accept(kodkod.ast.visitor.VoidVisitor)
*/
@Override
public void accept(VoidVisitor visitor) {
visitor.visit(this);
}
示例8: accept
import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
* {@inheritDoc}
*
* @see kodkod.ast.Node#accept(kodkod.ast.visitor.VoidVisitor)
*/
public void accept(VoidVisitor visitor) {
visitor.visit(this);
}