Многоуровневое наследование с javax.xml.bind - PullRequest
0 голосов
/ 26 сентября 2019

Я знаю, что в Java (нормальные обстоятельства) возможно сделать что-то вроде этого:

public class A{
    //...
}
public class B extends A{
    //...
}
public class C extends B{
   //...
}

Также я знаю, что наследование возможно для одного суперкласса и одного или нескольких подклассов, определенных с аннотациямиjavax.xml.bind с использованием аннотации @XmlSeeAlso, например:

@XmlSeeAlso({B.class})
public class A{
    //...
}

@XmlRootElement(name="BTag")
@XmlAccesorType(XmlAccessType.FIELD)
public class B extends A{
   //...
}

Но я хочу сделать что-то вроде этого:

@XmlSeeAlso({B.class})
public class A{
    //...
}
@XmlSeeAlso({C.class})
public class B extends A{
    //...
}
@XmlRootElement(name="CTag")
@XmlAccesorType(XmlAccessType.FIELD)
public class C extends B{
   //...
}

.следующие классы:

@Data
@XmlRootElement(name="AntenaDtItem")
@XmlAccessorType(XmlAccessType.FIELD)       
public static class AntenaDtItem{
    @XmlElement
    private Long antenaId;

    /* The following 4 attributes are also present in the next two classes */

    @XmlElement
    private String nombreAntena;
    @XmlElement
    private Long tecnologiaId;
    @XmlElement
    private String comunaId;
    @XmlElement
    private String fechaCreacionAntena;     

    /* The following attributes are exclusive to this class */

    @XmlElement
    private String nombreTecnologia;
    @XmlElement
    private String nombreComuna;
    @XmlElement
    private String regionesId;
    @XmlElement
    private String nombreRegiones;  
    @XmlElement
    private String archivoId;
    @XmlElement
    private String nombreArchivo;   
    @XmlElement
    private String archivoIdDirecciones;
    @XmlElement
    private String nombreArchivoDirecciones;
}

@Data
@XmlRootElement(name="AntenaItem")
@XmlAccessorType(XmlAccessType.FIELD)
public static class AntenaItem{
    @XmlElement
    private Long antenaId;

    @XmlElement
    private String nombreAntena;
    @XmlElement
    private Integer tecnologiaId;
    @XmlElement
    private String comunaId;
    @XmlElement
    private String fechaCreacionAntena;

    /* The following attributes are also present in the next class */

    @XmlElement
    private String fechaLiberacionAntena;
    @XmlElement
    private String fechaEntregaAntena;
    @XmlElement
    private String disenoAntena;
    @XmlElement
    private String construidoAntena;
    @XmlElement
    private String cargaAntena;
    @XmlElement
    private String liberadoAntena;
    @XmlElement
    private String observacionesAntena;
    @XmlElement
    private boolean archivoAntena;
    @XmlElement
    private String latitudAntena;
    @XmlElement
    private String longitudAntena;
    @XmlElement
    private String direccionInstalacionAntena;
    @XmlElement
    private String grados1Antena;
    @XmlElement
    private String grados2Antena;
    @XmlElement
    private String grados3Antena;
    @XmlElement
    private Integer tipoAntenaId;
    @XmlElement
    private Integer tipoSenalId;
    @XmlElement
    private Integer activoAntena;
    @XmlElement
    private List<Integer> bandas;           
}

@Data
@XmlRootElement(name="nuevaAntenaSalida")
@XmlAccessorType(XmlAccessType.FIELD)
public static class NuevaAntenaEntrada{

    @XmlElement
    private String nombreAntena;
    @XmlElement
    private Integer tecnologiaId;
    @XmlElement
    private String comunaId;
    @XmlElement
    private String fechaCreacionAntena;

    @XmlElement
    private String fechaLiberacionAntena;
    @XmlElement
    private String fechaEntregaAntena;
    @XmlElement
    private String disenoAntena;
    @XmlElement
    private String construidoAntena;
    @XmlElement
    private String cargaAntena;
    @XmlElement
    private String liberadoAntena;
    @XmlElement
    private String observacionesAntena;
    @XmlElement
    private boolean archivoAntena;
    @XmlElement
    private String latitudAntena;
    @XmlElement
    private String longitudAntena;
    @XmlElement
    private String direccionInstalacionAntena;
    @XmlElement
    private String grados1Antena;
    @XmlElement
    private String grados2Antena;
    @XmlElement
    private String grados3Antena;
    @XmlElement
    private Integer tipoAntenaId;
    @XmlElement
    private Integer tipoSenalId;
    @XmlElement
    private Integer activoAntena;
    @XmlElement
    private List<Integer> bandas;

    @XmlElement
    private List<FileBody> files;
    @XmlElement
    private Integer planoInRequest;     

    @XmlElement
    private Integer direccionesInRequest; 
    @XmlElement(required=true)
    private DataSesionItem sessionData;     

}

Возможно ли это?Заранее спасибо

...