code: public String getPropertyValueName(int property, int value, int nameChoice) {
          int valueMapIndex=findProperty(property);
          if(valueMapIndex==0) {
              throw new IllegalArgumentException(
                      "Invalid property enum "+property+" (0x"+Integer.toHexString(property)+")");
          }
          int nameGroupOffset=findPropertyValueNameGroup(valueMaps[valueMapIndex+1], value);
          if(nameGroupOffset==0) {
              throw new IllegalArgumentException(
                      "Property "+property+" (0x"+Integer.toHexString(property)+
                      ") does not have named values");
          }
          return getName(nameGroupOffset, nameChoice);
      }
docs: Returns a value name given a property enum and a value enum.
  Multiple names may be available for each value;
  the nameChoice selects among them.