Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/.name

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions src/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions src/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions src/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

124 changes: 124 additions & 0 deletions src/.idea/uiDesigner.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions src/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

77 changes: 77 additions & 0 deletions src/CliBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import InputCommand.ArgStrategy;
import InputCommand.UseSetCurrentDb;
import InputCommand.*;
import minidb.xmlParser.CurrentDBObserver;

import java.util.ArrayList;

public class CliBuilder {
public cli buildCli () {
cli c = new cli();

ArrayList<ArgStrategy> argslist = new ArrayList<>();
ArrayList<UseSetCurrentDb> usedInCurrentDBO = new ArrayList<>();

addArg add = new addArg();
argslist.add(add);
usedInCurrentDBO.add(add);

deleteArg delete = new deleteArg();
argslist.add(delete);
usedInCurrentDBO.add(delete);

readArg read = new readArg();
argslist.add(read);
usedInCurrentDBO.add(read);

schemaArg schema = new schemaArg();
argslist.add(schema);
usedInCurrentDBO.add(schema);

useArg use = new useArg();
argslist.add(use);
// usedInCurrentDBO.add(use);
CurrentDBObserver observer = new CurrentDBObserver(usedInCurrentDBO);
use.setCurrentDBO(observer);

dropArg drop = new dropArg();
argslist.add(drop);

helpArg help = new helpArg();
argslist.add(help);

listArg list = new listArg();
argslist.add(list);

newArg newA = new newArg();
argslist.add(newA);

c.setArgsList(argslist);

return c;
}
}
























6 changes: 6 additions & 0 deletions src/InputCommand/ArgStrategy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package InputCommand;

public interface ArgStrategy {
public boolean matchArg(String arg);
public void execCmd (String arg);
}
8 changes: 8 additions & 0 deletions src/InputCommand/UseSetCurrentDb.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package InputCommand;

import minidb.xmlParser.CurrentDBObserver;
import minidb.xmlParser.DatabaseFile;

public interface UseSetCurrentDb {
public void setCurrentDb(String path);
}
29 changes: 29 additions & 0 deletions src/InputCommand/addArg.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package InputCommand;

import constants.errors;
import minidb.xmlParser.DatabaseFile;

public class addArg implements ArgStrategy, UseSetCurrentDb {
private DatabaseFile CurrentDb;

@Override
public void setCurrentDb(String path){
this.CurrentDb = new DatabaseFile(path);
}

@Override
public boolean matchArg(String arg) {
String[] cmdArgs = arg.split(" ");
return cmdArgs[0].equals("add");
}

@Override
public void execCmd(String arg) {
String[] cmdArgs = arg.split(" ");
if (CurrentDb != null) {
CurrentDb.addData(cmdArgs[1]);
} else {
System.out.println(errors.NO_DATABASE_SELECTED);
}
}
}
29 changes: 29 additions & 0 deletions src/InputCommand/deleteArg.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package InputCommand;

import constants.errors;
import minidb.xmlParser.DatabaseFile;

public class deleteArg implements ArgStrategy, UseSetCurrentDb {
private DatabaseFile CurrentDb;

@Override
public void setCurrentDb(String path){
this.CurrentDb = new DatabaseFile(path);
}

@Override
public boolean matchArg(String arg) {
String[] cmdArgs = arg.split(" ");
return cmdArgs[0].equals("delete");
}

@Override
public void execCmd(String arg) {
String[] cmdArgs = arg.split(" ");
if (CurrentDb != null) {
CurrentDb.deleteData(cmdArgs[1]);
} else {
System.out.println(errors.NO_DATABASE_SELECTED);
}
}
}
18 changes: 18 additions & 0 deletions src/InputCommand/dropArg.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package InputCommand;

import minidb.xmlParser.RegistryFile;

public class dropArg implements ArgStrategy{
@Override
public boolean matchArg(String arg) {
String[] cmdArgs = arg.split(" ");
return cmdArgs[0].equals("drop");
}

@Override
public void execCmd(String arg) {
String[] cmdArgs = arg.split(" ");
RegistryFile registry = RegistryFile.getInstance();
registry.deleteDatabase(cmdArgs[1]);
}
}
16 changes: 16 additions & 0 deletions src/InputCommand/helpArg.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package InputCommand;

import constants.constants;

public class helpArg implements ArgStrategy{
@Override
public boolean matchArg(String arg) {
String[] cmdArgs = arg.split(" ");
return cmdArgs[0].equals("help;");
}

@Override
public void execCmd(String arg) {
System.out.println(constants.HELP_COMMANDS);
}
}
17 changes: 17 additions & 0 deletions src/InputCommand/listArg.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package InputCommand;

import minidb.xmlParser.RegistryFile;

public class listArg implements ArgStrategy{
@Override
public boolean matchArg(String arg) {
String[] cmdArgs = arg.split(" ");
return cmdArgs[0].equals("list");
}

@Override
public void execCmd(String arg) {
RegistryFile registry = RegistryFile.getInstance();
registry.listAllDatabases();
}
}
Loading