Mercurial > hg > Database > jungle-sharp
view Main/jungle-main/DefaultJungle.cs @ 20:1f99e150f336
fix folder and add Object Mapper.
author | Kazuma Takeda |
---|---|
date | Thu, 15 Dec 2016 22:52:48 +0900 |
parents | |
children | 9588ad364fdd |
line wrap: on
line source
using System.Collections; using System.Collections.Generic; using System; using UnityEngine; namespace JungleDB { public class DefaultJungle : Jungle { private Journal journal; private TreeMap <string, JungleTree> trees; private string uuid; private TreeEditor editor; public void Start(){ DefaultJungle j = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser())); JungleTree t = j.createNewTree ("fuga"); JungleTreeEditor e1 = t.getTreeEditor (); DefaultNodePath root = new DefaultNodePath (); Either<Error, JungleTreeEditor> either = e1.addNewChildAt (root, 0); e1 = either.b(); either = e1.addNewChildAt (root.add (0), 0); e1 = either.b (); e1.commit (); } public DefaultJungle(Journal journal, string uuid, TreeEditor editor){ this.journal = new NullJournal(); this.trees = new TreeMap <string, JungleTree>(); this.uuid = uuid; this.editor = editor; } public JungleTree getTreeByName(string name) { JungleTree jungle_tree = trees.get(name); if (jungle_tree != null) { return jungle_tree; } else { Debug.Log ("そのTreeは無いようですね。"); return null; } } public JungleTree createNewTree(string name) { ChangeList list = new InnerChangeList(uuid,name); DefaultTreeNode root = new DefaultTreeNode (); InterfaceTraverser traverser = new InterfaceTraverser (root, true); TreeContext tc = new DefaultTreeContext (root, null, list, uuid, name, 0, traverser); JungleTree newTree = new DefaultJungleTree (tc, uuid, journal.getWriter (), editor); if (newTree != null) { trees = trees.put (name, newTree); } else { Debug.Log ("こんばんは、nullです。"); } return newTree; } public class InnerChangeList : ChangeList { string uuid; string name; IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } public IEnumerator<TreeOperation> GetEnumerator() { return iterator (); } // construct public InnerChangeList(string _uuid, string _name) { this.uuid = _uuid; this.name = _name; } public IEnumerator<TreeOperation> iterator() { List<TreeOperation> nil = new List<TreeOperation>(); return nil.iterator(); } public string uuids() { return uuid; } public string getTreeName() { return name; } public TreeOperationLog getLog() { return new DefaultTreeOperationLog(); } } } }