code: protected final Object getDataField(String name) throws NotAvailableException {
          try {
              MB dataClone = cloneDataBuilder();
              Descriptors.FieldDescriptor findFieldByName = dataClone.getDescriptorForType().findFieldByName(name);
              if (findFieldByName == null) {
                  throw new NotAvailableException("Field[" + name + "] does not exist for type " + dataClone.getClass().getName());
              }
              return dataClone.getField(findFieldByName);
          } catch (Exception ex) {
              throw new NotAvailableException(name, this, ex);
          }
      }
docs: @param name
  
  @return
  
  @throws NotAvailableException