Warn on Obsolete Methods Usage

A generated DAL contains two identical methods to get values of attributes and relationships, e.g. for attribute Name two methods are generated:
class X {
  ...
  string Name() const;        // first method
  string get_Name() const;    // second method
  ...
  void set_Name(string);      // method to set value
  ...
};
 
The first method is obsolete and it will be removed in next release. You should to replace it by the get_xxx() method now. At run time a warning message is printing out, if the obsolete method is used.

The main reason for such changes is linked with the fact that a generated class is derived from DalObject class, that has several internal public methods like UID(), class_name(), etc. If methods are generated without any prefix, it is always possible to create an attribute or relationship with name equal to a name of DalObject class method. Such situation took place in real life (there is a class that has class_name attribute), that resulted wrong behavior of application. A usage of explicit class name for the method solves such problem, but it is preferable to guaranty it will not happen again in a different case.

Other Changes