1,提交需求报告

2,修改Operation的option属性的类型为Map<String, Object>
3,进一步理清各个关系
hechu
zhai_lw 6 years ago
parent 6d6b4121d5
commit 4d62390572

Binary file not shown.

Binary file not shown.

@ -1,19 +1,21 @@
package core.operation;
import java.util.Map;
public interface Executable {
default void execute(String options) throws Exception {
default void execute(Map<String, Object> options) throws Exception {
checkSelf();
beforeDo(options);
Do(options);
afterDo(options);
beforeRun(options);
run(options);
afterRun(options);
}
void checkSelf ()throws Exception;
void beforeDo(String options);
void beforeRun(Map<String, Object> options);
void Do(String options);
void run(Map<String, Object> options);
void afterDo(String options);
void afterRun(Map<String, Object> options);
}

@ -2,22 +2,14 @@ package core.operation;
import core.user.User;
import interfaces.AvailableByName;
public abstract class Operation implements Executable, AvailableByName {
import java.util.Map;
//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*******
public abstract class Operation implements Executable {
Map<String, Object> options;
private User subject;
public Operation(){
Operation(){
super();
}
public User getSubject() {
@ -32,11 +24,11 @@ public abstract class Operation implements Executable, AvailableByName {
if(subject==null) throw new Exception("Operation's subject is Null");
}
@Override
public void beforeDo(String options) {
//todo
public void beforeRun(Map<String, Object> options) {
core.operation.utils.util.checkOptions(core.utils.ConfigurationFileManagement.getConfigurationFile(this.getClass().getName()),options);
}
@Override
public void afterDo(String options) {
public void afterRun(Map<String, Object> options) {
//todo
}
}

@ -1,8 +1,13 @@
package core.operation;
import java.io.File;
import java.util.Map;
public class UploadFileOperation extends Operation {
Map<String, Object> options;
@Override
public void Do(String options) {
public void run(Map<String, Object> options) {
//todo
}
}

@ -0,0 +1,4 @@
{
"java.lang.String": "activity",
"lava.io.File": "file"
}

@ -0,0 +1,10 @@
package core.operation.utils;
import java.io.File;
import java.util.Map;
public interface util {
static void checkOptions(File jsonFile, Map<String, Object> options){
}
}

@ -3,16 +3,18 @@ package core.process;
import core.operation.Operation;
import core.user.User;
import java.util.Map;
public class AtomProcess extends Process {
private User subject;
private Operation operation;
private String option;
private Map<String, Object> option;
public AtomProcess(String subjectName, String operationName, String option, String info) throws Exception {
public AtomProcess(String subjectName, String operationName, Map<String, Object> option, String info) throws Exception {
super(info);
this.subject = (User) User.getObjectByName(subjectName);
this.operation = (Operation) Operation.getObjectByName(operationName);
this.subject = (User) core.utils.GetObjectByName.getUserByName(subjectName);
this.operation = (Operation) core.utils.GetObjectByName.getOperationByName(operationName);
this.option = option;
this.operation.setSubject(this.subject);
}

@ -1,3 +0,0 @@
{
"fileName":"process"
}

@ -1,6 +1,7 @@
package core.user;
public class Student extends User {
import java.io.File;
public class Student extends User {
}

@ -1,5 +1,7 @@
package core.user;
import java.io.File;
public class Teacher extends User {
}

@ -2,21 +2,11 @@ package core.user;
import core.process.ProcessManagement;
import core.user.userFun.AccountManageable;
import core.user.userFun.Configurable;
import interfaces.AvailableByName;
import core.user.userFun.ProcessConfigurable;
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*******
public abstract class User implements AccountManageable, ProcessConfigurable{
private String id;
private String password;

@ -1,3 +0,0 @@
{
"fileName":"student"
}

@ -1,3 +0,0 @@
{
"fileName":"studentProcess"
}

@ -1,3 +0,0 @@
{
"fileName":"teacher"
}

@ -1,3 +0,0 @@
{
"fileName":"teacherProcess"
}

@ -2,8 +2,6 @@ package core.user.userFun;
public interface DatabaseSynchronizable {
default void syncToDatabase(){
}
void syncToDatabase();
void syncFromDatabase();
}

@ -4,7 +4,7 @@ import core.process.ProcessManagement;
import java.io.File;
public interface Configurable {
public interface ProcessConfigurable {
default ProcessManagement setProcessManagement(File file){
return null;
}

@ -0,0 +1,9 @@
package core.utils;
import java.io.File;
public interface ConfigurationFileManagement {
static File getConfigurationFile(String className){
return null;
}
}

@ -0,0 +1,12 @@
package core.utils;
public interface GetObjectByName {
String userClassPath = "core.user";
String operationClassPath = "core.operation";
static Object getUserByName(String name) throws Exception {
return Class.forName(userClassPath+"."+name).getDeclaredConstructor().newInstance();
}
static Object getOperationByName(String name) throws Exception{
return Class.forName(operationClassPath+"."+name).getDeclaredConstructor().newInstance();
}
}

@ -1,12 +0,0 @@
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();
}
}
Loading…
Cancel
Save