Definition

Properties describe a particular aspect of an Entity. A Property is defined by a name and a value, which can be limited to some field. There are two main types of Properties: numeric ones and non-numeric ones.

Note

we haven't found some useful example where a 'null' value could be useful, so 'null' value is tested against.

Implementation:
abstract class Property
{
  Property( String name) throws IllegalArgument;
  // IllegalArgument if null value

  final String getName();
  Object getValue();
}