public static ClassModelReference CreateClassModelReference(this IDesignModelCollection designModelCollection, INamespace ns, IParseLocationInfo parseLocation, string name, string type = null) { var pos = name.IndexOf(':'); if (pos != -1) { name = name.Substring(0, pos); type = name.Substring(pos + 1); } pos = name.LastIndexOf('.'); if (pos == -1) { return(new ClassModelReference(name, ns, type, parseLocation)); } var nsName = name.Substring(0, pos); name = name.Substring(pos + 1); ns = designModelCollection.GetNamespace(nsName); return(new ClassModelReference(name, ns, type, parseLocation)); }
public Runner( ISchemaCollection schemaCollection, IXmlElementParser xmlElementParser, IDesignModelParser designModelParser, IDesignModelCollection designModelCollection, IOutputModelCollection outputModelCollection, IStageHandlerRegistry stageHandlers, IDataTypeRegistry dataTypeRegistry, IEnumerable <IClassNamingConvention> classNamingConventions ) { this._schemaCollection = schemaCollection; this._xmlElementParser = xmlElementParser; this._designModelParser = designModelParser; this._context = new Context { Schemas = schemaCollection, DesignModels = designModelCollection, OutputModels = outputModelCollection, DataTypeRegistry = dataTypeRegistry, MainOutputConfiguration = designModelCollection.RootNamespace.OutputConfiguration, StageHandlers = stageHandlers }; }
public void ResolveReferences(IDesignModelCollection designModelCollection) { _outgoingRelations.ForEach(relation => { relation.ResolveReferences(designModelCollection); relation.Destination.AddIncomingRelation(relation); }); }
public void Parse(IXmlElement rootElement, IDesignModelCollection collection) { var context = new DesignModelParseContext(collection) { Namespace = collection.RootNamespace, XmlElement = rootElement }; this.ParseDesignModelElements(context); }
public static void Resolve(this ClassModelReference reference, IDesignModelCollection designModelCollection) { if (reference.Target != null) { return; } var designModel = reference.Namespace.GetDesignModel(reference, true); if (!(designModel is IClassModel classDesignModel)) { throw new ParseException(reference.ParseLocation, $"Design model '{reference.Name}' must be a class-like design model."); } reference.Target = classDesignModel; }
public TestRunner( ISchemaCollection schemaCollection, IXmlElementParser designModelElementParser, IDesignModelParser designModelParser, IDesignModelCollection designModelCollection, IOutputModelCollection outputModelCollection, IStageHandlerRegistry stageHandlers, IDataTypeRegistry dataTypeRegistry, IEnumerable <IClassNamingConvention> classNamingConventions ) : base( schemaCollection, designModelElementParser, designModelParser, designModelCollection, outputModelCollection, stageHandlers, dataTypeRegistry, classNamingConventions ) { }
public DesignModelParseContext(IDesignModelCollection collection) { Collection = collection; }
public ClassDerivationParser(IDesignModelCollection designModelCollection) { _designModelCollection = designModelCollection; }
public void ResolveReferences(IDesignModelCollection designModelCollection) { DestinationReference?.Resolve(designModelCollection); }
public ClassMappingParser(IDesignModelCollection designModelCollection) { _designModelCollection = designModelCollection; }
public EntityRelationParser(IDesignModelCollection designModelCollection) { _designModelCollection = designModelCollection; }