view Main/jungle-main/transaction/DefaultTreeNodeAttribute.cs @ 31:1466993c104c

byte[] to object Rewrite.
author Kazuma Takeda
date Fri, 20 Jan 2017 07:08:03 +0900
parents 9588ad364fdd
children 07318c10b894
line wrap: on
line source

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, object> attrs;

		public DefaultTreeNodeAttribute(List<TreeNode> _children, TreeMap<string, object> _attrs){
			children = _children;
			attrs = _attrs;
		}

		public TreeMap<string, object> 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, object> newMap = attrs.delete(_key);
			TreeNode newNode = new DefaultTreeNode(children, newMap);
			return DefaultEither<Error,TreeNode>.newB(newNode);
		}

		public Either<Error, TreeNode> put(string _key, object _value){
			if (_key == null || _value == null) {
				return DefaultEither<Error, TreeNode>.newA (NodeEditorError.NULL_VALUE_NOT_ALLOWED);
			}

			TreeMap<string, object> newMap = attrs.put (_key, _value);

			TreeNode newNode = new DefaultTreeNode (children, newMap);

			return DefaultEither<Error, TreeNode>.newB (newNode);
		}

		public object get(string _key) {
			if (_key == null)
				return null;
			
			object op = attrs.get(_key);
			if (op != null)
				return op;
			return null;
		}

		public T get<T> (string _key) {
			if (_key == null)
				return default(T);

			T op = (T)attrs.get (_key);
			if (op != null)
				return op;
			return default(T);
		}

		public string getString(string key) {
			return attrs.get(key).ToString();
		}

		public IEnumerator<string> getKeys(){
			return attrs.keys ();
		}

	}
}