}
referenceModel.setInterface(interfaceModel);
interfaceModel.setInterface(reference.getCanonicalName());
// Add policy requirements to reference if specified
Requires refRequires = field.getAnnotation(Requires.class);
if (refRequires != null) {
for (SecurityPolicy secPolicy : refRequires.security()) {
if (!secPolicy.supports(PolicyType.INTERACTION)) {
throw BeanMessages.MESSAGES.referenceOnlyCouldBeMarkedWithInteractionPolicyButIsNotTheOne(secPolicy.toString());
}
referenceModel.addPolicyRequirement(secPolicy.getQName());
}
for (TransactionPolicy txPolicy : refRequires.transaction()) {
if (!txPolicy.supports(PolicyType.INTERACTION)) {
throw BeanMessages.MESSAGES.referenceOnlyCouldBeMarkedWithInteractionPolicyButIsNotTheOne(txPolicy.toString());
}
referenceModel.addPolicyRequirement(txPolicy.getQName());
}