public void setName(VarI1 var, Name.Asserted name) { if (this.vars.Contain(var)) { if ( this.namings .Where(x => x.Key != var) .Select(x => x.Value) .Contain_eqDefault <Name.Asserted, nilnul.name.Eq>(name) ) { throw new Exception("there are conflicting names."); } else { _namings[var] = name; } } else { if ( this.namings .Select(x => x.Value) .Contain_eqDefault <Name.Asserted, nilnul.name.Eq>(name) ) { throw new Exception("there are conflicting names."); } else { _namings[var] = name; // If the specified key is not found, a get operation throws a KeyNotFoundException, and a set operation creates a new element with the specified key. } } }
public T getVarByName <T>(Name.Asserted name) where T : VarI1 { if (containName(name)) { return((T)(_namings.Where(x => x.Value == name).First().Key)); } throw new Exception("no such name"); }
public bool containName(Name.Asserted name) { if ( this.namings .Select(x => x.Value) .Contain_eqDefault <Name.Asserted, nilnul.name.Eq>(name) ) { return(true); } return(false); }
public T getOrCreateVar <T>(Name.Asserted name) where T : VarI1, new() { if (containName(name)) { return(getVarByName <T>(name)); } else { var v = new T(); setName(v, name); return(v); } }