/// <summary> /// Attempts to create a string representation of a string which is both sufficiently /// helpful but not overly verbose. Use the .Name if provided. /// </summary> /// <param name="named"></param> /// <returns></returns> public static string ToString(INamed named) { if (!string.IsNullOrEmpty(named.Name)) { return($"<{named.Name}>"); } if (named is IParser parser) { var pType = parser.GetType(); var pTypeName = pType.Name; if (pType.DeclaringType != null) { if (pTypeName == "Parser" || pTypeName == "SingleParser" || pTypeName == "MultiParser") { return($"<{pType.DeclaringType.Name} Id={parser.Id}>"); } return($"<{pType.DeclaringType.Name}.{pType.Name} Id={parser.Id}>"); } return($"<{pType.Name} Id={parser.Id}>"); } var objType = named.GetType(); if (objType.DeclaringType != null) { return($"<{objType.DeclaringType.Name}.{objType.Name}>"); } return($"<objType.Name>"); }
public static List <String> getAlias(this INamed named) { if (named == null) { return(null); } if (named.GetType().FindMember("alias") != null) { return(new List <string>(named.FindMemberValue <List <String> >("alias"))); } TextAttribute txtAttr = named.GetType().GetCustomAttribute <TextAttribute>(); if (txtAttr == null || txtAttr.Alias == null) { return(null); } return(new List <string>(txtAttr.Alias)); }
public static String getCaption(this INamed named) { if (named == null) { return(""); } if (named.GetType().FindMember("caption") != null) { return(named.FindMemberValue <String>("caption")); } TextAttribute txtAttr = named.GetType().GetCustomAttribute <TextAttribute>(); if (txtAttr == null) { return(""); } return(txtAttr.Caption); }
public override void Execute() { base.Execute(); if (!_explicitNewValuePassed) { var dialog = new TypeTextOrCancelDialog("Rename " + _nameable.GetType().Name, "Name", 2000, _nameable.Name); if (dialog.ShowDialog() == DialogResult.OK) { while (UsefulStuff.IsBadName(dialog.ResultText)) { if (YesNo("Name contains illegal characters, do you want to use it anyway?", "Bad Name")) { //user wants to use the name anyway break; } //user does not want to use the bad name //type a new one then dialog = new TypeTextOrCancelDialog("Rename " + _nameable.GetType().Name, "Name", 2000, dialog.ResultText); //no? in that case lets just give up altogether if (dialog.ShowDialog() != DialogResult.OK) { return; } } _newValue = dialog.ResultText; } else { return; } } _nameable.Name = _newValue; EnsureNameIfCohortIdentificationAggregate(); _nameable.SaveToDatabase(); Publish((DatabaseEntity)_nameable); }
public override void Execute() { base.Execute(); if (!_explicitNewValuePassed) { if (TypeText("Rename " + _nameable.GetType().Name, "Name", 2000, _nameable.Name, out string text)) { while (UsefulStuff.IsBadName(text)) { if (YesNo("Name contains illegal characters, do you want to use it anyway?", "Bad Name")) { //user wants to use the name anyway break; } //user does not want to use the bad name //type a new one then if (!TypeText("Rename " + _nameable.GetType().Name, "Name", 2000, _nameable.Name, out text)) { return; } } _newValue = text; } else { return; } } _nameable.Name = _newValue; EnsureNameIfCohortIdentificationAggregate(); _nameable.SaveToDatabase(); Publish((DatabaseEntity)_nameable); }
public override IType check(Context context) { INamed named = context.getRegistered(name); if (named == null) { named = context.getRegisteredDeclaration <IDeclaration>(name); } if (named == null) { throw new SyntaxError("Unknown identifier:" + name); } else if (named is Variable) // local variable { return(named.GetIType(context)); } else if (named is LinkedVariable) // local variable { return(named.GetIType(context)); } else if (named is IParameter) // named argument { return(named.GetIType(context)); } else if (named is CategoryDeclaration) // any p with x { return(named.GetIType(context)); } else if (named is AttributeDeclaration) // in category method { return(named.GetIType(context)); } else if (named is MethodDeclarationMap) // global method or closure { IEnumerator <IMethodDeclaration> decls = ((MethodDeclarationMap)named).Values.GetEnumerator(); decls.MoveNext(); return(new MethodType(decls.Current)); } else { throw new SyntaxError(name + " is not a value or method:" + named.GetType().Name); } }