package org.orienteer.core.tasks.console;
import org.orienteer.core.OrienteerWebApplication;
import org.orienteer.core.module.AbstractOrienteerModule;
import org.orienteer.core.module.IOrienteerModule;
import org.orienteer.core.module.TaskManagerModule;
import org.orienteer.core.tasks.OTask;
import org.orienteer.core.tasks.OTaskSessionRuntime;
import org.orienteer.core.util.OSchemaHelper;
import com.orientechnologies.orient.core.db.document.ODatabaseDocument;
import com.orientechnologies.orient.core.metadata.schema.OType;
import com.orientechnologies.orient.core.record.impl.ODocument;
/**
* {@link IOrienteerModule} to install datamodel for cosole tasks
*/
public class OConsoleTasksModule extends AbstractOrienteerModule {
public static final String NAME = "console-tasks";
public OConsoleTasksModule() {
super(NAME, 1, TaskManagerModule.NAME);
}
@Override
public ODocument onInstall(OrienteerWebApplication app, ODatabaseDocument db) {
OSchemaHelper helper = OSchemaHelper.bind(db);
helper.oClass(OConsoleTask.TASK_CLASS,OTask.TASK_CLASS)
.oProperty(OConsoleTask.Field.INPUT.fieldName(),OType.STRING,25);
OTask.TASK_JAVA_CLASS_ATTRIBUTE.setValue(db.getMetadata().getSchema().getClass(OConsoleTask.TASK_CLASS), OConsoleTask.class.getName());
helper.oClass(OConsoleTaskSession.TASK_SESSION_CLASS,OTaskSessionRuntime.TASK_SESSION_CLASS)
.oProperty("in",OType.STRING,35).markAsDocumentName()
.oProperty("out",OType.STRING,37).assignVisualization("textarea");
return null;
}
@Override
public void onUpdate(OrienteerWebApplication app, ODatabaseDocument db, int oldVersion, int newVersion) {
onInstall(app, db);
}
}