org.jboss.ejb.plugins.cmp.jdbc.bridge.CMRMessage msg = ((CMRInvocation)mi).getCmrMessage();
// We are going to work with the context a lot
EntityEnterpriseContext ctx = (EntityEnterpriseContext)mi.getEnterpriseContext();
JDBCCMRFieldBridge2 cmrField = (JDBCCMRFieldBridge2)mi.getArguments()[0];
if(org.jboss.ejb.plugins.cmp.jdbc.bridge.CMRMessage.ADD_RELATION == msg)
{
Object relatedId = mi.getArguments()[1];
if(log.isTraceEnabled())
{
log.trace("Add relation: field=" + cmrField.getFieldName() +
" id=" + ctx.getId() +
" relatedId=" + relatedId);
}
cmrField.addRelatedId(ctx, relatedId);
}
else if(org.jboss.ejb.plugins.cmp.jdbc.bridge.CMRMessage.REMOVE_RELATION == msg)
{
// call removeRelation
Object relatedId = mi.getArguments()[1];
if(log.isTraceEnabled())
{
log.trace("Remove relation: field=" + cmrField.getFieldName() +
" id=" + ctx.getId() +
" relatedId=" + relatedId);
}
cmrField.removeRelatedId(ctx, relatedId);
}
else
{
// this should not be possible we are using a type safe enum
throw new EJBException("Unknown cmp2.0-relationship-message=" + msg);