public virtual void Visit(CPart part) { //todo://why isn't it directly calling the method above? if (part is CClassAttribute) { Visit(part as CClassAttribute); } if (part is CMethodAttribute) { Visit(part as CMethodAttribute); } if (part is CDockerComposeFile) { Visit(part as CDockerComposeFile); } if (part is CMetaRepo) { Visit(part as CMetaRepo); } if (part is CRepo) { Visit(part as CRepo); } if (part is CDockerFileService) { Visit(part as CDockerFileService); } if (part is CEnum) { Visit(part as CEnum); } }
public override void Visit(CPart part) { if (part is CTableType) { var tableType = part as CTableType; //var ddl = (part as STableType).TableTypeBody; if (tableType.DatabaseType == Utility.DataStoreTypes.SqlServer) { var converter = new CTableTypeToSqlServerTableTypeConverter(); var ddl = converter.Convert(part as CTableType); _codeWriter.Write(ddl); } else if (tableType.DatabaseType == Utility.DataStoreTypes.Postgres) { var converter = new CTableTypeToPostgresTableTypeConverter(); var ddl = converter.Convert(part as CTableType); _codeWriter.Write(ddl); } else { throw new NotImplementedException(); } } else if (part is CTable) { var table = part as CTable; if (table.DatabaseType == Utility.DataStoreTypes.SqlServer) { if (!string.IsNullOrEmpty(table.TableText)) { _codeWriter.Write(table.TableText); } else { var converter = new CTableToSqlServerTableConverter(); var ddl = converter.Convert(table); _codeWriter.Write(ddl); } } else if (table.DatabaseType == Utility.DataStoreTypes.Postgres) { var converter = new CTableToPostgresTableConverter(); var ddl = converter.Convert(table); _codeWriter.Write(ddl); } else if (table.DatabaseType == Utility.DataStoreTypes.MySql) { var converter = new CTableToMySqlTableConverter(); var ddl = converter.Convert(table); _codeWriter.Write(ddl); } else { throw new NotImplementedException(); } } else if (part is CView) { var ddl = (part as CView).ViewText; _codeWriter.Write(ddl); } else if (part is CSchema) { var schema = part as CSchema; if (schema.DatabaseType == Utility.DataStoreTypes.SqlServer) { var converter = new CSchemaToSqlServerSchemaConverter(); var ddl = converter.Convert(schema); _codeWriter.Write(ddl); } else if (schema.DatabaseType == Utility.DataStoreTypes.Postgres) { var converter = new CSchemaToPostgresSchemaConverter(); var ddl = converter.Convert(schema); _codeWriter.Write(ddl); } else if (schema.DatabaseType == Utility.DataStoreTypes.MySql) { var converter = new CSchemaToMySqlSchemaConverter(); var ddl = converter.Convert(schema); _codeWriter.Write(ddl); } else { throw new NotImplementedException(); } } else if (part is CStoredProcedure) { var storedProc = part as CStoredProcedure; ICStoredProcedureToStoredProcedureConverter converter = null; if (storedProc.DatabaseType == Utility.DataStoreTypes.SqlServer) { converter = new CStoredProcedureToSSqlServerStoredProcedureConverter(); } else if (storedProc.DatabaseType == Utility.DataStoreTypes.Postgres) { converter = new CStoredProcedureToPostgresStoredProcedureConverter(); } else { throw new NotImplementedException(); } var ddl = converter.Convert(storedProc); _codeWriter.Write(ddl); } else if (part is CRules) { var rules = part as CRules; var json = rules.ToJson(); _codeWriter.Write(json); } else if (part is CSeedScript) { var seedScript = part as CSeedScript; _codeWriter.Write(seedScript.SeedScriptBody); } else if (part is CProtoFile) { var protoFile = part as CProtoFile; if (!string.IsNullOrEmpty(protoFile.SourceProtoText)) { //source may have full comments _codeWriter.Write(protoFile.SourceProtoText); } else { var converter = new SProtoFileToProtoFileConverter(); _codeWriter.Write(converter.Convert(protoFile)); } } else if (part is CProtoFileRef) { var protoFileRef = part as CProtoFileRef; var converter = new SProtoFileToProtoFileConverter(); _codeWriter.Write(converter.Convert(protoFileRef.ProtoFile)); } else if (part is CText) { var textFile = part as CText; _codeWriter.Write(textFile.Text); } else if (part is CBatchFile) { var batchFile = part as CBatchFile; _codeWriter.Write(batchFile.BatchFileContent); } else { base.Visit(part); } }
public CProtoMessageField(CPart derivedFrom) { DerivedFrom = derivedFrom; }