Sorry...my comment probably wasn't clear. Since it's immutable, how about:
```
...
// all immutable now! ;-)
private final String eTag;
private final boolean uploaded;

protected BlobDetail(String remoteBlobName, File localFile) {
   this(remoteBlobName, localFile, null);
}

protected BlobDetail(String remoteBlobName, File localFile, @Nullable String eTag) {
   this.remoteBlobName = remoteBlobName;
   this.localFile = localFile;
   this.eTag = eTag;
   uploaded = (eTag != null);
}
...
public boolean isUploaded() {
   return uploaded;
}
...
```
? Or without the additional `uploaded` field, if you prefer - the usual time vs. space tradeoff, I guess ;-)