Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate CS classes from the loaded data model #42

Open
4 of 16 tasks
unforbidable opened this issue Mar 7, 2018 · 1 comment
Open
4 of 16 tasks

Generate CS classes from the loaded data model #42

unforbidable opened this issue Mar 7, 2018 · 1 comment

Comments

@unforbidable
Copy link
Owner

unforbidable commented Mar 7, 2018

A small host of C# types will be generated based on the loaded data model:

  • A record class for every record to maintain record data.
  • A sub-record class for every structure and field group to maintain sub-record data, used by record classes.
  • A class for every target (as) structure, such as Color.
  • Two interfaces IForm for FormReference and IFormCollection for FormReference[].
  • A single static class with extension methods for casting references from any form type to a specific form type, and for filtering a list of references from any form to a specific form type, a set of two for every form type.
  • A class derived from the Variable class for each struct union.
  • An enum for every enumeration type.
  • A proxy class for every record and sub-class, for access control.
  • An interface for every record and sub-record class, for isolation of implementation.
  • An interface for every adapter to handle conversion between fields and properties. This includes so called default adapters that sort of make sense, although they are not currently used just yet.
  • A single interface to serve as provider of adapter implementations. (The patcher implements this interface to provide adapter implementations for the data model.)
  • A single class to serve as the function index and provider.
  • An enum with containing all functions.
  • A single static class that will store various information, such as the patcher version.
  • A set of classes Variable for variable types (strongly typed unions), supporting 2 through 10 types.
  • Additionally the serialized data model will be embedded as a binary resource.
@unforbidable unforbidable added this to the Dynamic Data Model milestone Mar 7, 2018
@unforbidable unforbidable added this to To do - Main Patcher Functionality in Patcher Task Manager Mar 7, 2018
@unforbidable unforbidable changed the title Generate CS classes from loaded Dynamic Data Model Generate CS classes from the loaded data model Mar 7, 2018
@unforbidable unforbidable self-assigned this Mar 10, 2018
@unforbidable unforbidable moved this from To do - Main Patcher Functionality to In progress in Patcher Task Manager Mar 10, 2018
@unforbidable
Copy link
Owner Author

Completion depends on #52

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Patcher Task Manager
  
In progress
Development

No branches or pull requests

2 participants