/// <summary>
 /// Returns the properties value parsed as T.
 /// If the parameter does not exists or can not be parsed to a T, returns an Empty Optional
 /// </summary>
 /// <param name="parameter"></param>
 /// <returns></returns>
 public Optional <T> GetOptional <T>(string parameter)
 {
     return(GetOptional(parameter).FlatMap(x => ParseUtil.ParseSave <T>(x)));
 }