private void ExportRules(ProjectContent projectContent, string directoryName) { var expression = ExpressionBuilder.GetFinalExpression(RulesEditElement); FileManager.SaveFile(projectContent.RuleSetName + RulesSuffix, expression, directoryName); }
private void ExportEntities(ProjectContent projectContent, string directoryName) { var baseClass = GetBaseClassName(projectContent); foreach (var entity in projectContent.Entities) { var entityName = entity.EntityName; var builder = new StringBuilder(); builder.AppendFormat(Templates.EntityClassBeginningTemplate, entityName, baseClass); var literalDictionaryBuilder = new StringBuilder(); foreach (var attribute in entity.Attributes) { var literalName = Literal.GenerateLiteralName(entityName, attribute); builder.AppendFormat(Templates.EntityPropertyTemplate, literalName, attribute); literalDictionaryBuilder.AppendFormat(Templates.DictionaryKeyPairTemplate, literalName, attribute); } builder.AppendFormat(Templates.EntityClassEndTemplate, literalDictionaryBuilder.ToString()); FileManager.SaveFile(entityName + BaseSuffix, builder.ToString(), directoryName, CsFileSuffix); } }
private string GetBaseClassName(ProjectContent projectContent) { return projectContent.RuleSetName + BaseSuffix; }
private void ExportStates(ProjectContent projectContent, string exportedProjectDirectory) { FileManager.SaveFile(WinningStateFilename, ExportStates(projectContent.WinningStates), exportedProjectDirectory); FileManager.SaveFile(LoosingStateFilename, ExportStates(projectContent.LoosingStates), exportedProjectDirectory); FileManager.SaveFile(StartStateFilename, ExportStates(projectContent.StartStates), exportedProjectDirectory); }
private void SaveEntities(ProjectContent projectContent) { projectContent.Entities = new List<EntityDefinition>(); foreach (Transform entity in EntitiesContainer.transform) { var entityElement = entity.GetComponent<EntityElement>(); if (entityElement != null) { projectContent.Entities.Add(entityElement.EntityDefinition); } } }
private void SaveStates(ProjectContent projectContent) { projectContent.LoosingStates = SaveStates(LoosingStatesContainer); projectContent.WinningStates = SaveStates(WinningStatesContainer); projectContent.StartStates = SaveStates(StartStatesContainer); }
private void SaveRules(ProjectContent projectContent) { projectContent.Rules = new List<RuleDefinition>(); foreach (Transform rule in RulesContainer) { var components = new List<ExpressionElement>(); foreach (Transform ruleComponents in rule) { var literal = ruleComponents.GetComponent<LiteralComponent>(); if (literal != null) { components.Add(literal.Literal); } else { var connective = ruleComponents.GetComponent<ConnectiveComponent>(); if (connective != null) { components.Add(new Connective { Type = connective.ConnectiveType }); } } } projectContent.Rules.Add(new RuleDefinition(components)); } }
private void LoadStates(ProjectContent projectContent) { LoadStates(WinningStatesContainer, projectContent.WinningStates); LoadStates(LoosingStatesContainer, projectContent.LoosingStates); LoadStates(StartStatesContainer, projectContent.StartStates); }
public ProjectContent GetProjectContent(string name) { if (name == null) { return null; } ProjectContent projectContent = new ProjectContent(); projectContent.RuleSetName = name; SaveEntities(projectContent); SaveRules(projectContent); SaveStates(projectContent); return projectContent; }