diff --git a/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandData.java b/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandData.java new file mode 100644 index 0000000..cad524f --- /dev/null +++ b/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandData.java @@ -0,0 +1,14 @@ +package space.kklochko.jdbc_hospital_example.cli.commands; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.Map; + +@AllArgsConstructor +@Data +public class CommandData { + public String name; + public String datatype; + public Map arguments; +} diff --git a/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandEntities.java b/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandEntities.java new file mode 100644 index 0000000..b262f82 --- /dev/null +++ b/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandEntities.java @@ -0,0 +1,28 @@ +package space.kklochko.jdbc_hospital_example.cli.commands; + +import lombok.AllArgsConstructor; +import lombok.Data; +import space.kklochko.jdbc_hospital_example.db.repositories.AbstractRepository; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; + +@AllArgsConstructor +@Data +public class CommandEntities { + private AbstractRepository repository; + private Method method; + + public ArrayList run() { + try { + return (ArrayList) method.invoke(getRepository()); + } catch (InvocationTargetException e) { + System.err.println(e.getMessage()); + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + System.err.println(e.getMessage()); + throw new RuntimeException(e); + } + }; +} diff --git a/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandEntity.java b/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandEntity.java new file mode 100644 index 0000000..2689bb7 --- /dev/null +++ b/src/main/java/space/kklochko/jdbc_hospital_example/cli/commands/CommandEntity.java @@ -0,0 +1,32 @@ +package space.kklochko.jdbc_hospital_example.cli.commands; + +import lombok.Data; +import space.kklochko.jdbc_hospital_example.db.repositories.AbstractRepository; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +@Data +public class CommandEntity { + private AbstractRepository repository; + private Method method; + private A argument; + + public CommandEntity(AbstractRepository repository, Method method, A argument) { + this.repository = repository; + this.method = method; + this.argument = argument; + } + + public boolean run() { + try { + return (Boolean) method.invoke(getRepository(), getArgument()); + } catch (InvocationTargetException e) { + System.err.println(e.getMessage()); + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + System.err.println(e.getMessage()); + throw new RuntimeException(e); + } + }; +}