use of com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable in project mechanoid by robotoworks.
the class SqliteModelProposalProvider method getDisplayString.
@Override
protected String getDisplayString(EObject element, String qualifiedNameAsString, String shortName) {
if (element instanceof ColumnDef) {
ColumnDef def = (ColumnDef) element;
EObject container = def.eContainer();
if (container instanceof TableDefinition) {
return def.getName() + ":" + def.getType().getName() + " - " + ((TableDefinition) def.eContainer()).getName();
} else if (container instanceof AlterTableAddColumnStatement) {
return def.getName() + ":" + def.getType().getName() + " - " + ((AlterTableAddColumnStatement) def.eContainer()).getTable().getName();
} else {
return def.getName() + ":" + def.getType().getName();
}
} else if (element instanceof SingleSourceTable) {
SingleSourceTable t = (SingleSourceTable) element;
return (t.getName() == null ? t.getTableReference().getName() : t.getName() + " - " + t.getTableReference().getName());
} else if (element instanceof CreateTableStatement) {
CreateTableStatement t = (CreateTableStatement) element;
return t.getName();
} else if (element instanceof ResultColumn) {
ResultColumn r = (ResultColumn) element;
if (r.getName() != null) {
return r.getName() + ":" + ModelUtil.getInferredColumnType(r).getName();
}
}
return super.getDisplayString(element, qualifiedNameAsString, shortName);
}
use of com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable in project mechanoid by robotoworks.
the class StatementSequenceValidator method validateTablesInExpression.
public void validateTablesInExpression(final StatementSequenceValidatorResult result, final SelectCoreExpression expr) {
ArrayList<EObject> sources = ModelUtil.getAllReferenceableSingleSources(expr);
for (final EObject source : sources) {
if ((source instanceof SingleSourceTable)) {
SingleSourceTable table = ((SingleSourceTable) source);
TableDefinition _tableReference = table.getTableReference();
String _name = _tableReference.getName();
boolean _sourceExists = this.sourceExists(_name);
boolean _not = (!_sourceExists);
if (_not) {
result.source = table;
result.valid = false;
result.message = "No such reference";
result.feature = SqliteModelPackage.Literals.SINGLE_SOURCE_TABLE__TABLE_REFERENCE;
return;
}
}
}
}
use of com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable in project mechanoid by robotoworks.
the class XSqliteModelScopeProvider method scope_ColumnSourceRef_column.
public IScope scope_ColumnSourceRef_column(final ColumnSourceRef context, final EReference reference) {
SelectSource _source = context.getSource();
boolean _equals = Objects.equal(_source, null);
if (_equals) {
IScope scope = this.buildScopeForColumnSourceRef_column(context, context);
return scope;
} else {
SelectSource _source_1 = context.getSource();
if ((_source_1 instanceof SingleSourceTable)) {
SelectSource _source_2 = context.getSource();
SingleSourceTable tableSource = ((SingleSourceTable) _source_2);
DDLStatement _ancestorOfType = ModelUtil.<DDLStatement>getAncestorOfType(tableSource, DDLStatement.class);
TableDefinition _tableReference = tableSource.getTableReference();
ArrayList<EObject> _findColumnDefs = ModelUtil.findColumnDefs(_ancestorOfType, _tableReference);
return Scopes.scopeFor(_findColumnDefs);
} else {
SelectSource _source_3 = context.getSource();
if ((_source_3 instanceof SingleSourceSelectStatement)) {
SelectSource _source_4 = context.getSource();
SingleSourceSelectStatement selectStmtSource = ((SingleSourceSelectStatement) _source_4);
SelectStatement _selectStatement = selectStmtSource.getSelectStatement();
SelectCoreExpression _core = _selectStatement.getCore();
ArrayList<EObject> _allReferenceableColumns = ModelUtil.getAllReferenceableColumns(_core);
return Scopes.scopeFor(_allReferenceableColumns);
}
}
}
return IScope.NULLSCOPE;
}
use of com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable in project mechanoid by robotoworks.
the class ModelUtil method getAllReferenceableColumns.
public static ArrayList<EObject> getAllReferenceableColumns(final SelectExpression expr, final boolean includeAliases) {
final ArrayList<EObject> items = Lists.<EObject>newArrayList();
boolean _and = false;
SelectList _selectList = expr.getSelectList();
boolean _notEquals = (!Objects.equal(_selectList, null));
if (!_notEquals) {
_and = false;
} else {
_and = includeAliases;
}
if (_and) {
SelectList _selectList_1 = expr.getSelectList();
EList<ColumnSource> _resultColumns = _selectList_1.getResultColumns();
final Function1<ColumnSource, Boolean> _function = new Function1<ColumnSource, Boolean>() {
public Boolean apply(final ColumnSource it) {
String _name = it.getName();
return Boolean.valueOf((!Objects.equal(_name, null)));
}
};
Iterable<ColumnSource> _filter = IterableExtensions.<ColumnSource>filter(_resultColumns, _function);
Iterables.<EObject>addAll(items, _filter);
}
ArrayList<SingleSource> _findAllSingleSources = ModelUtil.findAllSingleSources(expr);
final Function1<SingleSource, Boolean> _function_1 = new Function1<SingleSource, Boolean>() {
public Boolean apply(final SingleSource item) {
if ((item instanceof SingleSourceTable)) {
String _name = ((SingleSourceTable) item).getName();
return Boolean.valueOf(Objects.equal(_name, null));
}
return Boolean.valueOf(false);
}
};
Iterable<SingleSource> _filter_1 = IterableExtensions.<SingleSource>filter(_findAllSingleSources, _function_1);
final Consumer<SingleSource> _function_2 = new Consumer<SingleSource>() {
public void accept(final SingleSource item) {
SingleSourceTable source = ((SingleSourceTable) item);
DDLStatement _ancestorOfType = ModelUtil.<DDLStatement>getAncestorOfType(item, DDLStatement.class);
TableDefinition _tableReference = source.getTableReference();
ArrayList<EObject> _findColumnDefs = ModelUtil.findColumnDefs(_ancestorOfType, _tableReference);
items.addAll(_findColumnDefs);
}
};
_filter_1.forEach(_function_2);
return items;
}
use of com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable in project mechanoid by robotoworks.
the class ModelUtil method isDefinitionReferencedByView.
public static boolean isDefinitionReferencedByView(final TableDefinition tableDef, final CreateViewStatement view) {
TreeIterator<EObject> _eAllContents = view.eAllContents();
final Function1<EObject, Boolean> _function = new Function1<EObject, Boolean>() {
public Boolean apply(final EObject obj) {
if ((obj instanceof SingleSourceTable)) {
SingleSourceTable sourceTable = ((SingleSourceTable) obj);
TableDefinition _tableReference = sourceTable.getTableReference();
if ((!(_tableReference instanceof CreateViewStatement))) {
TableDefinition _tableReference_1 = sourceTable.getTableReference();
String _name = _tableReference_1.getName();
String _name_1 = tableDef.getName();
boolean _equals = _name.equals(_name_1);
if (_equals) {
return Boolean.valueOf(true);
}
} else {
TableDefinition _tableReference_2 = sourceTable.getTableReference();
return Boolean.valueOf(ModelUtil.isDefinitionReferencedByView(tableDef, ((CreateViewStatement) _tableReference_2)));
}
}
return Boolean.valueOf(false);
}
};
return IteratorExtensions.<EObject>exists(_eAllContents, _function);
}
Aggregations