org.teiid.language.Array类的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(11.0k)|赞(0)|评价(0)|浏览(152)

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

Array介绍

暂无

代码示例

代码示例来源:origin: teiid/teiid

@Override
public void visit(Array array) {
  buffer.append(Tokens.LPAREN);
  append(array.getExpressions());
  if (array.getExpressions().size() == 1) {
    buffer.append(Tokens.COMMA);
  }
  buffer.append(Tokens.RPAREN);
}

代码示例来源:origin: org.teiid.connectors/translator-mongodb

@Override
  public List<?> translate(Function function) {
    List<Expression> args = function.getParameters();
    Expression north = args.get(1);
    Expression east = args.get(2);
    Expression west = args.get(3);
    Expression south = args.get(4);
    
    ArrayList<Expression> points = new ArrayList<Expression>();
    points.add(new org.teiid.language.Array(TypeFacility.RUNTIME_TYPES.DOUBLE, Arrays.asList(west, north)));
    points.add(new org.teiid.language.Array(TypeFacility.RUNTIME_TYPES.DOUBLE, Arrays.asList(east, north)));
    points.add(new org.teiid.language.Array(TypeFacility.RUNTIME_TYPES.DOUBLE, Arrays.asList(east, south)));
    points.add(new org.teiid.language.Array(TypeFacility.RUNTIME_TYPES.DOUBLE, Arrays.asList(west, south)));
    points.add(new org.teiid.language.Array(TypeFacility.RUNTIME_TYPES.DOUBLE, Arrays.asList(west, north)));
    
    Expression coordinates = new org.teiid.language.Array(TypeFacility.RUNTIME_TYPES.DOUBLE,  points);			
    
    Function func = LanguageFactory.INSTANCE.createFunction(this.functionName,
        Arrays.asList(args.get(0), 
            LanguageFactory.INSTANCE.createLiteral("Polygon", TypeFacility.RUNTIME_TYPES.STRING), //$NON-NLS-1$
            coordinates
        ),
        Boolean.class);
    return Arrays.asList(func);  
  }
}

代码示例来源:origin: org.teiid.connectors/translator-jdbc

@Override
public void visit(Array array) {
  boolean allLiterals = true;
  Class<?> baseType = array.getBaseType();
  //the pg driver expects only values that are convertible to string
  //we could introduce some conversions, but for now we'll just fail
  //some cases- there's also potential issue with date time as this logic
  //won't consider the database timezone setting
  if (!baseType.isArray() && 
      postgreSQLExecutionFactory.convertModifier.getSimpleTypeMapping(ConvertModifier.getCode(baseType)) != null) {
    for (Expression ex : array.getExpressions()) {
      if (!(ex instanceof Literal)) {
        allLiterals = false;
        break;
      }
    }
    if (allLiterals) {
      //TODO: this could be pushed to the language bridge factory
      //to just push a literal array
      addBinding(new Literal(array, array.getType()));
      return;
    }
  }
  //mixed or lob case
  //TODO: if this is used in the context specifically of an array, rather than
  //a row value, then this will fail
  super.visit(array);
}

代码示例来源:origin: org.teiid.connectors/translator-jdbc

@Override
public void bindValue(PreparedStatement stmt, Object param,
    Class<?> paramType, int i) throws SQLException {
  if (param == null && (paramType == TypeFacility.RUNTIME_TYPES.BLOB 
      || paramType == TypeFacility.RUNTIME_TYPES.GEOMETRY 
      || paramType == TypeFacility.RUNTIME_TYPES.GEOGRAPHY)) {
    //the blob sql type causes a failure with nulls
    paramType = TypeFacility.RUNTIME_TYPES.VARBINARY;
  } else if (param instanceof Array) {
    //pg allows for the direct binding of certain arrays
    Array array = (Array)param;
    Connection c = stmt.getConnection();
    int code = ConvertModifier.getCode(array.getBaseType());
    String nativeType = convertModifier.getSimpleTypeMapping(code);
    int index = nativeType.indexOf('(');
    if (index > 0) {
      nativeType = nativeType.substring(0, index);
    }
    Object[] values = new Object[array.getExpressions().size()];
    for (int j = 0; j < values.length; j++) {
      Expression ex = array.getExpressions().get(j); 
      values[j] = ((Literal)ex).getValue();
    }
    java.sql.Array value = c.createArrayOf(nativeType, values);
    stmt.setArray(i, value);
    return;
  }
  super.bindValue(stmt, param, paramType, i);
}

代码示例来源:origin: teiid/teiid

@Test
public void testGetBaseType() throws Exception {
   Array array = example(null, "a"); //$NON-NLS-1$
   assertEquals(String.class, array.getBaseType());
}

代码示例来源:origin: teiid/teiid

@Override
public void visit(Array array) {
  visitNodes(array.getExpressions());
}

代码示例来源:origin: teiid/teiid

org.teiid.language.Array translate(Array array) {
  return new org.teiid.language.Array(array.getComponentType(), translateExpressionList(array.getExpressions()));
}

代码示例来源:origin: org.teiid.connectors/translator-simpledb

@Override
public void visit(Array array) {
  List<Expression> exprs = array.getExpressions();
  append(exprs.get(0));
  for (int i = 1; i < exprs.size(); i++) {
    buffer.append(Tokens.SPACE).append(AndOr.Operator.OR).append(Tokens.SPACE);
    buffer.append(SimpleDBMetadataProcessor.getQuotedName(this.previousColumn));
    buffer.append(Tokens.SPACE).append(Tokens.EQ).append(Tokens.SPACE);
    append(exprs.get(i));
  }        
}

代码示例来源:origin: org.jboss.teiid/teiid-engine

org.teiid.language.Array translate(Array array) {
  return new org.teiid.language.Array(array.getComponentType(), translateExpressionList(array.getExpressions()));
}

代码示例来源:origin: org.teiid.connectors/translator-mongodb

@Override
public void visit(Array array) {
  append(array.getExpressions());
  BasicDBList values = new BasicDBList();
  for (int i = 0; i < array.getExpressions().size(); i++) {
    values.add(0, this.onGoingExpression.pop());
  }
  this.onGoingExpression.push(values);
}

代码示例来源:origin: org.teiid/teiid-engine

org.teiid.language.Array translate(Array array) {
  return new org.teiid.language.Array(array.getComponentType(), translateExpressionList(array.getExpressions()));
}

代码示例来源:origin: org.teiid.connectors/translator-simpledb

static String[] getValuesArray(Array array) throws TranslatorException {
    String[] result = new String[array.getExpressions().size()];
    for (int j = 0; j < array.getExpressions().size(); j++) {
      Expression expr = array.getExpressions().get(j);
      if (expr instanceof Literal){
        Literal lit = (Literal) expr;
        result[j] = (String)SimpleDBDataTypeManager.convertToSimpleDBType(lit.getValue(), lit.getType());
      }
      else {
        new TranslatorException(SimpleDBPlugin.Event.TEIID24001, SimpleDBPlugin.Util.gs(SimpleDBPlugin.Event.TEIID24001));                        
      }
    }
    return result;
  }
}

代码示例来源:origin: teiid/teiid

org.teiid.language.Comparison translate(DependentSetCriteria criteria) {
  Operator operator = Operator.EQ;
  org.teiid.language.Expression arg = null;
  final TupleBuffer tb = criteria.getDependentValueSource().getTupleBuffer();
  if (criteria.getValueExpression() instanceof Array) {
    Array array = (Array)criteria.getValueExpression();
    List<org.teiid.language.Expression> params = new ArrayList<org.teiid.language.Expression>();
    Class<?> baseType = null;
    for (Expression ex : array.getExpressions()) {
      if (baseType == null) {
        baseType = ex.getType();
      } else if (!baseType.equals(ex.getType())) {
        baseType = DataTypeManager.DefaultDataClasses.OBJECT;
      }
      params.add(createParameter(criteria, tb, ex));
    }
    arg = new org.teiid.language.Array(baseType, params);
  } else {
    Expression ex = criteria.getValueExpression();
    arg = createParameter(criteria, tb, ex);
  }
  if (this.dependentSets == null) {
    this.dependentSets = new HashMap<String, List<? extends List<?>>>();
  }
  this.dependentSets.put(criteria.getContextSymbol(), new TupleBufferList(tb));
  Comparison result = new org.teiid.language.Comparison(translate(criteria.getExpression()),
                  arg, operator);
  return result;
}

代码示例来源:origin: org.teiid.connectors/translator-swagger

private void addArgumentValue(String argName, Array value, String collectionFormat,
    StringBuilder queryStr) {
  List<Expression> exprs = value.getExpressions();

代码示例来源:origin: org.teiid/teiid-engine

org.teiid.language.Comparison translate(DependentSetCriteria criteria) {
  Operator operator = Operator.EQ;
  org.teiid.language.Expression arg = null;
  final TupleBuffer tb = criteria.getDependentValueSource().getTupleBuffer();
  if (criteria.getValueExpression() instanceof Array) {
    Array array = (Array)criteria.getValueExpression();
    List<org.teiid.language.Expression> params = new ArrayList<org.teiid.language.Expression>();
    Class<?> baseType = null;
    for (Expression ex : array.getExpressions()) {
      if (baseType == null) {
        baseType = ex.getType();
      } else if (!baseType.equals(ex.getType())) {
        baseType = DataTypeManager.DefaultDataClasses.OBJECT;
      }
      params.add(createParameter(criteria, tb, ex));
    }
    arg = new org.teiid.language.Array(baseType, params);
  } else {
    Expression ex = criteria.getValueExpression();
    arg = createParameter(criteria, tb, ex);
  }
  if (this.dependentSets == null) {
    this.dependentSets = new HashMap<String, List<? extends List<?>>>();
  }
  this.dependentSets.put(criteria.getContextSymbol(), new TupleBufferList(tb));
  Comparison result = new org.teiid.language.Comparison(translate(criteria.getExpression()),
                  arg, operator);
  return result;
}

代码示例来源:origin: org.teiid.connectors/translator-swagger

json.writeArrayFieldStart(key);
org.teiid.language.Array array = (org.teiid.language.Array)value;
for (Expression expr:array.getExpressions()) {
  writeProperty(json, ((Literal)expr).getValue());

代码示例来源:origin: org.jboss.teiid/teiid-engine

org.teiid.language.Comparison translate(DependentSetCriteria criteria) {
  Operator operator = Operator.EQ;
  org.teiid.language.Expression arg = null;
  final TupleBuffer tb = criteria.getDependentValueSource().getTupleBuffer();
  if (criteria.getValueExpression() instanceof Array) {
    Array array = (Array)criteria.getValueExpression();
    List<org.teiid.language.Expression> params = new ArrayList<org.teiid.language.Expression>();
    Class<?> baseType = null;
    for (Expression ex : array.getExpressions()) {
      if (baseType == null) {
        baseType = ex.getType();
      } else if (!baseType.equals(ex.getType())) {
        baseType = DataTypeManager.DefaultDataClasses.OBJECT;
      }
      params.add(createParameter(criteria, tb, ex));
    }
    arg = new org.teiid.language.Array(baseType, params);
  } else {
    Expression ex = criteria.getValueExpression();
    arg = createParameter(criteria, tb, ex);
  }
  if (this.dependentSets == null) {
    this.dependentSets = new HashMap<String, List<? extends List<?>>>();
  }
  this.dependentSets.put(criteria.getContextSymbol(), new TupleBufferList(tb));
  Comparison result = new org.teiid.language.Comparison(translate(criteria.getExpression()),
                  arg, operator);
  return result;
}

代码示例来源:origin: org.teiid.connectors/translator-odata4

private Object resolveExpressionValue(Expression expr) throws TranslatorException {
  Object value = null;
  if (expr instanceof Literal) {
    value = ((Literal)expr).getValue();
  }
  else if (expr instanceof org.teiid.language.Array) {
    org.teiid.language.Array contents = (org.teiid.language.Array)expr;
    List<Expression> arrayExprs = contents.getExpressions();
    List<Object> values = new ArrayList<Object>();
    for (Expression exp:arrayExprs) {
      if (exp instanceof Literal) {
        values.add(((Literal)exp).getValue());
      }
      else {
        this.exceptions.add(new TranslatorException(ODataPlugin.Util.gs(ODataPlugin.Event.TEIID17029)));
      }
    }
    value = values;
  }
  else {
    this.exceptions.add(new TranslatorException(ODataPlugin.Util.gs(ODataPlugin.Event.TEIID17029)));
  }
  return value;
}

代码示例来源:origin: org.jboss.teiid/teiid-engine

return new org.teiid.language.Array(baseType, translateExpressionList(vals));

代码示例来源:origin: org.teiid.connectors/translator-jdbc

} else if (comp.getRightExpression() instanceof Array) {
  Array array = (Array)comp.getRightExpression();
  if (array.getExpressions().get(0) instanceof Parameter) {
    iter.remove();
    p = (Parameter)array.getExpressions().get(0);
  if (ex instanceof Array) {
    Array array = (Array)ex;
    params.addAll(((Array)comp.getRightExpression()).getExpressions());
    for (Expression expr : array.getExpressions()) {
      cols.add(createTempColumn(cols.size()+1, expr));
  if (ex instanceof Array) {
    Array array = (Array)ex;
    for (Expression expr : array.getExpressions()) {
      conditions.add(new Comparison(expr, new ColumnReference(table, COL_PREFIX+i++, null, expr.getType()), Comparison.Operator.EQ));

相关文章

微信公众号

最新文章

更多