code: public void setSource(Descriptor source, State state) {
      Descriptor descriptor = resolver.resolve(source, state);
      if (descriptor == null) {
        return;
      }
  
      state.setProp(getKey(NAME_KEY), descriptor.getName());
      state.setProp(getKey(LineageEventBuilder.SOURCE), Descriptor.toJson(descriptor));
    }
docs: Set source {@link DatasetDescriptor} of a lineage event
  
  <p>
  Only the {@link org.apache.gobblin.source.Source} or its {@link org.apache.gobblin.source.extractor.Extractor}
  is supposed to set the source for a work unit of a dataset
  </p>
  
  @param state state about a {@link org.apache.gobblin.source.workunit.WorkUnit}