From da3b6a117dd42e2911430a03fbc1208f80019765 Mon Sep 17 00:00:00 2001 From: jsrobson10 Date: Wed, 10 Jul 2019 12:15:25 +1000 Subject: [PATCH] Changed BdfNamedList in IBdfClassManager to BdfObject --- README.md | 90 +++++++++----------------- db.bdf | Bin 0 -> 59 bytes src/bdf/classes/BdfClassManager.java | 4 +- src/bdf/classes/IBdfClassManager.java | 6 +- src/tests/TestClass.java | 14 ++-- 5 files changed, 44 insertions(+), 70 deletions(-) create mode 100755 db.bdf diff --git a/README.md b/README.md index 0152096..e7e7abc 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ - Creating an object - Arrays - Named lists -- Example BDF program +- Saving classes ### Overview @@ -166,70 +166,38 @@ for(String key : list) ``` +### Saving classes -### Example BDF program +Classes can be saved with `BdfClassManager` and by +implementing the `IBdfClassManager` interface, +adding 2 functions `BdfClassLoad` and `BdfClassSave`. +`BdfClassLoad` is for checking and loading data from +bdf into the classes variables, while `BdfClassSave` +is for packing pre-existing variables into bdf format. +A BdfClassManager can be used to pass the `IBdfClassManager` +interface into. ```java -// Create a new BdfObject instance -BdfObject bdf = new BdfObject(); +class HelloWorld implements IBdfClassManager +{ -// Create a named list -BdfNamedList bdf_nl = new BdfNamedList(); - -// Add some variables to the named list -bdf_nl.set("boolean", BdfObject.with(true)); -bdf_nl.set("an_int", BdfObject.with((int)53)); -bdf_nl.set("double", new BdfObject().setDouble(632.5)); - -// Output some checks on BdfNamedList -System.out.println(bdf_nl.contains("an_int")); // true -System.out.println(bdf_nl.contains("this_dosn't_exist")); // false - -// Create an array -BdfArray bdf_array = new BdfArray(); - -// Add some values to the array -bdf_array.add(BdfObject.with("Hello, World!")); -bdf_array.add(BdfObject.with(1234567890L)); -bdf_array.set(1, BdfObject.with((short)432)); - -// Output the size of the array -System.out.println(bdf_array.size()); // 2 - -// Output the type of the 2nd item in the array, value types are in BdfTypes -System.out.println(bdf_array.get(1).getType()); // 3 (BdfTypes.SHORT) - -// Save the array to the named list -bdf_nl.set("array", BdfObject.with(bdf_array)); - -// Set the named list to the bdf object -bdf.setNamedList(bdf_nl); - -// Serialize the data -byte[] bdf_data = bdf.serialize().getBytes(); - - - -// Load the serialized data -BdfObject bdf2 = new BdfObject(new BdfDatabase(bdf_data)); - -// Show the human readable serialized data -System.out.println(bdf2.serializeHumanReadable()); // {"boolean": true, "an_int": 53I, "double": 632.5D, "array": ["Hello, World!", 432S]} - -// Show the value of the boolean in the named list -System.out.println(bdf2.getNamedList().get("boolean").getBoolean()); // true - -// Show the value of item 0 in the array -System.out.println(bdf2.getNamedList().get("array").getArray().get(0).getString()); // Hello, World! - -// Check if the double exists -System.out.println(bdf2.getNamedList().contains("double")); // true - -// Remove the double from the named list -bdf2.getNamedList().remove("double"); - -// Check if the double exists -System.out.println(bdf2.getNamedList().contains("double")); // false + @Override + BdfClassLoad(BdfObject bdf) + { + + + } + + @Override + BdfClassSave(BdfObject bdf) + { + + + + } + +} + ``` \ No newline at end of file diff --git a/db.bdf b/db.bdf new file mode 100755 index 0000000000000000000000000000000000000000..fb18c43dc5eea989131b0b4e9d2a82dafb6f3d21 GIT binary patch literal 59 ncmd;NU|?WN&PgmTHUzTxIe`RYCXird1QH+~MA8VzLYD*p$({wr literal 0 HcmV?d00001 diff --git a/src/bdf/classes/BdfClassManager.java b/src/bdf/classes/BdfClassManager.java index da4184d..28cff0e 100755 --- a/src/bdf/classes/BdfClassManager.java +++ b/src/bdf/classes/BdfClassManager.java @@ -22,11 +22,11 @@ public class BdfClassManager } public void save(BdfObject bdf) { - method.BdfClassSave(bdf.getNamedList()); + method.BdfClassSave(bdf); } public void load(BdfObject bdf) { - method.BdfClassLoad(bdf.getNamedList()); + method.BdfClassLoad(bdf); } public void save() { diff --git a/src/bdf/classes/IBdfClassManager.java b/src/bdf/classes/IBdfClassManager.java index e4b16df..68a0f5d 100755 --- a/src/bdf/classes/IBdfClassManager.java +++ b/src/bdf/classes/IBdfClassManager.java @@ -1,9 +1,9 @@ package bdf.classes; -import bdf.types.BdfNamedList; +import bdf.types.BdfObject; public interface IBdfClassManager { - public void BdfClassLoad(BdfNamedList bdf); - public void BdfClassSave(BdfNamedList bdf); + public void BdfClassLoad(BdfObject bdf); + public void BdfClassSave(BdfObject bdf); } diff --git a/src/tests/TestClass.java b/src/tests/TestClass.java index 4e1255c..f90d78d 100755 --- a/src/tests/TestClass.java +++ b/src/tests/TestClass.java @@ -3,19 +3,25 @@ package tests; import bdf.classes.IBdfClassManager; import bdf.types.BdfNamedList; import bdf.types.BdfObject; +import bdf.types.BdfTypes; public class TestClass implements IBdfClassManager { int i = 0; @Override - public void BdfClassLoad(BdfNamedList bdf) { - this.i = bdf.contains("i") ? bdf.get("i").getInteger() : 0; + public void BdfClassLoad(BdfObject bdf) + { + if(bdf.getType() != BdfTypes.NAMED_LIST) bdf.setNamedList(new BdfNamedList()); + BdfNamedList nl = bdf.getNamedList(); + this.i = nl.contains("i") ? nl.get("i").getInteger() : 0; } @Override - public void BdfClassSave(BdfNamedList bdf) { - bdf.set("i", BdfObject.with(i)); + public void BdfClassSave(BdfObject bdf) + { + bdf.setNamedList(new BdfNamedList()); + bdf.getNamedList().set("i", BdfObject.with(i)); } public void tick()