diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.CodeGeneration')
10 files changed, 245 insertions, 1 deletions
diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Class.cs b/Software/Visual_Studio/Tango.CodeGeneration/Class.cs index 087f07916..45a32ae3e 100644 --- a/Software/Visual_Studio/Tango.CodeGeneration/Class.cs +++ b/Software/Visual_Studio/Tango.CodeGeneration/Class.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace Tango.CodeGeneration { - public class Class : CodeObject + public class Class : CodeObject { /// <summary> /// Gets or sets the class name. diff --git a/Software/Visual_Studio/Tango.CodeGeneration/EntityCodeFileJava.cs b/Software/Visual_Studio/Tango.CodeGeneration/EntityCodeFileJava.cs new file mode 100644 index 000000000..d2bfd80fc --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/EntityCodeFileJava.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.CodeGeneration +{ + public class EntityCodeFileJava : Class + { + public String EntityName { get; set; } + + public String TableName { get; set; } + + public List<EntityCodeFileField> Fields { get; set; } + + public EntityCodeFileJava(String name) : base(name) + { + Fields = new List<EntityCodeFileField>(); + } + } +} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/EnumerationFileJava.cs b/Software/Visual_Studio/Tango.CodeGeneration/EnumerationFileJava.cs new file mode 100644 index 000000000..6a42326f7 --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/EnumerationFileJava.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.CodeGeneration +{ + public class EnumerationFileJava : CodeFile + { + public String Name { get; set; } + + public List<EnumerationField> Fields { get; set; } + + public EnumerationFileJava() + { + Fields = new List<EnumerationField>(); + } + } +} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/ObservablesAdapterFile.cs b/Software/Visual_Studio/Tango.CodeGeneration/ObservablesAdapterFile.cs new file mode 100644 index 000000000..7b1e3d8fe --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/ObservablesAdapterFile.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.CodeGeneration +{ + public class ObservablesAdapterFile : Class + { + + } +} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj b/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj index e2cc941e7..1c491813a 100644 --- a/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj +++ b/Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj @@ -64,8 +64,11 @@ <Compile Include="CodeFile.cs" /> <Compile Include="CodeObject.cs" /> <Compile Include="DpProperty.cs" /> + <Compile Include="EntityCodeFileJava.cs" /> <Compile Include="EntityCodeFile.cs" /> <Compile Include="EnumerationField.cs" /> + <Compile Include="TangoDAOJavaFile.cs" /> + <Compile Include="EnumerationFileJava.cs" /> <Compile Include="EnumerationFile.cs" /> <Compile Include="Helper.cs" /> <Compile Include="ICodeObject.cs" /> @@ -73,6 +76,7 @@ <Compile Include="CodeObjectModifier.cs" /> <Compile Include="MethodModifier.cs" /> <Compile Include="Namespace.cs" /> + <Compile Include="ObservablesAdapterFile.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Property.cs" /> </ItemGroup> @@ -96,6 +100,10 @@ <EmbeddedResource Include="Templates\Namespace.cshtml" /> <EmbeddedResource Include="Templates\EntityCodeFile.cshtml" /> <EmbeddedResource Include="Templates\EnumerationFile.cshtml" /> + <EmbeddedResource Include="Templates\ObservablesAdapterFile.cshtml" /> + <EmbeddedResource Include="Templates\EntityCodeFileJava.cshtml" /> + <EmbeddedResource Include="Templates\EnumerationFileJava.cshtml" /> + <EmbeddedResource Include="Templates\TangoDAOJavaFile.cshtml" /> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/Software/Visual_Studio/Tango.CodeGeneration/TangoDAOJavaFile.cs b/Software/Visual_Studio/Tango.CodeGeneration/TangoDAOJavaFile.cs new file mode 100644 index 000000000..5221365e4 --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/TangoDAOJavaFile.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.CodeGeneration +{ + public class TangoDAOJavaFile : CodeFile + { + public String Name { get; set; } + + public List<TangoDAOEntity> Entities { get; set; } + + public TangoDAOJavaFile() + { + Entities = new List<TangoDAOEntity>(); + } + + public class TangoDAOEntity + { + public String Name { get; set; } + public String TableName { get; set; } + } + } +} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Templates/EntityCodeFileJava.cshtml b/Software/Visual_Studio/Tango.CodeGeneration/Templates/EntityCodeFileJava.cshtml new file mode 100644 index 000000000..aeba15b12 --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/Templates/EntityCodeFileJava.cshtml @@ -0,0 +1,59 @@ +package com.twine.tango.dal.entities; + +import com.raizlabs.android.dbflow.annotation.Column; +import com.raizlabs.android.dbflow.annotation.ForeignKey; +import com.raizlabs.android.dbflow.annotation.ForeignKeyReference; +import com.raizlabs.android.dbflow.annotation.Table; +import org.joda.time.DateTime; +import com.twine.tango.dal.Entity; +import com.twine.tango.dal.TangoDB; + + + @@Table(name = "@(Model.TableName)", database = TangoDB.class) + public class @(Model.Name) extends Entity + { + @foreach (var prop in Model.Fields) + { + if (!prop.Construct) + { + <div> + @@Column(name = "@(prop.FieldName)") + private @(prop.Type) @(prop.Description); + + </div> + } + else + { + <div> + @@ForeignKey(references = { @@ForeignKeyReference(columnName = "@(prop.FieldName)_GUID", foreignKeyColumnName = "GUID")}) + private @(prop.Type) @(prop.Description); + + </div> + } + } + + @foreach (var prop in Model.Fields) + { + <div> + /** + * Gets the @(prop.Name). + * + * return the @(prop.Name) + */ + public @(prop.Type) @(prop.Type == "Boolean" ? "is" + prop.Name : "get" + prop.Name)() + { + return @(prop.Description); + } + + /** + * Sets the @(prop.Name). + * + * @@param @(prop.Description) the @(prop.Name) + */ + public void set@(prop.Name)(@(prop.Type) @(prop.Description)) + { + this.@(prop.Description) = @(prop.Description); + } + </div> + } + } diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Templates/EnumerationFileJava.cshtml b/Software/Visual_Studio/Tango.CodeGeneration/Templates/EnumerationFileJava.cshtml new file mode 100644 index 000000000..435608204 --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/Templates/EnumerationFileJava.cshtml @@ -0,0 +1,23 @@ +package com.twine.tango.dal.enumerations; + +import com.twine.tango.core.DescriptionAnnotation; + +public enum @(Model.Name) +{ + @foreach (var prop in Model.Fields) + { + <div> + @@DescriptionAnnotation(description = "@(prop.Description)") + @(prop.Name)(@(prop.Value)), + + </div> + } + ; + + private int value; + + @(Model.Name)(int value) + { + this.value = value; + } +} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Templates/ObservablesAdapterFile.cshtml b/Software/Visual_Studio/Tango.CodeGeneration/Templates/ObservablesAdapterFile.cshtml new file mode 100644 index 000000000..856b8ac42 --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/Templates/ObservablesAdapterFile.cshtml @@ -0,0 +1,46 @@ +using System.Collections.ObjectModel; +using System.ComponentModel; + +namespace Tango.DAL.Observables +{ + public partial class @(Model.Name) + { + @foreach (var prop in Model.Properties) + { + <div> + private @(prop.Type) _@(prop.Name.ToLower()); + /// <summary> + /// Gets or sets the @(prop.Name). + /// </summary> + public @(prop.Type) @(prop.Name) + { + get { return _@(prop.Name.ToLower()); } + set { _@(prop.Name.ToLower()) = value; RaisePropertyChanged(nameof(@(prop.Name))); } + } + + private ICollectionView _@(prop.Name.ToLower())ViewSource; + /// <summary> + /// Gets or sets the @(prop.Name) View Source. + ///</summary> + public ICollectionView @(prop.Name)ViewSource + { + get { return _@(prop.Name.ToLower())ViewSource; } + set { _@(prop.Name.ToLower())ViewSource = value; RaisePropertyChanged(nameof(@(prop.Name)ViewSource)); } + } + </div> + } + + /// <summary> + /// Initialize collection sources. + /// </summary> + private void InitCollectionSources() + { + @foreach (var prop in Model.Properties) + { + <div> + @(prop.Name)ViewSource = CreateCollectionView(@(prop.Name)); + </div> + } + } + } +} diff --git a/Software/Visual_Studio/Tango.CodeGeneration/Templates/TangoDAOJavaFile.cshtml b/Software/Visual_Studio/Tango.CodeGeneration/Templates/TangoDAOJavaFile.cshtml new file mode 100644 index 000000000..46bd6532c --- /dev/null +++ b/Software/Visual_Studio/Tango.CodeGeneration/Templates/TangoDAOJavaFile.cshtml @@ -0,0 +1,27 @@ +package com.twine.tango.dal.dao; + +import com.raizlabs.android.dbflow.sql.language.SQLite; +@foreach (var entity in Model.Entities) +{ + <div>import com.twine.tango.dal.entities.@(entity.Name);</div> +} +import java.util.List; + +public class TangoDAO +{ +@foreach (var entity in Model.Entities) +{ +<div> + /** + * Gets all the @(entity.TableName) from database. + * + * @@return all @(entity.TableName) + */ + public static List<@(entity.Name)> getAll@(entity.TableName)() + { + return SQLite.select().from(@(entity.Name).class).queryList(); + } + +</div> +} +} |
