view src/main/csharp/jp.ac.u-ryukyu.ie.cr/jungle-network/core/NetworkDefaultJungle.cs @ 17:01a08cf4b2d9

Liq Files
author Kazuma
date Mon, 07 Nov 2016 01:05:24 +0900
parents abe0c247f5a5
children
line wrap: on
line source

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class NetworkDefaultJungle : Jungle {

	private Journal Journal;
	private TreeMap<string, JungleTree> Trees;
	private string Uuid;
	private TreeEditor Editor;

	public NetworkDefaultJungle(Journal jou, string uid, TreeEditor edit) {
		this.Journal = jou;
		this.Trees   = new TreeMap<string, JungleTree>();
		this.Uuid    = uid;
		this.Editor  = edit;
	}

	public JungleTree getTreeByName (string name) {
		return Trees.get(name);
	}

	public JungleTree createNewTree(string name) {
		ChangeList list  = new InnerChangeList(this.Uuid, name);
		TreeNode root                = new DefaultTreeNode();
		InterfaceTraverser traverser = new InterfaceTraverser(root, true);
		TreeContext tc               = new DefaultTreeContext(root, null, list, this.Uuid, name, 0, traverser);
		JungleTree newTree = new NetworkDefaultJungleTree(name, tc, this.Uuid, Journal.getWriter(), this.Editor);
		if (Trees.put(name, newTree) != null) {
			return 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();
		}
	}
}