mi puoi convertire questa classe c# in java, mi mantieni i commenti e non creare metodi di hashcode, equals ?

"public class FieldBaseDTO : IEquatable<FieldBaseDTO>
{
    //
    // Riepilogo:
    //     Name
    //
    // Valore:
    //     Name
    [DataMember(Name = "name", EmitDefaultValue = false)]
    public string Name { get; set; }

    //
    // Riepilogo:
    //     External identifier
    //
    // Valore:
    //     External identifier
    [DataMember(Name = "externalId", EmitDefaultValue = false)]
    public string ExternalId { get; set; }

    //
    // Riepilogo:
    //     Label
    //
    // Valore:
    //     Label
    [DataMember(Name = "description", EmitDefaultValue = false)]
    public string Description { get; set; }

    //
    // Riepilogo:
    //     Order
    //
    // Valore:
    //     Order
    [DataMember(Name = "order", EmitDefaultValue = false)]
    public int? Order { get; set; }

    //
    // Riepilogo:
    //     DataSource identifier
    //
    // Valore:
    //     DataSource identifier
    [DataMember(Name = "dataSource", EmitDefaultValue = false)]
    public string DataSource { get; set; }

    //
    // Riepilogo:
    //     Required
    //
    // Valore:
    //     Required
    [DataMember(Name = "required", EmitDefaultValue = false)]
    public bool? Required { get; set; }

    //
    // Riepilogo:
    //     Formula
    //
    // Valore:
    //     Formula
    [DataMember(Name = "formula", EmitDefaultValue = false)]
    public string Formula { get; set; }

    //
    // Riepilogo:
    //     Name of class
    //
    // Valore:
    //     Name of class
    [DataMember(Name = "className", EmitDefaultValue = false)]
    public string ClassName { get; set; }

    //
    // Riepilogo:
    //     Locked in read-only
    //
    // Valore:
    //     Locked in read-only
    [DataMember(Name = "locked", EmitDefaultValue = false)]
    public bool? Locked { get; set; }

    //
    // Riepilogo:
    //     Data Group Identifier
    //
    // Valore:
    //     Data Group Identifier
    [DataMember(Name = "comboGruppiId", EmitDefaultValue = false)]
    public string ComboGruppiId { get; set; }

    //
    // Riepilogo:
    //     List of dependent fields
    //
    // Valore:
    //     List of dependent fields
    [DataMember(Name = "dependencyFields", EmitDefaultValue = false)]
    public List<DependencyFieldItem> DependencyFields { get; set; }

    //
    // Riepilogo:
    //     Associated fields
    //
    // Valore:
    //     Associated fields
    [DataMember(Name = "associations", EmitDefaultValue = false)]
    public List<AssocitationFieldItem> Associations { get; set; }

    //
    // Riepilogo:
    //     Field type additional
    //
    // Valore:
    //     Field type additional
    [DataMember(Name = "isAdditional", EmitDefaultValue = false)]
    public bool? IsAdditional { get; set; }

    //
    // Riepilogo:
    //     Visible
    //
    // Valore:
    //     Visible
    [DataMember(Name = "visible", EmitDefaultValue = false)]
    public bool? Visible { get; set; }

    //
    // Riepilogo:
    //     Formula in the context of predefined profile
    //
    // Valore:
    //     Formula in the context of predefined profile
    [DataMember(Name = "predefinedProfileFormula", EmitDefaultValue = false)]
    public string PredefinedProfileFormula { get; set; }

    //
    // Riepilogo:
    //     The visibility condition formula for this mask field
    //
    // Valore:
    //     The visibility condition formula for this mask field
    [DataMember(Name = "visibilityCondition", EmitDefaultValue = false)]
    public string VisibilityCondition { get; set; }

    //
    // Riepilogo:
    //     The mandatory condition formula for this mask field
    //
    // Valore:
    //     The mandatory condition formula for this mask field
    [DataMember(Name = "mandatoryCondition", EmitDefaultValue = false)]
    public string MandatoryCondition { get; set; }

    //
    // Riepilogo:
    //     The preferred address book for search contacts for this field
    //
    // Valore:
    //     The preferred address book for search contacts for this field
    [DataMember(Name = "addressBookDefaultFilter", EmitDefaultValue = false)]
    public int? AddressBookDefaultFilter { get; set; }

    //
    // Riepilogo:
    //     Possible AddressBook for selection for this field
    //
    // Valore:
    //     Possible AddressBook for selection for this field
    [DataMember(Name = "enabledAddressBook", EmitDefaultValue = false)]
    public List<int?> EnabledAddressBook { get; set; }

    //
    // Riepilogo:
    //     Number of display columns for the field
    //
    // Valore:
    //     Number of display columns for the field
    [DataMember(Name = "columns", EmitDefaultValue = false)]
    public int? Columns { get; set; }

    //
    // Riepilogo:
    //     Data Source Discriminator
    //
    // Valore:
    //     Data Source Discriminator
    [DataMember(Name = "dataSourceDiscriminator", EmitDefaultValue = false)]
    public string DataSourceDiscriminator { get; set; }

}
"