package org.aksw.sparqlify.algebra.sql.nodes;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.aksw.sparqlify.core.TypeToken;
import org.aksw.sparqlify.core.sql.schema.Schema;
import org.aksw.sparqlify.core.sql.schema.SchemaImpl;
public class SqlOpEmpty
extends SqlOpLeaf
{
public SqlOpEmpty(Schema schema) {
this(schema, null);
}
public SqlOpEmpty(Schema schema, String aliasName) {
super(schema, true, aliasName);
}
public static SqlOpEmpty create() {
SqlOpEmpty result = create(new SchemaImpl());
return result;
}
/**
* Create an empty mapping with an named, null valued, integer column
*
* @param columnName
* @return
*/
public static SqlOpEmpty create(String columnName) {
List<String> columnNames = new ArrayList<String>(Arrays.asList(columnName));
Map<String, TypeToken> typeMap = new HashMap<String, TypeToken>();
typeMap.put(columnName, TypeToken.Int);
SchemaImpl schema = new SchemaImpl(columnNames, typeMap);
SqlOpEmpty result = create(schema);
return result;
}
public static SqlOpEmpty create(Schema schema) {
return new SqlOpEmpty(schema);
}
public static SqlOpEmpty create(Schema schema, String aliasName) {
return new SqlOpEmpty(schema, aliasName);
}
@Override
public boolean isEmpty() {
return true;
}
@Override
public String getId() {
return "SELECT NULL";
}
}