code: public void put( String key, String value )
              throws IllegalArgumentException
      {
          if ( !key.matches( "[a-z-]*" ) ) {
              throw new IllegalArgumentException( "The key must contains letters and dash" );
          }
          // Check value is ASCII
          for ( char c : value.toCharArray() ) {
              if ( c < 32 || c > 127 ) {
                  throw new IllegalArgumentException( "The metadata value is not ASCII encoded" );
              }
          }
          map.put( key, value );
      }
docs: Add a value in metadata
  
  @param key The unique key linked to the value (must be lower case)
  @param value The metadata value (must contains only ASCII characters)
  @throws IllegalArgumentException If the key or value is badly formatted