fr.inria.corese.kgram.core.Query.getSelectFun()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(5.7k)|赞(0)|评价(0)|浏览(195)

本文整理了Java中fr.inria.corese.kgram.core.Query.getSelectFun方法的一些代码示例,展示了Query.getSelectFun的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.getSelectFun方法的具体详情如下:
包路径:fr.inria.corese.kgram.core.Query
类名称:Query
方法名:getSelectFun

Query.getSelectFun介绍

暂无

代码示例

代码示例来源:origin: fr.inria.corese/kgram

  1. public boolean isSelectExpression(){
  2. for (Exp e : getSelectFun()) {
  3. if (e.getFilter() != null){
  4. return true;
  5. }
  6. }
  7. return false;
  8. }

代码示例来源:origin: fr.inria.corese/kgram

  1. public int nbFun() {
  2. int nbfun = 0;
  3. for (Exp e : getSelectFun()) {
  4. if (e.getFilter() != null) {
  5. nbfun++;
  6. }
  7. }
  8. return nbfun;
  9. }

代码示例来源:origin: fr.inria.corese/kgram

  1. boolean inSelect(Node qNode) {
  2. for (Exp exp : getSelectFun()) {
  3. Node node = exp.getNode();
  4. if (node == qNode) {
  5. return true;
  6. }
  7. }
  8. return false;
  9. }

代码示例来源:origin: Wimmics/corese

  1. @Deprecated
  2. void profile(Query q){
  3. init(q, q.getSelectFun());
  4. }

代码示例来源:origin: fr.inria.corese/kgram

  1. void setSelect(Query q1, Query q2) {
  2. List<Exp> list = new ArrayList<Exp>();
  3. list.addAll(q1.getSelectFun());
  4. for (Exp exp : q2.getSelectFun()) {
  5. if (!contain(list, exp.getNode())) {
  6. list.add(exp);
  7. }
  8. }
  9. setSelectFun(list);
  10. }

代码示例来源:origin: fr.inria.corese/kgram

  1. public Exp getSelectExp(String label) {
  2. for (Exp exp : getSelectFun()) {
  3. Node node = exp.getNode();
  4. if (node.getLabel().equals(label)) {
  5. return exp;
  6. }
  7. }
  8. return null;
  9. }

代码示例来源:origin: fr.inria.corese/kgram

  1. public Query select(Node node) {
  2. if (node != null && !contain(getSelectFun(), node)) {
  3. addSelect(node);
  4. }
  5. return this;
  6. }

代码示例来源:origin: fr.inria.corese/kgram

  1. /**
  2. * use case: select distinct ?x where add an ACCEPT ?x statement to check
  3. * that ?x is new
  4. */
  5. public void distinct() {
  6. if (testJoin) {
  7. // in case of JOIN() the ACCEPT(?x) cannot be set
  8. // because evaluation occurs in kgram subEval
  9. // where there is no Group to compute accept()
  10. return;
  11. }
  12. if (isDistinct() && getSelectFun().size() == 1) {
  13. Node qNode = getSelectFun().get(0).getNode();
  14. for (Exp exp : this) {
  15. if (exp.distinct(qNode)) {
  16. return;
  17. }
  18. }
  19. }
  20. }

代码示例来源:origin: fr.inria.corese/kgram

  1. public List<Node> getSelectNodeList() {
  2. List<Node> list = new ArrayList<Node>();
  3. for (Exp ee : getQuery().getSelectFun()) {
  4. add(list, ee.getNode());
  5. }
  6. return list;
  7. }

代码示例来源:origin: fr.inria.corese/kgram

  1. public Exp getFunction() {
  2. for (Exp exp : getSelectFun()) {
  3. if (exp.getFilter() != null && exp.getFilter().isFunctional()) {
  4. return exp;
  5. }
  6. }
  7. return null;
  8. }

代码示例来源:origin: fr.inria.corese/kgram

  1. /**
  2. * We just counted number of results: nbResult Just build a Mapping
  3. */
  4. void countProfile() {
  5. Node n = evaluator.cast(nbResult, memory, producer);
  6. Mapping m = Mapping.create(query.getSelectFun().get(0).getNode(), n);
  7. results.add(m);
  8. }

代码示例来源:origin: fr.inria.corese/kgram

  1. /**
  2. * Check that select variables and expressions are compatible with group by
  3. * & aggregates use case:
  4. *
  5. * SELECT ?P (COUNT(?O) AS ?C) WHERE { ?S ?P ?O }
  6. *
  7. * SELECT ((?O1 + ?O2) AS ?O12) (COUNT(?O1) AS ?C) WHERE { ?S :p ?O1; :q ?O2
  8. * } GROUP BY (?S)
  9. *
  10. *
  11. */
  12. public boolean check() {
  13. if (getGroupBy().size() > 0) {
  14. for (Exp exp : getSelectFun()) {
  15. if (!checkGroupBy(exp)) {
  16. return false;
  17. }
  18. }
  19. } else {
  20. return checkAggregate();
  21. }
  22. return true;
  23. }

代码示例来源:origin: fr.inria.corese/compiler

  1. void count(Query q){
  2. if (q.getSelectFun().size() == 1
  3. && q.getGroupBy().isEmpty()
  4. && q.getLimit() == Integer.MAX_VALUE
  5. && ! q.isTemplate()){
  6. Exp exp = q.getSelectFun().get(0);
  7. Filter f = exp.getFilter();
  8. if (f != null
  9. && f.getExp().oper() == ExprType.COUNT
  10. && ! f.getExp().isDistinct()
  11. && f.getExp().getExpList().isEmpty()){
  12. q.setQueryProfile(Query.COUNT_PROFILE);
  13. }
  14. }
  15. }

代码示例来源:origin: fr.inria.corese/kgram

  1. /**
  2. * Select Query is empty and does nothing
  3. */
  4. boolean isEmpty(){
  5. return isSelect()
  6. && getSelectFun().isEmpty()
  7. && getBody().size() == 0
  8. && getValues().getMappings() == null;
  9. }

代码示例来源:origin: Wimmics/corese

  1. void count(Query q){
  2. if (q.getSelectFun().size() == 1
  3. && q.getGroupBy().isEmpty()
  4. && q.getLimit() == Integer.MAX_VALUE
  5. && ! q.isTemplate()){
  6. Exp exp = q.getSelectFun().get(0);
  7. Filter f = exp.getFilter();
  8. if (f != null
  9. && f.getExp().oper() == ExprType.COUNT
  10. && ! f.getExp().isDistinct()
  11. && f.getExp().getExpList().isEmpty()){
  12. q.setQueryProfile(Query.COUNT_PROFILE);
  13. }
  14. }
  15. }

代码示例来源:origin: fr.inria.corese/kgram

  1. /**
  2. * exp.first() is a subquery that implements a BIND() pop the binding at the
  3. * end of group pattern
  4. */
  5. private int pop(Node gNode, Exp exp, Stack stack, int n) {
  6. for (Exp ee : exp.first().getQuery().getSelectFun()) {
  7. Node node = ee.getNode();
  8. memory.pop(node);
  9. break;
  10. }
  11. return eval(gNode, stack, n + 1);
  12. }

代码示例来源:origin: fr.inria.corese/kgram

  1. void initiate(Query q, boolean b, boolean all){
  2. this.query = q;
  3. isDistinct = b;
  4. isListGroup = q.isListGroup();
  5. setSelect(q.getSelect());
  6. if (isDistinct) {
  7. if (all) {
  8. List<Node> list = q.getSelectNodes();
  9. if (list.isEmpty()){
  10. distinct = group(q.getSelectFun());
  11. }
  12. else {
  13. distinct = group(q.toExp(list));
  14. }
  15. }
  16. else {
  17. distinct = group(q.getSelectFun());
  18. }
  19. distinct.setDistinct(true);
  20. distinct.setDuplicate(q.isDistribute());
  21. }
  22. }

代码示例来源:origin: fr.inria.corese/kgram

  1. /**
  2. * additional filter of functional select xpath() as ?val xsd:integer(?val)
  3. * as ?int
  4. */
  5. private Mapping complete(Mapping map, Producer p) {
  6. for (Exp ee : query.getSelectFun()) {
  7. Filter f = ee.getFilter();
  8. if (f != null && !f.isFunctional()) {
  9. memory.push(map, -1);
  10. Node node = evaluator.eval(f, memory, producer);
  11. memory.pop(map);
  12. map.setNode(ee.getNode(), node);
  13. }
  14. }
  15. if (query.getOrderBy().size() > 0 || query.getGroupBy().size() > 0) {
  16. memory.push(map, -1);
  17. Mapping m = memory.store(query, p, true, true);
  18. memory.pop(map);
  19. map = m;
  20. }
  21. return map;
  22. }

代码示例来源:origin: fr.inria.corese/kgram

  1. /**
  2. * Compile additional filters that may contain exists {}.
  3. */
  4. void modifier(Query q) {
  5. compile(q.getSelectFun());
  6. compile(q.getOrderBy());
  7. compile(q.getGroupBy());
  8. if (q.getHaving() != null) {
  9. compile(q.getHaving().getFilter());
  10. }
  11. for (Filter f : q.getFunList()) {
  12. compile(f);
  13. }
  14. }

代码示例来源:origin: fr.inria.corese/kgram

  1. public void setAggregate() {
  2. for (Exp exp : getSelectFun()) {
  3. if (exp.getFilter() != null) {
  4. if (exp.isAggregate() && !exp.isExpGroupBy()) {
  5. setAggregate(true);
  6. } else if (exp.getFilter().isFunctional()) {
  7. setFunctional(true);
  8. getOuterQuery().setHasFunctional(true);
  9. }
  10. }
  11. }
  12. for (Exp exp : getOrderBy()) {
  13. if (exp.getFilter() != null && exp.getFilter().isAggregate()) {
  14. setAggregate(true);
  15. }
  16. }
  17. }

相关文章