diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..5b7e300 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +MiniDB \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..5db8ab8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ 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/src/.idea/.gitignore b/src/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/src/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/src/.idea/misc.xml b/src/.idea/misc.xml new file mode 100644 index 0000000..09e91bf --- /dev/null +++ b/src/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/.idea/modules.xml b/src/.idea/modules.xml new file mode 100644 index 0000000..e083187 --- /dev/null +++ b/src/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/.idea/uiDesigner.xml b/src/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/src/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/.idea/vcs.xml b/src/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/src/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/CliBuilder.java b/src/CliBuilder.java new file mode 100644 index 0000000..438bbde --- /dev/null +++ b/src/CliBuilder.java @@ -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 argslist = new ArrayList<>(); + ArrayList 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; + } +} + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/InputCommand/ArgStrategy.java b/src/InputCommand/ArgStrategy.java new file mode 100644 index 0000000..dc92df6 --- /dev/null +++ b/src/InputCommand/ArgStrategy.java @@ -0,0 +1,6 @@ +package InputCommand; + +public interface ArgStrategy { + public boolean matchArg(String arg); + public void execCmd (String arg); +} diff --git a/src/InputCommand/UseSetCurrentDb.java b/src/InputCommand/UseSetCurrentDb.java new file mode 100644 index 0000000..3f1e050 --- /dev/null +++ b/src/InputCommand/UseSetCurrentDb.java @@ -0,0 +1,8 @@ +package InputCommand; + +import minidb.xmlParser.CurrentDBObserver; +import minidb.xmlParser.DatabaseFile; + +public interface UseSetCurrentDb { + public void setCurrentDb(String path); +} diff --git a/src/InputCommand/addArg.java b/src/InputCommand/addArg.java new file mode 100644 index 0000000..ad3ca5c --- /dev/null +++ b/src/InputCommand/addArg.java @@ -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); + } + } +} diff --git a/src/InputCommand/deleteArg.java b/src/InputCommand/deleteArg.java new file mode 100644 index 0000000..aa58c15 --- /dev/null +++ b/src/InputCommand/deleteArg.java @@ -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); + } + } +} diff --git a/src/InputCommand/dropArg.java b/src/InputCommand/dropArg.java new file mode 100644 index 0000000..645af79 --- /dev/null +++ b/src/InputCommand/dropArg.java @@ -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]); + } +} diff --git a/src/InputCommand/helpArg.java b/src/InputCommand/helpArg.java new file mode 100644 index 0000000..a6d5f55 --- /dev/null +++ b/src/InputCommand/helpArg.java @@ -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); + } +} diff --git a/src/InputCommand/listArg.java b/src/InputCommand/listArg.java new file mode 100644 index 0000000..2f13abb --- /dev/null +++ b/src/InputCommand/listArg.java @@ -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(); + } +} diff --git a/src/InputCommand/newArg.java b/src/InputCommand/newArg.java new file mode 100644 index 0000000..99ed48f --- /dev/null +++ b/src/InputCommand/newArg.java @@ -0,0 +1,18 @@ +package InputCommand; + +import minidb.xmlParser.RegistryFile; + +public class newArg implements ArgStrategy{ + @Override + public boolean matchArg(String arg) { + String[] cmdArgs = arg.split(" "); + return cmdArgs[0].equals("new"); + } + + @Override + public void execCmd(String arg) { + String[] cmdArgs = arg.split(" "); + RegistryFile registry = RegistryFile.getInstance(); + registry.createNewDatabase(cmdArgs[1]); + } +} diff --git a/src/InputCommand/notFoundArg.java b/src/InputCommand/notFoundArg.java new file mode 100644 index 0000000..1eb7e84 --- /dev/null +++ b/src/InputCommand/notFoundArg.java @@ -0,0 +1,14 @@ +package InputCommand; + +public class notFoundArg implements ArgStrategy{ + @Override + public boolean matchArg(String arg) { + return false; + } + + @Override + public void execCmd(String arg) { + String[] cmdArgs = arg.split(" "); + System.out.println("UNKNOWN COMMAND: " + cmdArgs[0] + "\nType `help;` for commands list"); + } +} diff --git a/src/InputCommand/readArg.java b/src/InputCommand/readArg.java new file mode 100644 index 0000000..7cef79e --- /dev/null +++ b/src/InputCommand/readArg.java @@ -0,0 +1,33 @@ +package InputCommand; + +import constants.errors; +import minidb.xmlParser.DatabaseFile; + +public class readArg 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("read"); + } + + @Override + public void execCmd(String arg) { + String[] cmdArgs = arg.split(" "); + if (CurrentDb != null) { + if (cmdArgs.length == 1) { + CurrentDb.readData(); + } else { + CurrentDb.readData(cmdArgs[1]); + } + } else { + System.out.println(errors.NO_DATABASE_SELECTED); + } + } +} diff --git a/src/InputCommand/schemaArg.java b/src/InputCommand/schemaArg.java new file mode 100644 index 0000000..5fa66d0 --- /dev/null +++ b/src/InputCommand/schemaArg.java @@ -0,0 +1,41 @@ +package InputCommand; + +import constants.errors; +import minidb.xmlParser.DatabaseFile; + +public class schemaArg 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("schema"); + } + + @Override + public void execCmd(String arg) { + String[] cmdArgs = arg.split(" "); + if (CurrentDb != null) { + String xy = cmdArgs[1]; + + if (xy.equals("show")) { + System.out.println(CurrentDb.getSchema()); + } else { + String[] schemaVals = xy.split(","); + if (schemaVals.length > 1) { + CurrentDb.createSchema(xy); + } else { + System.out.println("There should be at least 2 columns of data"); + } + } + + } else { + System.out.println(errors.NO_DATABASE_SELECTED); + } + } +} diff --git a/src/InputCommand/useArg.java b/src/InputCommand/useArg.java new file mode 100644 index 0000000..504457a --- /dev/null +++ b/src/InputCommand/useArg.java @@ -0,0 +1,42 @@ +package InputCommand; + +import minidb.xmlParser.CurrentDBObserver; +import minidb.xmlParser.DatabaseFile; +import minidb.xmlParser.RegistryFile; + +public class useArg implements ArgStrategy, UseSetCurrentDb{ + private DatabaseFile CurrentDb; + private CurrentDBObserver currentDBO; + + public void setCurrentDBO(CurrentDBObserver currentDBO) { + this.currentDBO = currentDBO; + } + + @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("use"); + } + + @Override + public void execCmd(String arg) { + String[] cmdArgs = arg.split(" "); + RegistryFile registry = RegistryFile.getInstance(); + String path = registry.getDatabasePath(cmdArgs[1], false); + + if (path != null) { + CurrentDb = new DatabaseFile(path); + currentDBO.updateAll(path); + CurrentDb.EditMode(); + System.out.println(path); + System.out.println("Successfully loaded Database named: " + cmdArgs[0]); + } else { + System.out.println("Database not found"); + } + } +} diff --git a/src/MainClass.java b/src/MainClass.java new file mode 100644 index 0000000..8f581a7 --- /dev/null +++ b/src/MainClass.java @@ -0,0 +1,8 @@ +public class MainClass { + public static void main(String[] args) { +// System.out.println("my smell"); + CliBuilder cb = new CliBuilder(); + cli db_cli = cb.buildCli(); + db_cli.run(); + } +} diff --git a/src/MiniDB-design-pattern.iml b/src/MiniDB-design-pattern.iml new file mode 100644 index 0000000..b107a2d --- /dev/null +++ b/src/MiniDB-design-pattern.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/cli.java b/src/cli.java index d99e647..d5cfc77 100644 --- a/src/cli.java +++ b/src/cli.java @@ -1,54 +1,41 @@ +import java.util.ArrayList; import java.util.Scanner; + +import InputCommand.ArgStrategy; +import InputCommand.notFoundArg; import minidb.xmlParser.DatabaseFile; import minidb.xmlParser.RegistryFile; import constants.*; -/* -To do -- Comment the code -- Table Layout for the data. -- usage of threads -*/ - -/** - * Javadoc comments. All are static methods because we are not creating any - * object of this class. - * - * @author Chanakya - */ public class cli { + private ArrayList argsList; + + RegistryFile registry = RegistryFile.getInstance(); + DatabaseFile CurrentDb; + + public cli() { + } - /** - * The Registry File is a XML file which contains the information about the all - * the databases created. It acts as a pointer to the Database File. So, We - * instantly load the registry file. - */ - static RegistryFile registry; - - /** - * This attribute is for storing the DatabaseFile instance. Which is assigned - * when the user calls the command "use". if the user does not call the command - * "use" then the We show a error message. - */ - static DatabaseFile CurrentDb; - - public static void main(String[] args) { + public void setArgsList(ArrayList argsList) { + this.argsList = argsList; + } + + public void run() { print(constants.HEADING); - registry = new RegistryFile(constants.DATA_XML_PATH); Scanner input = new Scanner(System.in); while (true) { System.out.print(constants.CMD_PREFIX); - String currentCmd = input.nextLine(); + String currentCmdCommand = input.nextLine(); - // break if user wants to exit - if (currentCmd.equals("exit;")) { + if (currentCmdCommand.equals("exit;")) { break; } long startTime = System.nanoTime(); - cliInputs(currentCmd); + executeCliInputs(currentCmdCommand); +// executeCliInputs1(currentCmdCommand); long endTime = System.nanoTime(); long exeTime = (endTime - startTime) / 1000000; @@ -58,116 +45,157 @@ public static void main(String[] args) { input.close(); } - private static void cliInputs(String input) { + private void executeCliInputs1 (String cmdInp) { + ArgStrategy responseStrat = new notFoundArg(); + + for(ArgStrategy arg: argsList) { + if(arg.matchArg(cmdInp)){ + responseStrat = arg; + break; + } + } + + responseStrat.execCmd(cmdInp); + } + + private void executeCliInputs(String input) { String[] cmdArgs = input.split(" "); switch (cmdArgs[0]) { case "new": { - registry.createNewDatabase(cmdArgs[1]); + createNewDatabase(cmdArgs[1]); break; } case "use": { - String path = registry.getDatabasePath(cmdArgs[1], false); - - if (path != null) { - CurrentDb = new DatabaseFile(path); - CurrentDb.EditMode(); - print("Successfully loaded Database named: " + cmdArgs[1]); - } else { - print("Database not found"); - } + useDatabase(cmdArgs[1]); break; } case "list": { - registry.listAllDatabases(); + listAllDatabase(); break; } case "help;": { - print(constants.HELP_COMMANDS); + showHelp(); break; } - case "info": { - // For querying the meta info of the database - // TODO - } - case "schema": { - if (CurrentDb != null) { - String xy = cmdArgs[1]; - - if (xy.equals("show")) { - print(CurrentDb.getSchema()); - } else { - String[] schemaVals = xy.split(","); - if (schemaVals.length > 1) { - CurrentDb.createSchema(xy); - } else { - print("There should be atleast 2 columns of data"); - } - } - - } else { - print(errors.NO_DATABASE_SELECTED); - } + schemaCommand(cmdArgs[1]); break; } case "add": { - if (CurrentDb != null) { - CurrentDb.addData(cmdArgs[1]); - } else { - print(errors.NO_DATABASE_SELECTED); - } - + addRecordToDB(cmdArgs[1]); break; } case "read": { - if (CurrentDb != null) { - if (cmdArgs.length == 1) { - CurrentDb.readData(); - } else { - CurrentDb.readData(cmdArgs[1]); - } - } else { - print(errors.NO_DATABASE_SELECTED); - } + readFromDB(input); break; } case "drop": { - registry.deleteDatabase(cmdArgs[1]); - break; - } - - case "update": { - // TODO - if (CurrentDb != null) { - } + dropTable(cmdArgs[1]); break; } case "delete": { - if (CurrentDb != null) { - CurrentDb.deleteData(cmdArgs[1]); - } else { - print(errors.NO_DATABASE_SELECTED); - } + deleteFromDB(cmdArgs[1]); break; } default: { - print("UNKNOWN COMMAND: " + cmdArgs[0] + "\nType `help;` for commands list"); + unknownCommandMsg(cmdArgs[0]); break; } } } + private void deleteFromDB(String cmdArgs) { + if (CurrentDb != null) { + CurrentDb.deleteData(cmdArgs); + } else { + print(errors.NO_DATABASE_SELECTED); + } + } + + private void dropTable(String cmdArgs) { + registry.deleteDatabase(cmdArgs); + } + + private void readFromDB(String inpArgs) { + String[] cmdArgs = inpArgs.split(" "); + if (CurrentDb != null) { + if (cmdArgs.length == 1) { + CurrentDb.readData(); + } else { + CurrentDb.readData(cmdArgs[1]); + } + } else { + print(errors.NO_DATABASE_SELECTED); + } + } + + private void addRecordToDB(String cmdArgs) { + if (CurrentDb != null) { + CurrentDb.addData(cmdArgs); + } else { + print(errors.NO_DATABASE_SELECTED); + } + } + + private void schemaCommand(String cmdArgs) { + if (CurrentDb != null) { + String xy = cmdArgs; + + if (xy.equals("show")) { + print(CurrentDb.getSchema()); + } else { + String[] schemaVals = xy.split(","); + if (schemaVals.length > 1) { + CurrentDb.createSchema(xy); + } else { + print("There should be at least 2 columns of data"); + } + } + + } else { + print(errors.NO_DATABASE_SELECTED); + } + } + + private void unknownCommandMsg(String cmdArgs) { + print("UNKNOWN COMMAND: " + cmdArgs + "\nType `help;` for commands list"); + } + + private void showHelp() { + print(constants.HELP_COMMANDS); + } + + private void listAllDatabase() { + registry.listAllDatabases(); + } + + private void useDatabase(String name) { + String path = registry.getDatabasePath(name, false); + + if (path != null) { + CurrentDb = new DatabaseFile(path); + CurrentDb.EditMode(); + print("Successfully loaded Database named: " + name); + } else { + print("Database not found"); + } + } + + private void createNewDatabase(String name) { + registry.createNewDatabase(name); + } + private static void print(String x) { System.out.println(x); } diff --git a/src/constants/constants.java b/src/constants/constants.java index 28e2017..8cc48be 100644 --- a/src/constants/constants.java +++ b/src/constants/constants.java @@ -4,6 +4,10 @@ * A Global store for all the constants used in the application. * In future, we can let the user a create configuration file to modify the constants. */ + +/** + * constants can be a singleton + */ public class constants { public static String VERSION = "v0.3.1"; diff --git a/src/minidb/xmlParser/CurrentDBObserver.java b/src/minidb/xmlParser/CurrentDBObserver.java new file mode 100644 index 0000000..a9f0210 --- /dev/null +++ b/src/minidb/xmlParser/CurrentDBObserver.java @@ -0,0 +1,19 @@ +package minidb.xmlParser; + +import InputCommand.UseSetCurrentDb; + +import java.util.ArrayList; + +public class CurrentDBObserver { + private final ArrayList strategyArrayList; + + public CurrentDBObserver(ArrayList strategyArrayList) { + this.strategyArrayList = strategyArrayList; + } + + public void updateAll(String path) { + for (UseSetCurrentDb argStart: strategyArrayList) { + argStart.setCurrentDb(path); + } + } +} diff --git a/src/minidb/xmlParser/DatabaseFile.java b/src/minidb/xmlParser/DatabaseFile.java index a577eed..949e865 100644 --- a/src/minidb/xmlParser/DatabaseFile.java +++ b/src/minidb/xmlParser/DatabaseFile.java @@ -8,9 +8,9 @@ */ public class DatabaseFile extends XMLFiles { // prefix `X` to avoid namespace conflict - private static String TAG_STORAGE = "Xstorage"; - private static String TAG_META = "Xmeta"; // incomplete feature - private static String TAG_DATA = "Xdata"; + private static final String TAG_STORAGE = "Xstorage"; + private static final String TAG_META = "Xmeta"; // incomplete feature + private static final String TAG_DATA = "Xdata"; private Element metaElem; private Element storageElem; diff --git a/src/minidb/xmlParser/RegistryFile.java b/src/minidb/xmlParser/RegistryFile.java index a44a4c8..0037b4b 100644 --- a/src/minidb/xmlParser/RegistryFile.java +++ b/src/minidb/xmlParser/RegistryFile.java @@ -8,16 +8,21 @@ import org.w3c.dom.*; import constants.constants; -/** - * Contains the methods for performing CRUD operations on the registry file - * 'minidb.xml' - */ public class RegistryFile extends XMLFiles { - public RegistryFile(String path) { + private static RegistryFile registryFile; + + private RegistryFile(String path) { super(path); } + public static RegistryFile getInstance() + { + if (registryFile == null) + registryFile = new RegistryFile(constants.DATA_XML_PATH); + return registryFile; + } + void createFile() { Element rootElem = doc.createElement("root"); Element emptyDb = this.addDbEntry("empty", "true"); @@ -31,13 +36,6 @@ void createFile() { System.out.println("Intialized: " + xmlFile.getPath()); } - /** - * - * @param name - Name of the database - * @param disabled - Always false for user created databases - * @return The XML Element which can be appended into the doc - * @throws ParserConfigurationException - */ private Element addDbEntry(String name, String disabled) { Document doc = this.doc; @@ -65,12 +63,6 @@ private Element addDbEntry(String name, String disabled) { return databaseElem; } - /** - * Method for creating a new database. Which means both creating a entry in the - * minidb.xml and A new database-xml file. - * - * @param name - The name of the database - */ public void createNewDatabase(String name) { try { if (!this.isDatabaseExists(name)) { @@ -89,9 +81,6 @@ public void createNewDatabase(String name) { } } - /** - * To list all the created databases in the register - */ public void listAllDatabases() { NodeList list = this.doc.getElementsByTagName("name"); @@ -102,12 +91,6 @@ public void listAllDatabases() { } } - /** - * Checks if the database name already exists in the register - * - * @param name - The name of the database - * @return The index of the database in the register, if not found returns -1 - */ public int checkDatabase(String name) { int x = -1; NodeList list = this.doc.getElementsByTagName("name"); diff --git a/src/minidb/xmlParser/XMLFiles.java b/src/minidb/xmlParser/XMLFiles.java index b31faff..ef5f0df 100644 --- a/src/minidb/xmlParser/XMLFiles.java +++ b/src/minidb/xmlParser/XMLFiles.java @@ -31,6 +31,9 @@ public XMLFiles(String path) { } } + /** + * already used factory pattern + */ private void load(boolean NoFile) throws ParserConfigurationException, SAXException, IOException { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); @@ -39,7 +42,6 @@ private void load(boolean NoFile) throws ParserConfigurationException, SAXExcept createFile(); // abstract method to create the file } else { doc = docBuilder.parse(xmlFile); - ; } } @@ -47,6 +49,7 @@ private void load(boolean NoFile) throws ParserConfigurationException, SAXExcept /** * Call this method to update the XML file. + * also used abstract factory */ protected void updateFile() { try { diff --git a/src/out/production/MiniDB-design-pattern/.idea/.gitignore b/src/out/production/MiniDB-design-pattern/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/src/out/production/MiniDB-design-pattern/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/src/out/production/MiniDB-design-pattern/.idea/misc.xml b/src/out/production/MiniDB-design-pattern/.idea/misc.xml new file mode 100644 index 0000000..09e91bf --- /dev/null +++ b/src/out/production/MiniDB-design-pattern/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/out/production/MiniDB-design-pattern/.idea/modules.xml b/src/out/production/MiniDB-design-pattern/.idea/modules.xml new file mode 100644 index 0000000..e083187 --- /dev/null +++ b/src/out/production/MiniDB-design-pattern/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/out/production/MiniDB-design-pattern/.idea/vcs.xml b/src/out/production/MiniDB-design-pattern/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/src/out/production/MiniDB-design-pattern/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/out/production/MiniDB-design-pattern/MiniDB-design-pattern.iml b/src/out/production/MiniDB-design-pattern/MiniDB-design-pattern.iml new file mode 100644 index 0000000..b107a2d --- /dev/null +++ b/src/out/production/MiniDB-design-pattern/MiniDB-design-pattern.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file