org.teiid.language.Array.getExpressions()方法的使用及代码示例

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

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

Array.getExpressions介绍

暂无

代码示例

代码示例来源: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: teiid/teiid

@Override
public void visit(Array array) {
  visitNodes(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.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.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: org.teiid.connectors/translator-swagger

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

代码示例来源: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: 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.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.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));

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

private Object resolveExpressionValue(String colName, Expression expr) throws TranslatorException {
  Object value = null;
  if (expr instanceof Literal) {
    value = this.executionFactory.convertToMongoType(((Literal) expr).getValue(), this.mongoDB, colName);
  }
  else if (expr instanceof org.teiid.language.Array) {
    org.teiid.language.Array contents = (org.teiid.language.Array)expr;
    List<Expression> arrayExprs = contents.getExpressions();
    value = new BasicDBList();
    for (Expression exp:arrayExprs) {
      if (exp instanceof Literal) {
        ((BasicDBList)value).add(this.executionFactory.convertToMongoType(((Literal) exp).getValue(), this.mongoDB, colName));
      }
      else {
        this.exceptions.add(new TranslatorException(MongoDBPlugin.Util.gs(MongoDBPlugin.Event.TEIID18001)));
      }
    }
  }
  else {
    this.exceptions.add(new TranslatorException(MongoDBPlugin.Util.gs(MongoDBPlugin.Event.TEIID18001)));
  }
  return value;
}

代码示例来源: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-ldap

static Attribute createBasicAttribute(String id,
    Expression expr, Column col) {
  Attribute attr = new BasicAttribute(id);
  if (expr instanceof org.teiid.language.Array) {
    List<Expression> exprs = ((org.teiid.language.Array)expr).getExpressions();
    for (Expression val : exprs) {
      Literal l = (Literal)val;
      if (l.getValue() != null) {
        attr.add(IQueryToLdapSearchParser.getLiteralString(l));
      }
    }
  } else {
    Literal l = (Literal)expr;
    Object insertValue = null;
    if (l.getValue() != null) {
      if (LDAPQueryExecution.MULTIVALUED_CONCAT.equalsIgnoreCase(col.getDefaultValue())) {
        List<String> vals = StringUtil.split(l.getValue().toString(), "?"); //$NON-NLS-1$
        for (String val : vals) {
          attr.add(val);
        }
        return attr;
      }
      insertValue = IQueryToLdapSearchParser.getLiteralString(l);
    }
    attr.add(insertValue);
  }
  return attr;
}

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

private OProperty<?> readProperty(Column column, Object value) {
  if (value instanceof Array) {
    EdmType componentType = ODataTypeManager.odataType(column.getRuntimeType());
    if (componentType instanceof EdmCollectionType) {
      componentType = ((EdmCollectionType)componentType).getItemType();
    }
    OCollection.Builder<OObject> b = OCollections.newBuilder(componentType);
    List<Expression> values = ((Array)value).getExpressions();
    for (int i = 0; i < values.size(); i++) {
      Literal literal = (Literal)values.get(i);
      b.add(OSimpleObjects.create((EdmSimpleType<?>)componentType, literal.getValue()));
    }
    return OProperties.collection(column.getName(),
        new EdmCollectionType(CollectionKind.Collection,
            componentType), b.build());
  } else {
    Literal literal = (Literal)value;
    return OProperties.simple(column.getName(), literal.getValue());
  }
}

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

if (supportsArrayType) {
  Comparison comp = (Comparison) s.getWhere();
  Parameter p = (Parameter)((Array)comp.getRightExpression()).getExpressions().get(0);
  assertEquals(0, p.getValueIndex());
  assertNotNull(s.getDependentValues().get(p.getDependentValueId()));

相关文章

微信公众号

最新文章

更多