protected override async Task <ImportStatementList> AssignUpsertedReferences(ImportStatementList record) { record.ListIdentifier = await _strings.UpsertAsync(record.ListIdentifier); record.ListIdentifierId = record.ListIdentifier?.AsciiStringReferenceId ?? record.ListIdentifierId; return(record); }
private static void addImports(string pImport) { if (string.IsNullOrEmpty(pImport)) { return; } ImportStatementList.AddImport(pImport); }
private static void addImports(CsAttributes pList, FactoryExpressionCreator pCreator) { if (pList == null) { return; } List <AttributeItem> vals = GetAttributeValue(pList, NAMESPACE_ATTRIBUTE, pCreator); if (vals.Count == 0 || vals[0].Parameters.Count == 0) { return; } ImportStatementList.AddImport((string)vals[0].Parameters[0]); }
private static void addImports(IEnumerable <CsEntityAttribute> pList) { if (pList == null) { return; } List <AttributeItem> vals = GetAttributeValue(pList, NAMESPACE_ATTRIBUTE); if (vals.Count == 0 || vals[0].Parameters.Count == 0) { return; } ImportStatementList.AddImport((string)vals[0].Parameters[0]); }
public static void Parse(TheEvent pEvent, CodeBuilder pBuilder) { if (pEvent.IsFlashEvent) { return; } ImportStatementList.AddImport(@"System.EventHandler"); bool isStatic = pEvent.Modifiers.Contains("static"); pBuilder.AppendFormat(@"private {1} var _e{0}:EventHandler; {2}{1} function get {0}():EventHandler {{ if (_e{0} == null) _e{0} = new EventHandler(); return _e{0}; }}" , pEvent.Name, isStatic ? "static" : string.Empty, JsHelpers.ConvertModifiers(pEvent.Modifiers, _notValidClassMod) //,isStatic ? pEvent.MyClass.Name : "this" ); pBuilder.AppendLine(); }
public Expression Parse(CsExpression pStatement, FactoryExpressionCreator pCreator) { CsInvocationExpression ex = (CsInvocationExpression)pStatement; List <string> indexes = new List <string>(); if (ex.argument_list != null) { foreach (CsArgument argument in ex.argument_list.list) { indexes.Add(pCreator.Parse(argument.expression).Value); } } TheClass c = TheClassFactory.Get(pStatement, pCreator); TheMethod m; CsEntityMethod method = ex.entity as CsEntityMethod; CsEntityDelegate entityDelegate = ex.entity as CsEntityDelegate; string name = pCreator.Parse(ex.expression).Value; //call es de tipo super. Necesito saber cuál es la clase heredada) if (name.EndsWith("super.", StringComparison.Ordinal)) { c = c.Base; m = c.GetMethod(method, pCreator); name = name + m.Name; } else if (method != null) { //si es una expresión de tipo xx.yy.method(), tengo que revisar la expresión //porque la invocación se da como expresión completa... c = TheClassFactory.Get(method.parent, pCreator); m = c.GetMethod(method, pCreator); if (m.IsExtensionMethod) { int fnIndex = name.IndexOf(m.Name); if (fnIndex > 0) { fnIndex--; } indexes.Insert(0, name.Substring(0, fnIndex)); if (Helpers.HasAttribute(((CsEntityClass)method.parent).attributes, "As3ExtensionAttribute")) { name = m.MyClass.FullName; name = name.Substring(0, name.LastIndexOf('.')); name = name + "." + m.Name; ImportStatementList.AddImport(name); name = m.Name; } else { name = m.FullName; } } else { name = name.Replace(m.Name, m.Name); } } else if (entityDelegate != null) { //es un evento? if (ex.expression.ec == expression_classification.ec_event_access) { TheEvent theEvent = c.GetEvent(name); name = theEvent.IsFlashEvent ? "dispatchEvent" : string.Format(@"if (_e{0}) _e{0}.fire", name); } } //patch if (name.Contains("{0}")) { string p = indexes[0]; indexes.RemoveAt(0); name = string.Format(name, p, string.Join(", ", indexes.ToArray())); } else { name = name + "(" + string.Join(", ", indexes.ToArray()) + ")"; } return(new Expression( name, ex.entity_typeref )); }
protected override Expression <Func <ImportStatementList, bool> > FindExisting(ImportStatementList record) => existing => existing.ListIdentifierId == record.ListIdentifierId;
protected override IEnumerable <object> EnumerateReferences(ImportStatementList record) { yield return(record.ImportStatementListAssociations); yield return(record.ListIdentifier); }
public void Parse(CsNamespace pNameSpace, IEnumerable <CsUsingDirective> pUsing, string pOutputFolder) { if (pNameSpace == null) { return; } _outputFolder = pOutputFolder; string name = getNamespace(pNameSpace); string packDir = pOutputFolder + name.Replace('.', '\\'); Directory.CreateDirectory(packDir); CodeBuilder builder = new CodeBuilder(); foreach (CsNode cn in pNameSpace.member_declarations) { builder.Append("package "); builder.Append(name); builder.AppendLineAndIndent(" {"); StringBuilder usings = new StringBuilder(); parseUsing(pUsing, usings); parseUsing(pNameSpace.using_directives, usings); Using = usings.ToString(); builder.Append(usings); builder.AppendLine(ClassParser.IMPORT_MARKER); ImportStatementList.Init(); CsClass csClass = cn as CsClass; if (csClass != null) { ClassParser.Parse(csClass, builder, _creator); if (ClassParser.IsExtension) { File.WriteAllText(packDir + "\\" + ClassParser.ExtensionName + ".as", builder.ToString()); } else { File.WriteAllText(packDir + "\\" + csClass.identifier.identifier + ".as", builder.ToString()); } builder.Length = 0; continue; } CsInterface csInterface = cn as CsInterface; if (csInterface != null) { InterfaceParser.Parse(csInterface, builder, _creator); File.WriteAllText(packDir + "\\" + csInterface.identifier.identifier + ".as", builder.ToString()); builder.Length = 0; continue; } if (csClass == null) { throw new Exception("Unknown type"); } } }
public static ImportStatementList Merge(this ImportStatementList instance, in ImportStatementList given)