Skip to content

Commit

Permalink
Migrated the tree file/directory types to the readonly generator.
Browse files Browse the repository at this point in the history
  • Loading branch information
MeltyPlayer committed Apr 26, 2024
1 parent 6a28d1c commit ad593ef
Show file tree
Hide file tree
Showing 23 changed files with 70 additions and 48 deletions.
2 changes: 1 addition & 1 deletion FinModelUtility/Fin/Fin/Fin.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@
<PackageReference Include="SubstreamSharp" Version="1.0.3" />
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
<PackageReference Include="System.IO.Abstractions" Version="19.2.51" />
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>
</Project>
74 changes: 48 additions & 26 deletions FinModelUtility/Fin/Fin/src/io/Interfaces_Tree.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;

using schema.readOnly;

namespace fin.io {
// TODO: Come up with a better name for these "tree" interfaces?
// The idea is that:
Expand All @@ -11,78 +13,98 @@ namespace fin.io {
// - system files refer to real files that exist within the file system
// - these can be readonly or mutable

public interface IReadOnlyTreeIoObject<TIoObject, TDirectory, TFile,
[GenerateReadOnly]
public partial interface ITreeIoObject<TIoObject, TDirectory, TFile,
TFileType>
: IEquatable<TIoObject>
where TIoObject :
IReadOnlyTreeIoObject<TIoObject, TDirectory, TFile, TFileType>
ITreeIoObject<TIoObject, TDirectory, TFile, TFileType>
where TDirectory :
IReadOnlyTreeDirectory<TIoObject, TDirectory, TFile, TFileType>
where TFile : IReadOnlyTreeFile<TIoObject, TDirectory, TFile, TFileType> {
ITreeDirectory<TIoObject, TDirectory, TFile, TFileType>
where TFile : ITreeFile<TIoObject, TDirectory, TFile, TFileType> {
string FullPath { get; }
string Name { get; }

[Const]
TDirectory AssertGetParent();

[Const]
bool TryGetParent(out TDirectory parent);

[Const]
IEnumerable<TDirectory> GetAncestry();
}

public interface IReadOnlyTreeDirectory<TIoObject, TDirectory, TFile,
[GenerateReadOnly]
public partial interface ITreeDirectory<TIoObject, TDirectory, TFile,
TFileType>
: IReadOnlyTreeIoObject<TIoObject, TDirectory, TFile, TFileType>
: ITreeIoObject<TIoObject, TDirectory, TFile, TFileType>
where TIoObject :
IReadOnlyTreeIoObject<TIoObject, TDirectory, TFile, TFileType>
ITreeIoObject<TIoObject, TDirectory, TFile, TFileType>
where TDirectory :
IReadOnlyTreeDirectory<TIoObject, TDirectory, TFile, TFileType>
where TFile : IReadOnlyTreeFile<TIoObject, TDirectory, TFile, TFileType> {
ITreeDirectory<TIoObject, TDirectory, TFile, TFileType>
where TFile : ITreeFile<TIoObject, TDirectory, TFile, TFileType> {
bool IsEmpty { get; }

[Const]
IEnumerable<TDirectory> GetExistingSubdirs();

[Const]
TDirectory AssertGetExistingSubdir(string path);

[Const]
bool TryToGetExistingSubdir(string path, out TDirectory outDirectory);

[Const]
IEnumerable<TFile> GetExistingFiles();

[Const]
TFile AssertGetExistingFile(string path);

[Const]
bool TryToGetExistingFile(string path, out TFile outFile);

[Const]
bool TryToGetExistingFileWithFileType(string pathWithoutExtension,
out TFile outFile,
params TFileType[] fileTypes);

[Const]
IEnumerable<TFile> GetFilesWithNameRecursive(string name);

[Const]
IEnumerable<TFile> GetFilesWithFileType(
TFileType fileType,
bool includeSubdirs = false);
}

public interface IReadOnlyTreeFile<TIoObject, TDirectory, TFile, TFileType>
: IReadOnlyTreeIoObject<TIoObject, TDirectory, TFile, TFileType>,
IReadOnlyGenericFile
[GenerateReadOnly]
public partial interface ITreeFile<TIoObject, TDirectory, TFile, TFileType>
: ITreeIoObject<TIoObject, TDirectory, TFile, TFileType>,
IGenericFile
where TIoObject :
IReadOnlyTreeIoObject<TIoObject, TDirectory, TFile, TFileType>
ITreeIoObject<TIoObject, TDirectory, TFile, TFileType>
where TDirectory :
IReadOnlyTreeDirectory<TIoObject, TDirectory, TFile, TFileType>
where TFile : IReadOnlyTreeFile<TIoObject, TDirectory, TFile, TFileType> {
ITreeDirectory<TIoObject, TDirectory, TFile, TFileType>
where TFile : ITreeFile<TIoObject, TDirectory, TFile, TFileType> {
TFileType FileType { get; }

string FullNameWithoutExtension { get; }
string NameWithoutExtension { get; }
}


public interface IReadOnlyTreeIoObject
: IReadOnlyTreeIoObject<IReadOnlyTreeIoObject, IReadOnlyTreeDirectory,
IReadOnlyTreeFile, string> { }
[GenerateReadOnly]
public partial interface ITreeIoObject
: ITreeIoObject<ITreeIoObject, ITreeDirectory, ITreeFile, string>;

public interface IReadOnlyTreeDirectory
: IReadOnlyTreeIoObject,
IReadOnlyTreeDirectory<IReadOnlyTreeIoObject, IReadOnlyTreeDirectory,
IReadOnlyTreeFile, string> { }
[GenerateReadOnly]
public partial interface ITreeDirectory
: ITreeIoObject,
ITreeDirectory<ITreeIoObject, ITreeDirectory, ITreeFile, string>;

public interface IReadOnlyTreeFile
: IReadOnlyTreeIoObject,
IReadOnlyTreeFile<IReadOnlyTreeIoObject, IReadOnlyTreeDirectory,
IReadOnlyTreeFile, string> { }
[GenerateReadOnly]
public partial interface ITreeFile
: ITreeIoObject,
ITreeFile<ITreeIoObject, ITreeDirectory, ITreeFile, string>;
}
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Ast/Ast/Ast.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Cmb/Cmb/Cmb.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Dat/Dat/Dat.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/F3dzex2/F3dzex2.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Glo/Glo/Glo.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Granny3d/Granny3d.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Gx/Gx.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/JSystem/JSystem/JSystem.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Level5/Level5/Level5.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
<PackageReference Include="OpenTK" Version="3.3.3" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Mdl/Mdl/Mdl.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Mod/Mod/Mod.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@

<ItemGroup>
<PackageReference Include="CommandLineParser" Version="2.9.1" />
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Modl/Modl/Modl.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Nitro/Nitro/Nitro.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Visceral/Visceral/Visceral.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

<ItemGroup>
<PackageReference Include="BCnEncoder.Net" Version="2.1.0" />
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion FinModelUtility/Formats/Xmod/Xmod.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<ItemGroup>
<PackageReference Include="BCnEncoder.Net" Version="2.1.0" />
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion FinModelUtility/Games/BanjoKazooie/BanjoKazooie.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Toolkit.HighPerformance" Version="7.1.2" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="OpenTK" Version="3.3.3" />
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<ItemGroup>
<PackageReference Include="IronPython" Version="3.4.1" />
<PackageReference Include="schema" Version="0.4.19" />
<PackageReference Include="schema" Version="0.4.20" />
</ItemGroup>

<ItemGroup>
Expand Down

0 comments on commit ad593ef

Please sign in to comment.