mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Initial code commit
This commit is contained in:
33
src/main/java/com/kingsrook/sampleapp/SampleCli.java
Normal file
33
src/main/java/com/kingsrook/sampleapp/SampleCli.java
Normal file
@ -0,0 +1,33 @@
|
||||
package com.kingsrook.sampleapp;
|
||||
|
||||
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
||||
import com.kingsrook.qqq.frontend.picocli.QPicoCliImplementation;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public class SampleCli
|
||||
{
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new SampleCli().run(args);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
private void run(String[] args)
|
||||
{
|
||||
QInstance qInstance = SampleMetaDataProvider.defineInstance();
|
||||
QPicoCliImplementation qPicoCliImplementation = new QPicoCliImplementation(qInstance);
|
||||
int exitCode = qPicoCliImplementation.runCli("my-sample-cli", args);
|
||||
System.exit(exitCode);
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.kingsrook.sampleapp;
|
||||
|
||||
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
||||
import com.kingsrook.qqq.backend.javalin.QJavalinImplementation;
|
||||
import io.javalin.Javalin;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public class SampleJavalinServer
|
||||
{
|
||||
private static final Logger LOG = LogManager.getLogger(SampleJavalinServer.class);
|
||||
|
||||
private static final int PORT = 8000;
|
||||
|
||||
private QInstance qInstance;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new SampleJavalinServer().startJavalinServer();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public void startJavalinServer()
|
||||
{
|
||||
qInstance = SampleMetaDataProvider.defineInstance();
|
||||
|
||||
QJavalinImplementation qJavalinImplementation = new QJavalinImplementation(qInstance);
|
||||
Javalin service = Javalin.create().start(PORT);
|
||||
service.routes(qJavalinImplementation.getRoutes());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,96 @@
|
||||
package com.kingsrook.sampleapp;
|
||||
|
||||
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public class SampleMetaDataProvider
|
||||
{
|
||||
private static final String BACKEND_NAME = "default";
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public static QInstance defineInstance()
|
||||
{
|
||||
QInstance qInstance = new QInstance();
|
||||
qInstance.addBackend(SampleMetaDataProvider.defineBackend());
|
||||
qInstance.addTable(SampleMetaDataProvider.defineTableCarrier());
|
||||
qInstance.addTable(SampleMetaDataProvider.defineTablePerson());
|
||||
return (qInstance);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public static QBackendMetaData defineBackend()
|
||||
{
|
||||
QBackendMetaData backend = new QBackendMetaData();
|
||||
backend.setName(BACKEND_NAME);
|
||||
backend.setType("rdbms");
|
||||
backend.setValue("vendor", "mysql");
|
||||
backend.setValue("hostName", "127.0.0.1");
|
||||
backend.setValue("port", "3306");
|
||||
backend.setValue("databaseName", "opspath");
|
||||
backend.setValue("username", "root");
|
||||
backend.setValue("password", "8BNWyoav8s79oi}Lqk");
|
||||
return (backend);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public static QTableMetaData defineTableCarrier()
|
||||
{
|
||||
QTableMetaData table = new QTableMetaData();
|
||||
table.setName("carrier");
|
||||
table.setBackendName(BACKEND_NAME);
|
||||
table.setPrimaryKeyField("id");
|
||||
|
||||
table.addField(new QFieldMetaData("id", QFieldType.INTEGER));
|
||||
|
||||
table.addField(new QFieldMetaData("name", QFieldType.STRING));
|
||||
|
||||
table.addField(new QFieldMetaData("company_code", QFieldType.STRING) // todo enum
|
||||
.withLabel("Company")
|
||||
.withBackendName("comp_code"));
|
||||
|
||||
table.addField(new QFieldMetaData("service_level", QFieldType.STRING)); // todo enum
|
||||
|
||||
return (table);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public static QTableMetaData defineTablePerson()
|
||||
{
|
||||
return new QTableMetaData()
|
||||
.withName("person")
|
||||
.withLabel("Person")
|
||||
.withBackendName(BACKEND_NAME)
|
||||
.withPrimaryKeyField("id")
|
||||
.withField(new QFieldMetaData("id", QFieldType.INTEGER))
|
||||
.withField(new QFieldMetaData("createDate", QFieldType.DATE_TIME).withBackendName("create_date"))
|
||||
.withField(new QFieldMetaData("modifyDate", QFieldType.DATE_TIME).withBackendName("modify_date"))
|
||||
.withField(new QFieldMetaData("firstName", QFieldType.STRING).withBackendName("first_name"))
|
||||
.withField(new QFieldMetaData("lastName", QFieldType.STRING).withBackendName("last_name"))
|
||||
.withField(new QFieldMetaData("birthDate", QFieldType.DATE).withBackendName("birth_date"))
|
||||
.withField(new QFieldMetaData("email", QFieldType.STRING));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user