mi puoi convertire questi modelli c# in java? "[JsonConverter(typeof(JsonSubtypes), new object[] { "className" })]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchMatrixDto), "FieldBaseForSearchMatrixDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchIntDto), "FieldBaseForSearchIntDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchDoubleDto), "FieldBaseForSearchDoubleDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchConservazioneDto), "FieldBaseForSearchConservazioneDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchContactDto), "FieldBaseForSearchContactDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchDocumentTypeDto), "FieldBaseForSearchDocumentTypeDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchStampDto), "FieldBaseForSearchStampDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchBoolDto), "FieldBaseForSearchBoolDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchListDto), "FieldBaseForSearchListDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchStringDto), "FieldBaseForSearchStringDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchDateTimeDto), "FieldBaseForSearchDateTimeDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchAooDto), "FieldBaseForSearchAooDto")]
[JsonSubtypes.KnownSubType(typeof(FieldBaseForSearchProtocolloDto), "FieldBaseForSearchProtocolloDto")]
public class FieldBaseForSearchDTO : IEquatable<FieldBaseForSearchDTO>
{
    //
    // Riepilogo:
    //     Group Identifier
    //
    // Valore:
    //     Group Identifier
    [DataMember(Name = "groupId", EmitDefaultValue = false)]
    public int? GroupId { get; set; }

    //
    // Riepilogo:
    //     Possible values: 0: Standard 1: Group 2: Additional
    //
    // Valore:
    //     Possible values: 0: Standard 1: Group 2: Additional
    [DataMember(Name = "fieldType", EmitDefaultValue = false)]
    public int? FieldType { get; set; }

    //
    // Riepilogo:
    //     Possible values: 0: Textbox 1: Databox 2: Numeric 3: Combobox 4: TableBox 5:
    //     Checkbox 6: MultiValue 7: ClasseBox 8: Group 9: RubricaBox 10: TextArea
    //
    // Valore:
    //     Possible values: 0: Textbox 1: Databox 2: Numeric 3: Combobox 4: TableBox 5:
    //     Checkbox 6: MultiValue 7: ClasseBox 8: Group 9: RubricaBox 10: TextArea
    [DataMember(Name = "additionalFieldType", EmitDefaultValue = false)]
    public int? AdditionalFieldType { get; set; }

    //
    // Riepilogo:
    //     Default Operator
    //
    // Valore:
    //     Default Operator
    [DataMember(Name = "defaultOperator", EmitDefaultValue = false)]
    public int? DefaultOperator { get; set; }

    //
    // Riepilogo:
    //     Table name
    //
    // Valore:
    //     Table name
    [DataMember(Name = "tableName", EmitDefaultValue = false)]
    public string TableName { get; set; }

    //
    // Riepilogo:
    //     Binder Identifier
    //
    // Valore:
    //     Binder Identifier
    [DataMember(Name = "binderFieldId", EmitDefaultValue = false)]
    public int? BinderFieldId { get; set; }

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

    //
    // 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 Dictionary<string, string> 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:
    //     Data Source Discriminator
    //
    // Valore:
    //     Data Source Discriminator
    [DataMember(Name = "dataSourceDiscriminator", EmitDefaultValue = false)]
    public string DataSourceDiscriminator { get; set; }

}
"