private JavaFileObject createDelegate() { if (wasCommitted()) { delegate = Pair.<FileObjects.FileBase,Boolean>of( (FileObjects.FileBase)FileObjects.fileFileObject(f, getRootFile(getFile(), getPackage()), filter, encoding), Boolean.TRUE); } else if (wasFlushed()) { delegate = Pair.<FileObjects.FileBase,Boolean>of( (FileObjects.FileBase)FileObjects.fileFileObject(shadowFile, getRootFile(shadowFile, getPackage()), filter, encoding), Boolean.TRUE); } return delegate.first(); }