Skip to content

Commit

Permalink
Add arrow.type.traits.Traits classes.
Browse files Browse the repository at this point in the history
Co-authored-by: Sarah Gilmore <[email protected]>
  • Loading branch information
kevingurney and sgilmore10 committed Jul 7, 2023
1 parent ac523fe commit 4b0c551
Show file tree
Hide file tree
Showing 16 changed files with 236 additions and 0 deletions.
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/BooleanTraits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef BooleanTraits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.BooleanArray
ArrayClassName = "arrow.array.BooleanArray"
ArrayProxyClassName = "arrow.array.proxy.BooleanArray"
TypeConstructor = @arrow.type.BooleanType;
TypeClassName = "arrow.type.BooleanType"
TypeProxyClassName = "arrow.type.proxy.BooleanType"
MatlabConstructor = @logical
MatlabClassName = "logical"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/Float32Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef Float32Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.Float32Array
ArrayClassName = "arrow.array.Float32Array"
ArrayProxyClassName = "arrow.array.proxy.Float32Array"
TypeConstructor = @arrow.type.Float32Type;
TypeClassName = "arrow.type.Float32Type"
TypeProxyClassName = "arrow.type.proxy.Float32Type"
MatlabConstructor = @single
MatlabClassName = "single"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/Float64Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef Float64Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.Float64Array
ArrayClassName = "arrow.array.Float64Array"
ArrayProxyClassName = "arrow.array.proxy.Float64Array"
TypeConstructor = @arrow.type.Float64Type;
TypeClassName = "arrow.type.Float64Type"
TypeProxyClassName = "arrow.type.proxy.Float64Type"
MatlabConstructor = @double
MatlabClassName = "double"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/Int16Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef Int16Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.Int16Array
ArrayClassName = "arrow.array.Int16Array"
ArrayProxyClassName = "arrow.array.proxy.Int16Array"
TypeConstructor = @arrow.type.Int16Type;
TypeClassName = "arrow.type.Int16Type"
TypeProxyClassName = "arrow.type.proxy.Int16Type"
MatlabConstructor = @uint16
MatlabClassName = "uint16"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/Int32Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef Int32Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.Int32Array
ArrayClassName = "arrow.array.Int32Array"
ArrayProxyClassName = "arrow.array.proxy.Int32Array"
TypeConstructor = @arrow.type.Int32Type;
TypeClassName = "arrow.type.Int32Type"
TypeProxyClassName = "arrow.type.proxy.Int32Type"
MatlabConstructor = @uint32
MatlabClassName = "uint32"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/Int64Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef Int64Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.Int64Array
ArrayClassName = "arrow.array.Int64Array"
ArrayProxyClassName = "arrow.array.proxy.Int64Array"
TypeConstructor = @arrow.type.Int64Type;
TypeClassName = "arrow.type.Int64Type"
TypeProxyClassName = "arrow.type.proxy.Int64Type"
MatlabConstructor = @uint64
MatlabClassName = "uint64"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/Int8Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef Int8Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.Int8Array
ArrayClassName = "arrow.array.Int8Array"
ArrayProxyClassName = "arrow.array.proxy.Int8Array"
TypeConstructor = @arrow.type.Int8Type;
TypeClassName = "arrow.type.Int8Type"
TypeProxyClassName = "arrow.type.proxy.Int8Type"
MatlabConstructor = @int8
MatlabClassName = "int8"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/StringTraits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef StringTraits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.StringArray
ArrayClassName = "arrow.array.StringArray"
ArrayProxyClassName = "arrow.array.proxy.StringArray"
TypeConstructor = @arrow.type.StringType;
TypeClassName = "arrow.type.StringType"
TypeProxyClassName = "arrow.type.proxy.StringType"
MatlabConstructor = @string
MatlabClassName = "string"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/TimestampTraits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef TimestampTraits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.TimestampArray
ArrayClassName = "arrow.array.TimestampArray"
ArrayProxyClassName = "arrow.array.proxy.TimestampArray"
TypeConstructor = @arrow.type.TimestampType;
TypeClassName = "arrow.type.TimestampType"
TypeProxyClassName = "arrow.type.proxy.TimestampType"
MatlabConstructor = @datetime
MatlabClassName = "datetime"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef Traits

properties (Abstract, Constant)
ArrayConstructor
ArrayClassName
ArrayProxyClassName
TypeConstructor
TypeClassName
TypeProxyClassName
MatlabConstructor
MatlabClassName
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/UInt16Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef UInt16Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.UInt16Array
ArrayClassName = "arrow.array.UInt16Array"
ArrayProxyClassName = "arrow.array.proxy.UInt16Array"
TypeConstructor = @arrow.type.UInt16Type;
TypeClassName = "arrow.type.UInt16Type"
TypeProxyClassName = "arrow.type.proxy.UInt16Type"
MatlabConstructor = @uint16
MatlabClassName = "uint16"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/UInt32Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef UInt32Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.UInt32Array
ArrayClassName = "arrow.array.UInt32Array"
ArrayProxyClassName = "arrow.array.proxy.UInt32Array"
TypeConstructor = @arrow.type.UInt32Type;
TypeClassName = "arrow.type.UInt32Type"
TypeProxyClassName = "arrow.type.proxy.UInt32Type"
MatlabConstructor = @uint32
MatlabClassName = "uint32"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/UInt64Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef UInt64Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.UInt64Array
ArrayClassName = "arrow.array.UInt64Array"
ArrayProxyClassName = "arrow.array.proxy.UInt64Array"
TypeConstructor = @arrow.type.UInt64Type;
TypeClassName = "arrow.type.UInt64Type"
TypeProxyClassName = "arrow.type.proxy.UInt64Type"
MatlabConstructor = @uint64
MatlabClassName = "uint64"
end

end
14 changes: 14 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/UInt8Traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
classdef UInt8Traits < arrow.type.traits.Traits

properties (Constant)
ArrayConstructor = @arrow.array.UInt8Array
ArrayClassName = "arrow.array.UInt8Array"
ArrayProxyClassName = "arrow.array.proxy.UInt8Array"
TypeConstructor = @arrow.type.UInt8Type;
TypeClassName = "arrow.type.UInt8Type"
TypeProxyClassName = "arrow.type.proxy.UInt8Type"
MatlabConstructor = @uint8
MatlabClassName = "uint8"
end

end
39 changes: 39 additions & 0 deletions matlab/src/matlab/+arrow/+type/+traits/traits.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
function typeTraits = traits(type)
arguments
type(1,1) arrow.type.Type
end

import arrow.type.traits.*
typeClass = string(class(type));

switch typeClass
case "arrow.type.UInt8Type"
typeTraits = UInt8Traits();
case "arrow.type.UInt16Type"
typeTraits = UInt16Traits();
case "arrow.type.UInt32Type"
typeTraits = UInt32Traits();
case "arrow.type.UInt64Type"
typeTraits = UInt64Traits();
case "arrow.type.Int8Type"
typeTraits = Int8Traits();
case "arrow.type.Int16Type"
typeTraits = Int16Traits();
case "arrow.type.Int32Type"
typeTraits = Int32Traits();
case "arrow.type.Int64Type"
typeTraits = Int64Traits();
case "arrow.type.Float32Type"
typeTraits = Float32Traits();
case "arrow.type.Float64Type"
typeTraits = Float64Traits();
case "arrow.type.BooleanType"
typeTraits = BooleanTraits();
case "arrow.type.StringType"
typeTraits = StringTraits();
case "arrow.type.TimestampType"
typeTraits = TimestampTraits();
otherwise
error("arrow:type:traits:UnknownType", "Unknown type: " + typeClass);
end
end
1 change: 1 addition & 0 deletions matlab/src/matlab/+arrow/+type/Type.m
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@
properties (Abstract, SetAccess=protected)
ID(1, 1) arrow.type.ID
end

end

0 comments on commit 4b0c551

Please sign in to comment.