@Override
 public ValidationIssue applyValidation(final Validable object) {
   CompoundIssue errors = null;
   final MessageBindings bindings = (MessageBindings) object;
   Enumeration en = bindings.getBindings().elements();
   while (en.hasMoreElements()) {
     MessageEntryBinding binding = (MessageEntryBinding) en.nextElement();
     AbstractBinding bv = binding.getBindingValue();
     if (bv != null && !bv.isBindingValid()) {
       ValidationError error;
       error =
           new MissingRequiredBinding(bindings, binding) {
             @Override
             public String getLocalizedMessage() {
               return getLocalizedErrorMessageForInvalidValue();
             }
           };
       if (errors == null) {
         errors = new CompoundIssue(object);
       }
       errors.addToContainedIssues(error);
     }
   }
   return errors;
 }
 public MissingRequiredBinding(
     MessageBindings message, MessageEntryBinding aMessageEntryBinding) {
   super(CheckAllBindingsRule.this, message, null);
   messageEntryBinding = aMessageEntryBinding;
   bindingName = messageEntryBinding.getBindingDefinitionName();
   if (message.getMessageEdge().getFlexoPort() != null) {
     portName = message.getMessageEdge().getFlexoPort().getName();
   } else {
     portName = "null";
   }
   BindingDefinition bd = aMessageEntryBinding.getBindingDefinition();
   if (bd != null) {
     Vector allAvailableBV = bd.searchMatchingBindingValue(message, 2);
     for (int i = 0; i < allAvailableBV.size(); i++) {
       BindingValue proposal = (BindingValue) allAvailableBV.elementAt(i);
       addToFixProposals(new SetBinding(aMessageEntryBinding, proposal));
     }
   }
 }