@Override
 public int hashCode() {
   final int prime = 31;
   int result = super.hashCode();
   result = prime * result + ((id == null) ? 0 : id.hashCode());
   result = prime * result + ((archive == null) ? 0 : archive.hashCode());
   result = prime * result + ((workmanager == null) ? 0 : workmanager.hashCode());
   return result;
 }
  @Override
  public boolean equals(Object obj) {
    if (this == obj) return true;
    if (!super.equals(obj)) return false;
    if (!(obj instanceof ResourceAdapterImpl)) return false;

    ResourceAdapterImpl other = (ResourceAdapterImpl) obj;
    if (id == null) {
      if (other.id != null) return false;
    } else if (!id.equals(other.id)) return false;
    if (archive == null) {
      if (other.archive != null) return false;
    } else if (!archive.equals(other.archive)) return false;
    if (workmanager == null) {
      if (other.workmanager != null) return false;
    } else if (!workmanager.equals(other.workmanager)) return false;

    return true;
  }