@Override public void deserialize(IFilterCodeSystem<?> cs, ByteBuffer buffer) { this.dynamicVariables.clear(); int size = BytesUtil.readVInt(buffer); for (int i = 0; i < size; i++) { String name = BytesUtil.readUTFString(buffer); Object value = cs.deserialize(buffer); bindVariable(name, value); } }
private void bindVariable(TupleFilter filter, DataContext dataContext) { if (filter == null) { return; } for (TupleFilter childFilter : filter.getChildren()) { bindVariable(childFilter, dataContext); } if (filter instanceof CompareTupleFilter && dataContext != null) { CompareTupleFilter compFilter = (CompareTupleFilter) filter; for (Map.Entry<String, Object> entry : compFilter.getVariables().entrySet()) { String variable = entry.getKey(); Object value = dataContext.get(variable); if (value != null) { String str = value.toString(); if (compFilter.getColumn().getType().isDateTimeFamily()) str = String.valueOf(DateFormat.stringToMillis(str)); compFilter.clearPreviousVariableValues(variable); compFilter.bindVariable(variable, str); } } } } // ============================================================================
protected CompareTupleFilter buildCompareDynamicFilter(List<TblColRef> groups, FilterOperatorEnum operator) { CompareTupleFilter compareFilter = new CompareTupleFilter(operator); compareFilter.addChild(new ColumnTupleFilter(groups.get(0))); compareFilter.addChild(new DynamicTupleFilter("?0")); compareFilter.bindVariable("?0", "abc"); return compareFilter; }
@Override public void deserialize(byte[] bytes) { this.dynamicVariables.clear(); ByteBuffer buffer = ByteBuffer.wrap(bytes); int size = BytesUtil.readVInt(buffer); for (int i = 0; i < size; i++) { String nameString = BytesUtil.readUTFString(buffer); String valueString = BytesUtil.readUTFString(buffer); bindVariable(nameString, valueString); } this.nullString = BytesUtil.readAsciiString(buffer); }
private void bindVariable(TupleFilter filter) { if (filter == null) { return; } for (TupleFilter childFilter : filter.getChildren()) { bindVariable(childFilter); } if (filter instanceof CompareTupleFilter && optiqContext != null) { CompareTupleFilter compFilter = (CompareTupleFilter) filter; for (Map.Entry<String, String> entry : compFilter.getVariables().entrySet()) { String variable = entry.getKey(); Object value = optiqContext.get(variable); if (value != null) { compFilter.bindVariable(variable, value.toString()); } } } }
@Override public void deserialize(IFilterCodeSystem<?> cs, ByteBuffer buffer) { this.dynamicVariables.clear(); int size = BytesUtil.readVInt(buffer); for (int i = 0; i < size; i++) { String name = BytesUtil.readUTFString(buffer); Object value = cs.deserialize(buffer); bindVariable(name, value); } }
@Override public void deserialize(byte[] bytes) { this.dynamicVariables.clear(); ByteBuffer buffer = ByteBuffer.wrap(bytes); int size = BytesUtil.readVInt(buffer); for (int i = 0; i < size; i++) { String nameString = BytesUtil.readUTFString(buffer); String valueString = BytesUtil.readUTFString(buffer); bindVariable(nameString, valueString); } this.nullString = BytesUtil.readAsciiString(buffer); } }
private void bindVariable(TupleFilter filter, DataContext dataContext) { if (filter == null) { return; } for (TupleFilter childFilter : filter.getChildren()) { bindVariable(childFilter, dataContext); } if (filter instanceof CompareTupleFilter && dataContext != null) { CompareTupleFilter compFilter = (CompareTupleFilter) filter; for (Map.Entry<String, Object> entry : compFilter.getVariables().entrySet()) { String variable = entry.getKey(); Object value = dataContext.get(variable); if (value != null) { String str = value.toString(); if (compFilter.getColumn().getType().isDateTimeFamily()) str = String.valueOf(DateFormat.stringToMillis(str)); compFilter.clearPreviousVariableValues(variable); compFilter.bindVariable(variable, str); } } } } // ============================================================================