aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/IML/Node.cs
diff options
context:
space:
mode:
authorj-p <jp.bruyere@live.be>2018-12-11 23:20:54 +0100
committerGitHub <noreply@github.com>2018-12-11 23:20:54 +0100
commiteef19b533a0e2ce17f2762d3acfc5990496eaaa0 (patch)
tree6f09101bd8097c1a4ca6a216597bb5d4941453fa /src/IML/Node.cs
parent65820f61457262b631eba35283c55135aecbc5f2 (diff)
parentf6732851fe211e22ff91716ac83dffc0cf09d620 (diff)
Merge pull request #44 from jpbruyere/xlib
Xlib
Diffstat (limited to 'src/IML/Node.cs')
-rw-r--r--src/IML/Node.cs101
1 files changed, 0 insertions, 101 deletions
diff --git a/src/IML/Node.cs b/src/IML/Node.cs
deleted file mode 100644
index 2ca90e8c..00000000
--- a/src/IML/Node.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Node.cs
-//
-// Author:
-// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Reflection;
-using System.Reflection.Emit;
-using System.Collections.Generic;
-
-namespace Crow.IML
-{
- /// <summary>
- /// IML Node are defined with a type and the index in the parent,
- /// </summary>
- public struct Node
- {
- #region CTOR
- public Node (Type crowType, int _index = 0)
- {
- CrowType = crowType;
- Index = _index;
- }
- #endregion
-
- /// <summary> Current node type</summary>
- public Type CrowType;
- /// <summary> Index in parent, -1 for template</summary>
- public int Index;
-
- /// <summary>
- /// retrieve the child addition method depending on the type of this node
- /// </summary>
- /// <returns>The child addition method</returns>
- /// <param name="childIdx">child index or, template root node has index == -1</param>
- public MethodInfo GetAddMethod(int childIdx){
- if (typeof (Group).IsAssignableFrom (CrowType))
- return CompilerServices.miAddChild;
- if (typeof (Container).IsAssignableFrom (CrowType))
- return CompilerServices.miSetChild;
- if (typeof (TemplatedContainer).IsAssignableFrom (CrowType))
- return childIdx < 0 ? CompilerServices.miLoadTmp : CompilerServices.piContent.GetSetMethod();
- if (typeof (TemplatedGroup).IsAssignableFrom (CrowType))
- return childIdx < 0 ? CompilerServices.miLoadTmp : CompilerServices.miAddItem;
- if (typeof (TemplatedControl).IsAssignableFrom (CrowType))
- return CompilerServices.miLoadTmp;
- return null;
- }
-
- #region Equality Compare
- public override bool Equals (object obj)
- {
- if (obj == null)
- return false;
- Node n = (Node)obj;
- return CrowType == n.CrowType && Index == n.Index;
- }
- public override int GetHashCode ()
- {
- return CrowType.GetHashCode () ^ Index.GetHashCode ();
- }
- #endregion
-
- public bool HasTemplate {
- get { return typeof (TemplatedControl).IsAssignableFrom (CrowType);}
- }
- public bool IsTemplatedGroup {
- get { return typeof (TemplatedGroup).IsAssignableFrom (CrowType);}
- }
-
- public static implicit operator string (Node sn)
- {
- return sn.ToString ();
- }
- public override string ToString ()
- {
- return string.Format ("{0}.{1}", CrowType.FullName, Index);
- }
- }
-}