package foundation.system; import java.util.ArrayList; import java.util.List; import foundation.data.entity.Entity; import foundation.data.entity.EntitySet; import foundation.data.meta.field.FieldsRuntime; import foundation.data.object.DataObject; import foundation.handler.Handler; import foundation.persist.NamedSQL; import foundation.persist.SQLRunner; public class GoliveHandler extends Handler { @Override protected void publishMethod() { //1. clear tables addMethod("clearTables"); //2. initialize sequences addMethod("initializeSequence"); } public void clearTables() throws Exception { List tableList = new ArrayList(); //1. load table list DataObject dataObject = DataObject.getInstance("sys_init_table"); EntitySet entitySet = dataObject.getTableEntitySet(); for (Entity entity: entitySet) { String tableName = entity.getString("table_name"); tableList.add(tableName); } //2. clear tables NamedSQL namedSQL = NamedSQL.getInstance("sys_empty_table"); for (String tableName: tableList) { namedSQL.setTableName(tableName); namedSQL.execute(); } //3. reset sequence namedSQL = NamedSQL.getInstance("emptyTable"); for (String tableName: tableList) { namedSQL.setTableName(tableName); namedSQL.execute(); } resultPool.addValue("cnt", tableList.size()); } public void initializeSequence() throws Exception { List tableList = SQLRunner.getTableList(); NamedSQL resetIdxSQL = NamedSQL.getInstance("resetIdx"); NamedSQL resetCurrentSQL = NamedSQL.getInstance("resetCurrentSQL"); for (String tableName: tableList) { try { DataObject dataObject = DataObject.getInstance(tableName); if (dataObject != null) { FieldsRuntime fieldsMeta = dataObject.getTableFieldMetas(); if (fieldsMeta.contains("idx")) { resetIdxSQL.setTableName(tableName); resetIdxSQL.execute(); resetCurrentSQL.setTableName(tableName); resetIdxSQL.execute(); } } } catch (Exception e) { } } } }