Bug 127861 [DataBinding] Mark API provisional
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/CollectionBinding.java
if (converter == null) {
			throw new BindingException("Missing converter from " + target.getElementType() + " to " + model.getElementType()); 
		}
		if(!converter.getModelType().equals(model.getElementType())) {
			throw new BindingException("Converter does not apply to model type. Expected: " + model.getElementType() + ", actual: " + converter.getModelType()); 
		}
		if(!converter.getTargetType().equals(target.getElementType())) {
			throw new BindingException("Converter does not apply to target type. Expected: " + target.getElementType() + ", actual: " + converter.getTargetType()); 
		}
		this.validator = bindSpec.getValidator();
		if (validator == null) {
			throw new BindingException("Missing validator"); 
		}
		target.addChangeListener(targetChangeListener);
		model.addChangeListener(modelChangeListener);
	}
	
	private final IChangeListener targetChangeListener = new IChangeListener() {
		public void handleChange(ChangeEvent changeEvent) {
			if (updating)
				return;
			if (changeEvent.getChangeType() == ChangeEvent.VERIFY) {
				
				
				Object value = changeEvent.getNewValue();
				String partialValidationError = validator
						.isPartiallyValid(value);
				context.updatePartialValidationError(this,
						partialValidationError);
				if (partialValidationError != null) {