Meta Model Definition Code (Origam.Schema)

All model elements are defined inside Origam.Schema namespace. Every model element derives from ISchemaItem.

Model Hierarchy

The way how to get child elements of any model element or even a category of model elements is using the interface ISchemaItemFactory and its method public Type[] NewItemTypes.

So one way to see what elements can be created under the current element is to see NewItemTypes

In this case Service has an only possible child ServiceMethod.

In some more recent code NewItemTypes property is not overridden and in such a case either there are no child items available or there is another piece of code (typically living in an Init() method) that fills in ChildItemTypes collection like this:

In this case any data entity can have the following children:

  • Database Field
  • Virtual Field
  • Function Field
  • Aggregated Field
  • Lookup Field
  • Relationship
  • Parameter
  • Filter
  • Index
  • Row Level Security Filter
  • Row Level Security Rule
  • Conditional Formatting Rule

Root Model Elements

Every root model element lives inside ISchemaItemProvider.

Every provider has a property Group which denotes the group of providers. Currently we have the following provider groups:

  • Common
  • Data
  • User Interface
  • Business Logic
  • API