code: public void overWriteAssetData(RepositoryResourceImpl fromResource, boolean includeAttachmentInfo) throws RepositoryResourceValidationException {
  
          // Make sure we are dealing with the same type....this
          // should never happen
          if (!fromResource.getClass().getName().equals(getClass().getName())) {
              throw new RepositoryResourceValidationException("Expected class of type " + getClass().getName()
                                                              + " but was " + fromResource.getClass().getName(), this.getId());
          }
          // copy the stuff into target
          fromResource.copyFieldsFrom(this, includeAttachmentInfo);
  
          // Now use target
          _asset = fromResource._asset;
      }
docs: This method copies the fields from "this" that we care about to the "fromResource". Then we
  set our asset to point to the one in "fromResource". In effect this means we get all the details
  from the "fromResource" and override fields we care about and store the merged result in our asset.
  
  This is used when we have read an asset back from massive, the asset read back from massive will have more
  fields that in it (that massive has set) so this method is used to copy the asset containing those extra
  fields from the "from" resource to the our resource. Note that the from resource is modified during this
  process, so do not rely on it's contents not changing. This is only used to copy the contents from a matching
  resource into a new resource and then the matching resource object is discarded so this is currently safe.
  TODO: Find a better way of doing this
  
  @param fromResource
  @throws RepositoryResourceValidationException