public boolean equals(final Object o) {
    if (this == o) return true;
    if (!(o instanceof StringDescriptor)) return false;

    final StringDescriptor descriptor = (StringDescriptor)o;

    if (myBundleName != null ? !myBundleName.equals(descriptor.myBundleName) : descriptor.myBundleName != null) return false;
    if (myKey != null ? !myKey.equals(descriptor.myKey) : descriptor.myKey != null) return false;
    if (myValue != null ? !myValue.equals(descriptor.myValue) : descriptor.myValue != null) return false;
    if (myNoI18n != descriptor.myNoI18n) return false;

    return true;
  }