public ModuleInfo(Assembly _asm) { _name = _asm.GetName().Name; _version = DepVersion.VersionParse (_asm.GetName().Version.ToString ()); ModuleDependencyAttribute _depAttr = ((ModuleDependencyAttribute)(_asm.GetCustomAttributes (typeof (ModuleDependencyAttribute), false)[0])); if (_depAttr != null) { DepLexer _lexer = new DepLexer (new StringReader (_depAttr.DepString)); DepParser _parser = new DepParser (_lexer); // woot...lets do this! _dependencies = new DepNode (); _parser.expr (_dependencies); } else _dependencies = null; ModuleRoleAttribute _roleAttr = ((ModuleRoleAttribute)(_asm.GetCustomAttributes (typeof (ModuleRoleAttribute), false)[0])); if (_roleAttr != null) { _roles = _roleAttr.Roles; } else throw new ModuleInfoException (string.Format ("The module {0} has no defined roles, and is not a valid NModule module.", _asm.GetName ().Name)); _owner = _asm; }
protected bool IsEmptyVersion(DepVersion _ver) { if (_ver == null) return true; return ((_ver.Major == -1) && (_ver.Minor == -1) && (_ver.Build == -1) && (_ver.Revision == -1)); }
public ModuleInfo(Assembly _asm) { _name = _asm.GetName().Name; _version = DepVersion.VersionParse (_asm.GetName().Version.ToString ()); ModuleDependencyAttribute _depAttr; ModuleRoleAttribute _roleAttr; try { _depAttr = ((ModuleDependencyAttribute)(_asm.GetCustomAttributes (typeof (ModuleDependencyAttribute), false)[0])); } catch (IndexOutOfRangeException) { _depAttr = null; } if (_depAttr != null) { DepLexer _lexer = new DepLexer (new StringReader (_depAttr.DepString)); DepParser _parser = new DepParser (_lexer); // woot...lets do this! _dependencies = new DepNode (); _parser.expr (_dependencies); Console.WriteLine ("Dependency tree for {0}", _name); Console.WriteLine ("This should match {0}", _depAttr.DepString); Console.WriteLine ("----------------------------------------------------"); PrintDepTree (_dependencies, 0); Console.WriteLine ("----------------------------------------------------"); _depstring = _depAttr.DepString; } else _dependencies = null; try { _roleAttr = ((ModuleRoleAttribute)(_asm.GetCustomAttributes (typeof (ModuleRoleAttribute), false)[0])); } catch (IndexOutOfRangeException) { _roleAttr = null; } if (_roleAttr != null) { _roles = _roleAttr.Roles; } else throw new ModuleInfoException (string.Format ("The module {0} has no defined roles, and is not a valid NModule module.", _asm.GetName ().Name)); _owner = _asm; }
public static DepVersion VersionParse(string v) { // Here we go :) DepVersion ver = new DepVersion (); string[] vparts = v.Split ('.'); ver.Major = Int32.Parse (vparts[0]); ver.Minor = Int32.Parse (vparts[1]); if (vparts.Length > 2) ver.Build = Int32.Parse(vparts[2]); if (vparts.Length > 3) ver.Revision = Int32.Parse(vparts[3]); return ver; }
protected bool VersionMatch(DepVersion _ver, DepVersion _dver, DepOps _op) { Version _mver, _drver; if (_dver.Major == -1) return true; _mver = new Version (_dver.Major != -1 ? _ver.Major : 0, _dver.Minor != -1 ? _ver.Minor : 0, _dver.Build != -1 ? _ver.Build : 0, _dver.Revision != -1 ? _ver.Revision : 0); _drver = new Version (_dver.Major != -1 ? _dver.Major : 0, _dver.Minor != -1 ? _dver.Minor : 0, _dver.Build != -1 ? _dver.Build : 0, _dver.Revision != -1 ? _dver.Revision : 0); int vres = _mver.CompareTo (_drver); switch (_op) { case DepOps.Equal: return vres == 0; case DepOps.GreaterThan: return vres > 0; case DepOps.GreaterThanEqual: return vres > 0 || vres == 0; case DepOps.LessThan: return vres < 0; case DepOps.LessThanEqual: return vres < 0 || vres == 0; case DepOps.NotEqual: return vres != 0; } return false; }
/// <summary> /// Sets the version based on a string representation of it. /// </summary> /// <remarks>None.</remarks> public void SetVersion(string _ver) { _version = DepVersion.VersionParse (_ver); }
/// <summary> /// Creates a new DepConstraint object. /// </summary> /// <remarks>None.</remarks> public DepConstraint() { _name = ""; _version = new DepVersion (-1, -1, -1, -1); }
protected bool IsEmptyVersion(DepVersion _ver) { return ((_ver.Major == -1) && (_ver.Minor == -1) && (_ver.Build == -1) && (_ver.Revision == -1)); }
protected bool VersionMatch(DepVersion _dver, DepVersion _ver, DepOps _op) { bool mjgt = false, mngt = false, bgt = false, rgt = false; bool mjeq = false, mneq = false, beq = false, req = false; bool mjlt = false, mnlt = false, blt = false, rlt = false; bool mji = false, mni = false, bi = false, ri = false; if (_dver.Major == -1) { mji = true; } else if (_dver.Major > _ver.Major) { mjgt = true; } else if (_dver.Major == _ver.Major) { mjeq = true; } else { mjlt = true; } if (_dver.Minor == -1) { mni = true; } else if (_dver.Minor > _ver.Minor) { mngt = true; } else if (_dver.Minor == _ver.Minor) { mneq = true; } else { mnlt = true; } if (_dver.Build == -1) { bi = true; } else if (_dver.Build > _ver.Build) { bgt = true; } else if (_dver.Build == _ver.Build) { beq = true; } else { blt = true; } if (_dver.Revision == -1) { ri = true; } else if (_dver.Revision > _ver.Revision) { rgt = true; } else if (_dver.Revision == _ver.Revision) { req = true; } else { rlt = true; } if (mji) return true; if ((_op == DepOps.Equal) || (_op == DepOps.GreaterThanEqual) || (_op == DepOps.LessThanEqual)) { if (mjeq && mni) return true; if (mjeq && mneq && bi) return true; if (mjeq && mneq && beq && ri) return true; if (mjeq && mneq && beq && req) return true; } if (_op == DepOps.NotEqual) { if (!mjeq && mni) return true; if (!mjeq && !mneq && bi) return true; if (!mjeq && !mneq && !beq && ri) return true; if (!mjeq && !mneq && !beq && !req) return true; } if (_op == DepOps.GreaterThan) { if (mjlt) return false; if (mjgt) return true; if (mjeq && mnlt) return false; if (mngt) return true; if (mjeq && mneq && blt) return false; if (bgt) return true; if (mjeq && mneq && beq && rlt) return false; if (rgt) return true; } if (_op == DepOps.LessThan) { if (mjgt) return false; if (mjlt) return true; if (mjeq && mngt) return false; if (mnlt) return true; if (mjeq && mneq && bgt) return false; if (blt) return true; if (mjeq && mneq && beq && rgt) return false; if (rlt) return true; } if (_op == DepOps.Loaded) return true; return false; }
/// <summary> /// Creates a new ModuleInfo belonging to the given assembly. /// </summary> /// <remarks>None.</remarks> /// <param name="_asm">The owning assembly.</param> public ModuleInfo(Assembly _asm) { _name = _asm.GetName ().Name; _version = DepVersion.VersionParse (_asm.GetName().Version.ToString ()); ModuleDependencyAttribute _depAttr; ModuleRoleAttribute _roleAttr; try { _depAttr = ((ModuleDependencyAttribute)(_asm.GetCustomAttributes (typeof (ModuleDependencyAttribute), false)[0])); } catch (IndexOutOfRangeException) { _depAttr = null; } if (_depAttr != null) { DepLexer _lexer = new DepLexer (new StringReader (_depAttr.DepString)); DepParser _parser = new DepParser (_lexer); // woot...lets do this! _dependencies = new DepNode (); _parser.expr (_dependencies); } else _dependencies = null; try { _roleAttr = ((ModuleRoleAttribute)(_asm.GetCustomAttributes (typeof (ModuleRoleAttribute), false)[0])); } catch (IndexOutOfRangeException) { _roleAttr = null; } if (_roleAttr != null) { _roles = _roleAttr.Roles; } else _roles = null; _owner = _asm; }