code: public Set<T> keySet()
      {
          Set<T> keys = new TreeSet<T>();
  
          for (String propertyName : properties.getPropertyNames())
          {
              try
              {
                  keys.add(getTranslator().getPropertyKey(propertyName));
              }
              catch (IllegalArgumentException e)
              {
                  /*
                   * Skip unknown properties.
                   */
                  continue;
              }
          }
  
          return keys;
      }
docs: Retrieve the set of keys currently in use by this manager. This
  encompasses any key which currently has a value or a default value
  associated with it. Normally, this should have the same contents as an
  enumeration of the valid key objects, but it is not guaranteed.<br>
  <br>
  An example of where this set would not have the same contents as the set
  of key objects would be if at least one property key has no value defined
  for it and no default value associated with it. In that case, it would
  not be included in this set.
  
  @return the set of keys currently in use by this manager