aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.CodeGeneration
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.CodeGeneration')
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/Class.cs2
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/EntityCodeFileJava.cs22
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/EnumerationFileJava.cs20
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/ObservablesAdapterFile.cs13
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/Tango.CodeGeneration.csproj8
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/TangoDAOJavaFile.cs26
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/Templates/EntityCodeFileJava.cshtml59
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/Templates/EnumerationFileJava.cshtml23
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/Templates/ObservablesAdapterFile.cshtml46
-rw-r--r--Software/Visual_Studio/Tango.CodeGeneration/Templates/TangoDAOJavaFile.cshtml27
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>
+}
+}