本文整理了Java中org.teiid.language.Array
类的一些代码示例,展示了Array
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Array
类的具体详情如下:
包路径:org.teiid.language.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));
内容来源于网络,如有侵权,请联系作者删除!