1,提交需求报告

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

Binary file not shown.

Binary file not shown.

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

@ -1,8 +1,13 @@
package core.operation; package core.operation;
import java.io.File;
import java.util.Map;
public class UploadFileOperation extends Operation { public class UploadFileOperation extends Operation {
Map<String, Object> options;
@Override @Override
public void Do(String options) { public void run(Map<String, Object> options) {
//todo //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.operation.Operation;
import core.user.User; import core.user.User;
import java.util.Map;
public class AtomProcess extends Process { public class AtomProcess extends Process {
private User subject; private User subject;
private Operation operation; 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); super(info);
this.subject = (User) User.getObjectByName(subjectName); this.subject = (User) core.utils.GetObjectByName.getUserByName(subjectName);
this.operation = (Operation) Operation.getObjectByName(operationName); this.operation = (Operation) core.utils.GetObjectByName.getOperationByName(operationName);
this.option = option; this.option = option;
this.operation.setSubject(this.subject); this.operation.setSubject(this.subject);
} }

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

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

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

@ -2,21 +2,11 @@ package core.user;
import core.process.ProcessManagement; import core.process.ProcessManagement;
import core.user.userFun.AccountManageable; import core.user.userFun.AccountManageable;
import core.user.userFun.Configurable; import core.user.userFun.ProcessConfigurable;
import interfaces.AvailableByName;
import java.io.File; import java.io.File;
public abstract class User implements AccountManageable, Configurable, AvailableByName { public abstract class User implements AccountManageable, ProcessConfigurable{
//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 id;
private String password; 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 { public interface DatabaseSynchronizable {
default void syncToDatabase(){ void syncToDatabase();
}
void syncFromDatabase(); void syncFromDatabase();
} }

@ -4,7 +4,7 @@ import core.process.ProcessManagement;
import java.io.File; import java.io.File;
public interface Configurable { public interface ProcessConfigurable {
default ProcessManagement setProcessManagement(File file){ default ProcessManagement setProcessManagement(File file){
return null; 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