java partialfunction,Java Relation.partialFunction方法代碼示例
import kodkod.ast.Relation; //導入方法依賴的package包/類
/**
* Calls lookup(pred) and returns the cached value, if any.
* If a replacement has not been cached, visits the formula's
* children. If nothing changes, the argument is cached and
* returned, otherwise a replacement formula is cached and returned.
* @return { p: RelationPredicate | p.name = pred.name && p.relation = pred.relation.accept(this) &&
* p.name = FUNCTION => p.targetMult = pred.targetMult &&
* p.domain = pred.domain.accept(this) &&
* p.range = pred.range.accept(this),
* p.name = TOTAL_ORDERING => p.ordered = pred.ordered.accept(this) &&
* p.first = pred.first.accept(this) &&
* p.last = pred.last.accept(this) }
*/
public Formula visit(RelationPredicate pred) {
Formula ret = lookup(pred);
if (ret!=null) return ret;
final Relation r = (Relation)pred.relation().accept(this);
switch(pred.name()) {
case ACYCLIC :
ret = (r==pred.relation()) ? pred : r.acyclic();
break;
case FUNCTION :
final RelationPredicate.Function fp = (RelationPredicate.Function) pred;
final Expression domain = fp.domain().accept(this);
final Expression range = fp.range().accept(this);
ret = (r==fp.relation() && domain==fp.domain() && range==fp.range()) ?
fp :
(fp.targetMult()==Multiplicity.ONE ? r.function(domain, range) : r.partialFunction(domain,range));
break;
case TOTAL_ORDERING :
final RelationPredicate.TotalOrdering tp = (RelationPredicate.TotalOrdering) pred;
final Relation ordered = (Relation) tp.ordered().accept(this);
final Relation first = (Relation)tp.first().accept(this);
final Relation last = (Relation)tp.last().accept(this);
ret = (r==tp.relation() && ordered==tp.ordered() && first==tp.first() && last==tp.last()) ?
tp : r.totalOrder(ordered, first, last);
break;
default :
throw new IllegalArgumentException("unknown relation predicate: " + pred.name());
}
return cache(pred,ret);
}
java partialfunction,Java Relation.partialFunction方法代碼示例相关推荐
- java field setfont_Java JTextField.setFont方法代碼示例
本文整理匯總了Java中javax.swing.JTextField.setFont方法的典型用法代碼示例.如果您正苦於以下問題:Java JTextField.setFont方法的具體用法?Java ...
- java jdbc reparecall_Java Connection.prepareCall方法代碼示例
本文整理匯總了Java中java.sql.Connection.prepareCall方法的典型用法代碼示例.如果您正苦於以下問題:Java Connection.prepareCall方法的具體用法 ...
- java swing rectangle_Java SwingUtilities.convertRectangle方法代碼示例
本文整理匯總了Java中javax.swing.SwingUtilities.convertRectangle方法的典型用法代碼示例.如果您正苦於以下問題:Java SwingUtilities.co ...
- java digests.generatesalt_Java DigestUtils.sha1Hex方法代碼示例
本文整理匯總了Java中org.apache.commons.codec.digest.DigestUtils.sha1Hex方法的典型用法代碼示例.如果您正苦於以下問題:Java DigestUti ...
- java imageio temp_Java ImageIO.setUseCache方法代碼示例
本文整理匯總了Java中javax.imageio.ImageIO.setUseCache方法的典型用法代碼示例.如果您正苦於以下問題:Java ImageIO.setUseCache方法的具體用法? ...
- java json parser_Java JSONParser.parse方法代碼示例
本文整理匯總了Java中org.json.simple.parser.JSONParser.parse方法的典型用法代碼示例.如果您正苦於以下問題:Java JSONParser.parse方法的具體 ...
- java path.resolve_Java Path.resolve方法代碼示例
本文整理匯總了Java中java.nio.file.Path.resolve方法的典型用法代碼示例.如果您正苦於以下問題:Java Path.resolve方法的具體用法?Java Path.reso ...
- java hex decodehex_Java Hex.decodeHex方法代碼示例
本文整理匯總了Java中org.apache.commons.codec.binary.Hex.decodeHex方法的典型用法代碼示例.如果您正苦於以下問題:Java Hex.decodeHex方法 ...
- java entry getvalue_Java Entry.getValue方法代碼示例
本文整理匯總了Java中java.util.Map.Entry.getValue方法的典型用法代碼示例.如果您正苦於以下問題:Java Entry.getValue方法的具體用法?Java Entry ...
- java webclient post_Java WebClient.post方法代碼示例
本文整理匯總了Java中org.apache.cxf.jaxrs.client.WebClient.post方法的典型用法代碼示例.如果您正苦於以下問題:Java WebClient.post方法的具 ...
最新文章
- L1-039. 古风排版
- 《Flask 入门教程》第 6 章:模板优化
- 209. 单点登录(SSO)
- java kafka 集群消费_kafka集群简单生产者消费者实例
- ajax js图片上传到php,Ajax上传并预览图片(附代码)
- [RBA开发系列一] 建立http 请求的process
- js实现IE、谷歌浏览器打印网页内容
- linux高级安全ssh限制利用PAM
- 毕设题目:Matlab机器人路径规划
- 关于protel 99se 汉化后某些菜单消失的解决方法
- 23种设计模式-多例模式《柒个我》
- 行流 - 通用;仅使用库存接口开单 and 行流 - 通用;
- 【CO2二氧化碳传感器】senseair S8 LP
- 服务器tomcat成功运行但是无法在外网访问的解决办法
- 1174:大整数乘法
- Ubuntu16.04成功解决InvalidSpecError: Invalid spec: =2.7!!!
- 假如生活欺骗了你……
- Wordpress使用CloudFlare的CDN来加速网站(页面规则缓存设置教程
- 经济——读《论21世纪的资本》有感
- jama包及求解二元一次方程组
热门文章
- Build-Docker-Image-from-Zero: 从零构建Docker镜像
- Linux Zero-copy零拷贝技术:源码示例
- SeismicUnix:cwpcmaps.c
- 如何用git将本地项目push到GitHub上?
- VUe3 @cli(axios)跨域访问
- 糖尿病监测中国际通用的“金标准”
- 保留小数点后三位_三年后想买车?Excel理财小助手pmt函数帮你算
- linux mysql 编码修改吗_Linux下mysql 修改编码
- ansys里面自带chemkin_ANSYS CHEMKINPRO复杂化学反应快速仿真
- mysql 事务中锁处理_MySQL事务处理及锁定_MySQL