package com.nvlad.yii2support.database.fixtures;
import com.intellij.database.model.*;
import com.intellij.database.psi.*;
import com.intellij.database.util.Casing;
import com.intellij.openapi.project.Project;
import com.intellij.util.containers.JBIterable;
import com.intellij.util.containers.JBTreeTraverser;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
/**
* Created by oleg on 03.04.2017.
*/
public class TestModel implements DasModel {
Project project;
public TestModel(Project project) {
this.project = project;
}
@NotNull
@Override
public JBIterable<? extends DasObject> getModelRoots() {
return null;
}
@Nullable
@Override
public DasNamespace getCurrentRootNamespace() {
return new DasNamespace() {
@NotNull
@Override
public ObjectKind getKind() {
return null;
}
@NotNull
@Override
public String getName() {
return null;
}
@Nullable
@Override
public String getComment() {
return null;
}
@Nullable
@Override
public DasObject getDbParent() {
return null;
}
@NotNull
@Override
public <C> JBIterable<C> getDbChildren(@NotNull Class<C> clazz, @NotNull ObjectKind kind) {
return null;
}
};
}
@NotNull
@Override
public JBTreeTraverser<DasObject> traverser() {
List<DasObject> list = new LinkedList<>();
TestNamespace namespace = new TestNamespace();
TestTable table1 = new TestTable("person", namespace, project);
table1.addColumn(new TestColumn("name", project));
table1.addColumn(new TestColumn("surname", project));
table1.addColumn(new TestColumn("birth_date", project));
list.add(table1);
TestTable table2 = new TestTable("address", namespace, project);
table2.addColumn(new TestColumn("street", project));
table2.addColumn(new TestColumn("city", project));
list.add(table2);
return new JBTreeTraverser<>(dasObject -> () -> new Iterator<DasObject>() {
int current = 0;
@Override
public boolean hasNext() {
return list.size() > current;
}
@Override
public DasObject next() {
return list.get(current++);
}
});
}
@NotNull
@Override
public JBIterable<? extends DasConstraint> getExportedKeys(DasTable table) {
return null;
}
@NotNull
@Override
public Casing getCasing(@NotNull ObjectKind kind, @Nullable DasObject context) {
return null;
}
}