Robust functionality with minimum verbosity and complexity is a goal for which developers often strive.

To that end, we have refactored the annotations used to indicate which fields are editable for hosts and virtual machines.

The Problem

Prior to the change, the following annotations were used:

For VMs:

EditableField
EditableHostedEngineField
EditableOnVmStatusField

For VM Templates:

EditableField
EditableOnTemplate

For Hosts:

EditableField
EditableOnVdsStatus

This lead to fields with an overabundance of individual annotations. For example, take the memSizeMb field in the VmBase […]