From 6d6b4121d56add68a3bd091d13f3aa958ef23681 Mon Sep 17 00:00:00 2001 From: zhai_lw Date: Fri, 7 Dec 2018 16:15:05 +0800 Subject: [PATCH] first test --- .idea/artifacts/GDMS_war_exploded.xml | 16 +++ .idea/dictionaries/zhai_.xml | 7 + .idea/misc.xml | 6 + .idea/modules.xml | 8 ++ .idea/uiDesigner.xml | 124 ++++++++++++++++++ .idea/vcs.xml | 6 + GDMS.iml | 32 +++++ src/core/operation/Executable.java | 19 +++ src/core/operation/Operation.java | 42 ++++++ src/core/operation/UploadFileOperation.java | 8 ++ src/core/process/AtomProcess.java | 23 ++++ src/core/process/CompoundProcess.java | 17 +++ src/core/process/Process.java | 20 +++ src/core/process/ProcessManagement.java | 13 ++ src/core/process/process.json | 3 + src/core/user/Student.java | 6 + src/core/user/Teacher.java | 5 + src/core/user/User.java | 49 +++++++ src/core/user/json/student.json | 3 + src/core/user/json/studentProcess.json | 3 + src/core/user/json/teacher.json | 3 + src/core/user/json/teacherProcess.json | 3 + src/core/user/userFun/AccountManageable.java | 13 ++ src/core/user/userFun/Configurable.java | 11 ++ .../user/userFun/DatabaseSynchronizable.java | 9 ++ src/core/user/utils/AccountManagement.java | 22 ++++ src/dao/Utils.java | 4 + src/gdms/main.java | 18 +++ src/gdms/test.java | 11 ++ src/interfaces/AvailableByName.java | 12 ++ web/WEB-INF/web.xml | 6 + web/index.jsp | 16 +++ 32 files changed, 538 insertions(+) create mode 100644 .idea/artifacts/GDMS_war_exploded.xml create mode 100644 .idea/dictionaries/zhai_.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 GDMS.iml create mode 100644 src/core/operation/Executable.java create mode 100644 src/core/operation/Operation.java create mode 100644 src/core/operation/UploadFileOperation.java create mode 100644 src/core/process/AtomProcess.java create mode 100644 src/core/process/CompoundProcess.java create mode 100644 src/core/process/Process.java create mode 100644 src/core/process/ProcessManagement.java create mode 100644 src/core/process/process.json create mode 100644 src/core/user/Student.java create mode 100644 src/core/user/Teacher.java create mode 100644 src/core/user/User.java create mode 100644 src/core/user/json/student.json create mode 100644 src/core/user/json/studentProcess.json create mode 100644 src/core/user/json/teacher.json create mode 100644 src/core/user/json/teacherProcess.json create mode 100644 src/core/user/userFun/AccountManageable.java create mode 100644 src/core/user/userFun/Configurable.java create mode 100644 src/core/user/userFun/DatabaseSynchronizable.java create mode 100644 src/core/user/utils/AccountManagement.java create mode 100644 src/dao/Utils.java create mode 100644 src/gdms/main.java create mode 100644 src/gdms/test.java create mode 100644 src/interfaces/AvailableByName.java create mode 100644 web/WEB-INF/web.xml create mode 100644 web/index.jsp diff --git a/.idea/artifacts/GDMS_war_exploded.xml b/.idea/artifacts/GDMS_war_exploded.xml new file mode 100644 index 0000000..7c2d977 --- /dev/null +++ b/.idea/artifacts/GDMS_war_exploded.xml @@ -0,0 +1,16 @@ + + + $PROJECT_DIR$/out/artifacts/GDMS_war_exploded + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dictionaries/zhai_.xml b/.idea/dictionaries/zhai_.xml new file mode 100644 index 0000000..def2846 --- /dev/null +++ b/.idea/dictionaries/zhai_.xml @@ -0,0 +1,7 @@ + + + + synchronizable + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..bfbb0ff --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f353925 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GDMS.iml b/GDMS.iml new file mode 100644 index 0000000..429fca0 --- /dev/null +++ b/GDMS.iml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/core/operation/Executable.java b/src/core/operation/Executable.java new file mode 100644 index 0000000..a896d94 --- /dev/null +++ b/src/core/operation/Executable.java @@ -0,0 +1,19 @@ +package core.operation; + + +public interface Executable { + default void execute(String options) throws Exception { + checkSelf(); + beforeDo(options); + Do(options); + afterDo(options); + } + + void checkSelf ()throws Exception; + + void beforeDo(String options); + + void Do(String options); + + void afterDo(String options); +} diff --git a/src/core/operation/Operation.java b/src/core/operation/Operation.java new file mode 100644 index 0000000..6f8ca3f --- /dev/null +++ b/src/core/operation/Operation.java @@ -0,0 +1,42 @@ +package core.operation; + + +import core.user.User; +import interfaces.AvailableByName; + +public abstract class Operation implements Executable, AvailableByName { + + //AvailableByName*******start****** + private static String classPath="core.user"; + public static String getClassPath(){ + return classPath; + } + public static Object getObjectByName(String name) throws Exception { + return Class.forName(getClassPath()+"."+name).getDeclaredConstructor().newInstance(); + } + //AvailableByName********end******* + + private User subject; + public Operation(){ + super(); + } + public User getSubject() { + return subject; + } + public void setSubject(User subject) { + this.subject = subject; + } + + @Override + public void checkSelf() throws Exception { + if(subject==null) throw new Exception("Operation's subject is Null"); + } + @Override + public void beforeDo(String options) { + //todo + } + @Override + public void afterDo(String options) { + //todo + } +} diff --git a/src/core/operation/UploadFileOperation.java b/src/core/operation/UploadFileOperation.java new file mode 100644 index 0000000..1368b6a --- /dev/null +++ b/src/core/operation/UploadFileOperation.java @@ -0,0 +1,8 @@ +package core.operation; + +public class UploadFileOperation extends Operation { + @Override + public void Do(String options) { + //todo + } +} diff --git a/src/core/process/AtomProcess.java b/src/core/process/AtomProcess.java new file mode 100644 index 0000000..78bd7ad --- /dev/null +++ b/src/core/process/AtomProcess.java @@ -0,0 +1,23 @@ +package core.process; + +import core.operation.Operation; +import core.user.User; + + +public class AtomProcess extends Process { + private User subject; + private Operation operation; + private String option; + + public AtomProcess(String subjectName, String operationName, String option, String info) throws Exception { + super(info); + this.subject = (User) User.getObjectByName(subjectName); + this.operation = (Operation) Operation.getObjectByName(operationName); + this.option = option; + this.operation.setSubject(this.subject); + } + + public void execute() throws Exception { + this.operation.execute(this.option); + } +} diff --git a/src/core/process/CompoundProcess.java b/src/core/process/CompoundProcess.java new file mode 100644 index 0000000..f874d6d --- /dev/null +++ b/src/core/process/CompoundProcess.java @@ -0,0 +1,17 @@ +package core.process; + +import java.util.List; + +public class CompoundProcess extends Process { + private List processes; + public CompoundProcess(String info) { + super(info); + } + + @Override + public void execute() throws Exception { + for(Process process:processes){ + process.execute(); + } + } +} diff --git a/src/core/process/Process.java b/src/core/process/Process.java new file mode 100644 index 0000000..3eeead6 --- /dev/null +++ b/src/core/process/Process.java @@ -0,0 +1,20 @@ +package core.process; + +import core.operation.Executable; +import core.operation.Operation; + +import java.io.File; +import java.util.List; + +public abstract class Process { + private String info; + + public Process(String info) { + this.info=info; + } + + public abstract void execute()throws Exception; + public String getInfo() { + return info; + } +} diff --git a/src/core/process/ProcessManagement.java b/src/core/process/ProcessManagement.java new file mode 100644 index 0000000..0408445 --- /dev/null +++ b/src/core/process/ProcessManagement.java @@ -0,0 +1,13 @@ +package core.process; + +import java.io.File; + +public class ProcessManagement { + private CompoundProcess processes; + public void setProcessesByJson(File file){ + //todo + } + public void execute() throws Exception { + processes.execute(); + } +} diff --git a/src/core/process/process.json b/src/core/process/process.json new file mode 100644 index 0000000..e12b972 --- /dev/null +++ b/src/core/process/process.json @@ -0,0 +1,3 @@ +{ + "fileName":"process" +} \ No newline at end of file diff --git a/src/core/user/Student.java b/src/core/user/Student.java new file mode 100644 index 0000000..8b68df1 --- /dev/null +++ b/src/core/user/Student.java @@ -0,0 +1,6 @@ +package core.user; + +public class Student extends User { + + +} diff --git a/src/core/user/Teacher.java b/src/core/user/Teacher.java new file mode 100644 index 0000000..30387c7 --- /dev/null +++ b/src/core/user/Teacher.java @@ -0,0 +1,5 @@ +package core.user; + +public class Teacher extends User { + +} diff --git a/src/core/user/User.java b/src/core/user/User.java new file mode 100644 index 0000000..9db2195 --- /dev/null +++ b/src/core/user/User.java @@ -0,0 +1,49 @@ +package core.user; + +import core.process.ProcessManagement; +import core.user.userFun.AccountManageable; +import core.user.userFun.Configurable; +import interfaces.AvailableByName; + +import java.io.File; + +public abstract class User implements AccountManageable, Configurable, AvailableByName { + //AvailableByName*******start****** + private static String classPath="core.user"; + public static String getClassPath(){ + return classPath; + } + public static Object getObjectByName(String name) throws Exception { + return Class.forName(getClassPath()+"."+name).getDeclaredConstructor().newInstance(); + } + //AvailableByName********end******* + + private String id; + private String password; + private ProcessManagement processManagement; + public User(){ + super(); + processManagement = setProcessManagement(new File("")); + } + public String getType(){ + return this.getClass().getName(); + } + + public void destroy(){ + core.user.utils.AccountManagement.destroy(this); + } + + public void logout(){ + core.user.utils.AccountManagement.logout(this); + } + + @Override + public void syncToDatabase() { + + } + + @Override + public void syncFromDatabase() { + + } +} diff --git a/src/core/user/json/student.json b/src/core/user/json/student.json new file mode 100644 index 0000000..da838e0 --- /dev/null +++ b/src/core/user/json/student.json @@ -0,0 +1,3 @@ +{ + "fileName":"student" +} \ No newline at end of file diff --git a/src/core/user/json/studentProcess.json b/src/core/user/json/studentProcess.json new file mode 100644 index 0000000..2ae94b0 --- /dev/null +++ b/src/core/user/json/studentProcess.json @@ -0,0 +1,3 @@ +{ + "fileName":"studentProcess" +} \ No newline at end of file diff --git a/src/core/user/json/teacher.json b/src/core/user/json/teacher.json new file mode 100644 index 0000000..9752493 --- /dev/null +++ b/src/core/user/json/teacher.json @@ -0,0 +1,3 @@ +{ + "fileName":"teacher" +} \ No newline at end of file diff --git a/src/core/user/json/teacherProcess.json b/src/core/user/json/teacherProcess.json new file mode 100644 index 0000000..f4ac0cc --- /dev/null +++ b/src/core/user/json/teacherProcess.json @@ -0,0 +1,3 @@ +{ + "fileName":"teacherProcess" +} \ No newline at end of file diff --git a/src/core/user/userFun/AccountManageable.java b/src/core/user/userFun/AccountManageable.java new file mode 100644 index 0000000..bc4cdc2 --- /dev/null +++ b/src/core/user/userFun/AccountManageable.java @@ -0,0 +1,13 @@ +package core.user.userFun; + + +import core.user.User; + +import java.util.List; + +public interface AccountManageable extends DatabaseSynchronizable{ + + void destroy(); + + void logout(); +} diff --git a/src/core/user/userFun/Configurable.java b/src/core/user/userFun/Configurable.java new file mode 100644 index 0000000..5a99594 --- /dev/null +++ b/src/core/user/userFun/Configurable.java @@ -0,0 +1,11 @@ +package core.user.userFun; + +import core.process.ProcessManagement; + +import java.io.File; + +public interface Configurable { + default ProcessManagement setProcessManagement(File file){ + return null; + } +} diff --git a/src/core/user/userFun/DatabaseSynchronizable.java b/src/core/user/userFun/DatabaseSynchronizable.java new file mode 100644 index 0000000..f7b4cc3 --- /dev/null +++ b/src/core/user/userFun/DatabaseSynchronizable.java @@ -0,0 +1,9 @@ +package core.user.userFun; + +public interface DatabaseSynchronizable { + + default void syncToDatabase(){ + + } + void syncFromDatabase(); +} diff --git a/src/core/user/utils/AccountManagement.java b/src/core/user/utils/AccountManagement.java new file mode 100644 index 0000000..489c04a --- /dev/null +++ b/src/core/user/utils/AccountManagement.java @@ -0,0 +1,22 @@ +package core.user.utils; + +import core.user.User; + +import java.util.List; + +public interface AccountManagement { + static User login(String id, String password, String User){ + //todo + return null; + } + static User register(List necessaryInfo, String User){ + //todo + return null; + } + static void logout(User user){ + //todo + } + static void destroy(User user){ + //todo + } +} diff --git a/src/dao/Utils.java b/src/dao/Utils.java new file mode 100644 index 0000000..d32e4f7 --- /dev/null +++ b/src/dao/Utils.java @@ -0,0 +1,4 @@ +package dao; + +public interface Utils { +} diff --git a/src/gdms/main.java b/src/gdms/main.java new file mode 100644 index 0000000..a6931aa --- /dev/null +++ b/src/gdms/main.java @@ -0,0 +1,18 @@ +package gdms; + +public class main { + public static void check()throws Exception{ + checkJson(); + } + + private static void checkJson() throws Exception{ + //todo + } + + public static void init(){ + } + public static void run() throws Exception { + check(); + init(); + } +} diff --git a/src/gdms/test.java b/src/gdms/test.java new file mode 100644 index 0000000..3c21baa --- /dev/null +++ b/src/gdms/test.java @@ -0,0 +1,11 @@ +package gdms; +import core.user.Student; +import core.user.User; + +import java.lang.reflect.InvocationTargetException; + +public class test { + public static void main(String argc[]){ + System.out.println(new Student().getType()); + } +} diff --git a/src/interfaces/AvailableByName.java b/src/interfaces/AvailableByName.java new file mode 100644 index 0000000..00c10af --- /dev/null +++ b/src/interfaces/AvailableByName.java @@ -0,0 +1,12 @@ +package interfaces; + +public interface AvailableByName { + //todo:@mustBeOverride + static String getClassPath(){ + return null; + } + static Object getObjectByName(String name) throws Exception { + return Class.forName(getClassPath()+"."+name).getDeclaredConstructor().newInstance(); + } + +} diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml new file mode 100644 index 0000000..d80081d --- /dev/null +++ b/web/WEB-INF/web.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/web/index.jsp b/web/index.jsp new file mode 100644 index 0000000..56088ef --- /dev/null +++ b/web/index.jsp @@ -0,0 +1,16 @@ +<%-- + Created by IntelliJ IDEA. + User: zhai_ + Date: 2018/11/30 + Time: 10:50 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" %> + + + $Title$ + + + $END$ + +