code: public boolean checkModified(LightFileDescriptor other) {
          if (isAlwaysModified() || other.isAlwaysModified())
              return true;
  
          if (!name.equals(other.name))
              return true;
  
          if (!(hasChecksum() && other.hasChecksum()) && !(hasModificationDate() && other.hasModificationDate()))
              // No intersecting characteristics, cant compare => file is modified
              return true;
  
          if (hasChecksum() && other.hasChecksum() && !Arrays.equals(checksum, other.checksum))
              return true;
  
          if (hasModificationDate() && other.hasModificationDate() && !lastModified.equals(other.lastModified))
              return true;
  
          return false;
      }
docs: Returns true if file modified