/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.huawei.streaming.cql.semanticanalyzer.parser.context;
import java.util.List;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.huawei.streaming.cql.DriverContext;
import com.huawei.streaming.cql.exception.CQLException;
import com.huawei.streaming.cql.exception.SemanticAnalyzerException;
import com.huawei.streaming.cql.hooks.SemanticAnalyzeHook;
import com.huawei.streaming.cql.semanticanalyzer.DataSourceQueryArgumentsAnalyzer;
import com.huawei.streaming.cql.semanticanalyzer.SemanticAnalyzer;
import com.huawei.streaming.cql.semanticanalyzer.parsecontextwalker.ParseContextWalker;
import com.huawei.streaming.cql.tasks.Task;
/**
* 创建数据源解析内容
*
*/
public class DataSourceBodyContext extends ParseContext
{
private String dataSourceName;
private String alia;
private List<ExpressionContext> queryarguments;
private ColumnNameTypeListContext schemaColumns;
/**
* <默认构造函数>
*/
public DataSourceBodyContext()
{
queryarguments = Lists.newArrayList();
}
/**
* {@inheritDoc}
*/
@Override
public String toString()
{
StringBuilder sb = new StringBuilder();
sb.append("DATASOURCE " + dataSourceName);
sb.append("[");
sb.append(" SCHEMA (" + schemaColumns.toString() + ")");
sb.append(" QUERY(" + Joiner.on(", ").join(queryarguments) + ")");
sb.append("]");
if (alia != null)
{
sb.append(" " + alia);
}
return sb.toString();
}
/**
* {@inheritDoc}
*/
@Override
protected void walkChild(ParseContextWalker walker)
{
}
/**
* {@inheritDoc}
*/
@Override
public Task createTask(DriverContext driverContext, List<SemanticAnalyzeHook> analyzeHooks)
throws CQLException
{
return null;
}
/**
* {@inheritDoc}
*/
@Override
public SemanticAnalyzer createAnalyzer()
throws SemanticAnalyzerException
{
return new DataSourceQueryArgumentsAnalyzer(this);
}
public String getDataSourceName()
{
return dataSourceName;
}
public void setDataSourceName(String dataSourceName)
{
this.dataSourceName = dataSourceName;
}
public List<ExpressionContext> getQueryarguments()
{
return queryarguments;
}
public void setQueryarguments(List<ExpressionContext> queryarguments)
{
this.queryarguments = queryarguments;
}
public ColumnNameTypeListContext getSchemaColumns()
{
return schemaColumns;
}
public void setSchemaColumns(ColumnNameTypeListContext schemaColumns)
{
this.schemaColumns = schemaColumns;
}
public String getAlia()
{
return alia;
}
public void setAlia(String alia)
{
this.alia = alia;
}
}