diff Main/jungle-main/transaction/DefaultTreeNodeAttribute.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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Main/jungle-main/transaction/DefaultTreeNodeAttribute.cs	Thu Dec 15 22:52:48 2016 +0900
@@ -0,0 +1,74 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System;
+using System.Text;
+
+namespace JungleDB {
+	public class DefaultTreeNodeAttribute : TreeNodeAttributes {
+		public List<TreeNode> children;
+		public TreeMap<string, byte[]> attrs;
+
+		public DefaultTreeNodeAttribute(List<TreeNode> _children, TreeMap<string, byte[]> _attrs){
+			children = _children; // null?
+			attrs = _attrs;
+		}
+
+		public TreeMap<string, byte[]> getAttributesAsRawMap(){
+			return attrs;
+		}
+
+		public Either<Error, TreeNode> delete(string _key) {
+			if (_key == null) {
+				return DefaultEither<Error,TreeNode>.newA (NodeEditorError.NULL_VALUE_NOT_ALLOWED);
+			}
+
+			if (null == attrs.getRoot()) {
+				return DefaultEither<Error,TreeNode>.newA(NodeEditorError.DELETE_KEY_NOT_FOUND);
+			}
+
+			TreeMap<string, byte[]> newMap = attrs.delete(_key);
+			TreeNode newNode = new DefaultTreeNode(children, newMap);
+			return DefaultEither<Error,TreeNode>.newB(newNode);
+		}
+
+		public Either<Error, TreeNode> put(string _key, byte[] _value){
+			if (_key == null || _value == null) {
+				return DefaultEither<Error, TreeNode>.newA (NodeEditorError.NULL_VALUE_NOT_ALLOWED);
+			}
+
+			TreeMap<string, byte[]> newMap = attrs.put (_key, _value);
+
+			TreeNode newNode = new DefaultTreeNode (children, newMap);
+
+			return DefaultEither<Error, TreeNode>.newB (newNode);
+		}
+
+		public byte[] get(string _key) {
+			if (_key == null) {
+				return new byte[1]{0};
+			}
+			byte[] op = attrs.get(_key); //null
+			if (op != null) {
+				return op;
+			}
+			return new byte[1]{0};
+		}
+
+		public string getString(string key, Encoding enc) {
+			char[] attribute = key.ToCharArray();
+			if (attribute != null){
+				return new string(attribute);
+			}
+			return null;
+		}
+
+		public string getString(string key) {
+			return null;
+		}
+		public IEnumerator<string> getKeys(){
+			return attrs.keys ();
+		}
+
+	}
+}