code: public static int copyPropertiesExcept(
                      final Object dst,
                      final Object src,
                      final String[] properties
                      )
      {
          if (dst == null) {
              throw new IllegalArgumentException( "no destination object specified" );
          }
  
          if (src == null) {
              throw new IllegalArgumentException( "no source object specified" );
          }
  
          Collection<String>  excepts = null;
          if (properties != null  &&  properties.length > 0) {
              excepts = Arrays.asList( properties );
          }
  
          int  count = 0;
          Collection<String>  names = getPropertyNames( src );
          for (String  name : names) {
              if (excepts != null  &&  excepts.contains( name )) {
                  continue;
              }
  
              count += copyProperty( dst, src, name );
          }
  
          return count;
      }
docs: Copies the properties from the object to the other object.
  
  @param   dst
  the destination object to which the property value is set.
  @param   src
  the source object from which the property value is got.
  @param   properties
  the names of the properties that should not be copied.
  @return
  the number of properties copied.