package org.hibernate.test.annotations.embedded;
import javax.persistence.AttributeOverride;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.Id;
/**
* Represents an Interest Rate Swap.
*/
@Entity
public class VanillaSwap {
/**
* Possible values for the currency field.
*/
public enum Currency {
USD, GBP, EUR, JPY }
/**
* Identifier of the Interest Rate Swap
*/
private String instrumentId;
/**
* Currency of the swap (and of both legs).
*/
private Currency currency;
/**
* Fixed leg (cash flows with the fixed rate).
*/
private FixedLeg fixedLeg;
/**
* Floating leg (cash flows bound to a financial index).
*/
private FloatLeg floatLeg;
@Embedded
@AttributeOverride(name = "paymentFrequency", column = @Column(name = "FIXED_FREQENCY"))
public FixedLeg getFixedLeg() {
return fixedLeg;
}
public void setFixedLeg(FixedLeg fixedLeg) {
this.fixedLeg = fixedLeg;
}
@Embedded
@AttributeOverride(name = "paymentFrequency", column = @Column(name = "FLOAT_FREQUENCY"))
public FloatLeg getFloatLeg() {
return floatLeg;
}
public void setFloatLeg(FloatLeg floatLeg) {
this.floatLeg = floatLeg;
}
public Currency getCurrency() {
return currency;
}
public void setCurrency(Currency currency) {
this.currency = currency;
}
@Id
public String getInstrumentId() {
return instrumentId;
}
public void setInstrumentId(String instrumentId) {
this.instrumentId = instrumentId;
}
}