Pessoal queria fazer o seguinte… eu criei uma classe abstrata para um Telefone persistente, que falta implementar a seguinte interface
public interface TelefoneInterface<T extends Telefone><T,O>,O extends TelefoneOwner<T,O>> {
public O getOwner();
public void setOwner(O owner);
}
esta interface especifica, eu tenho que escrever os métodos sempre que extender a classe Telefone
Obs.: quem quiser verificar a classe telefone pode ver esse link = http://www.simrentacar.com.br/home/tempCode/java/Telefone.java.html
o template seria como descrito abaixo… onde só trocaria o valor de $varTelefone e $varOwner
[code]import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@AttributeOverrides(
value={
@AttributeOverride(
column=@Column(
name = $varTelefone.FK_OWNER,
insertable=false,
updatable=false,
nullable=false
),
name=“ownerId”
)
})
public class $varTelefone extends Telefone<$varTelefone,$varOwner> {
private static final long serialVersionUID = -2508915148132384528L;
private static final String FK_OWNER = “$varOwner” + “_id”;
public $varOwner owner;
public $varTelefone() {}
@ManyToOne(fetch = FetchType.LAZY,optional=true)
@JoinColumn(name=$varTelefone.FK_OWNER,nullable=false)
@Override
public $varOwner getOwner() {
return owner;
}
@Override
public void setOwner($varOwner owner) {
this.owner = owner;
}
}[/code]
Enfim… o problema é o sequinte… o código que tenho que gerar quando extendo a classe telfone é sempre o mesmo, por exemplo… caso quera extender para uma classe… “TelefoneLoja extends Telefone<TelefoneLoja,Loja>”
as minhas variáveis serão:
$varTelefone = “TelefoneLoja”
$varOwner = “Loja”
com isso o código montado para a classe TelefoneLoja que cujo o dono do telefone é a classe Loja é
[code]import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@AttributeOverrides(
value={
@AttributeOverride(
column=@Column(
name = LojaTelefone.FK_OWNER,
insertable=false,
updatable=false,
nullable=false
),
name=“ownerId”
)
})
public class LojaTelefone extends Telefone<LojaTelefone,Loja> {
private static final long serialVersionUID = -2508915148132384528L;
private static final String FK_OWNER = “Loja” + “_id”;
public Loja owner;
public LojaTelefone() {}
@ManyToOne(fetch = FetchType.LAZY,optional=true)
@JoinColumn(name=LojaTelefone.FK_OWNER,nullable=false)
@Override
public Loja getOwner() {
return owner;
}
@Override
public void setOwner(Loja owner) {
this.owner = owner;
}
}[/code]
queria montar um template … para criar essas classe… pelo eclipse… deve ter uma forma para isso…
a única coisa que precisa fazer é… trocar $varTelefone pelo 1° parametro da classe telefone e $varOwner pelo 2° parametro…