Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2007 the original author or authors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.codehaus.groovy.binding;
 

Author(s):
Danno Ferrin
Version:
$Revision: 16007 $
Since:
Groovy 1.1
 
 public abstract class AbstractFullBinding  implements FullBinding {
 
     protected SourceBinding sourceBinding;
     protected TargetBinding targetBinding;
     protected Closure validator;
     protected Closure converter;
     protected Closure reverseConverter;
 
     private void fireBinding() {
         if (( == null) || ( == null)) {
             // should we throw invalid binding exception?  or fail quietly?
             return;
         }
         Object result = .getSourceValue();
         if (getValidator() != null) {
             Object validation = getValidator().call(result);
             if ((validation == null)
                 || ((validation instanceof Boolean) && !((Boolean)validation).booleanValue()))
             {
                 // should we throw a validation failed exception?  or fail quietly?
                 return;
             }
         }
         if (getConverter() != null) {
             result = getConverter().call(result);
         }
         .updateTargetValue(result);
     }
 
     public void update() {
         fireBinding();
     }
 
     private void fireReverseBinding() {
         if (!( instanceof TargetBinding) || !( instanceof SourceBinding)) {
             throw new RuntimeException("Binding Instance is not reversable");
         }
         Object result = ((SourceBinding)).getSourceValue();
         if (getReverseConverter() != null) {
             result = getReverseConverter().call(result);
         }
         ((TargetBinding)).updateTargetValue(result);
     }
 
     public void reverseUpdate() {
         fireReverseBinding();
     }
 
     public SourceBinding getSourceBinding() {
         return ;
     }
 
     public void setSourceBinding(SourceBinding sourceBinding) {
         this. = sourceBinding;
     }
 
     public TargetBinding getTargetBinding() {
         return ;
     }
 
     public void setTargetBinding(TargetBinding targetBinding) {
         this. = targetBinding;
     }
 
     public Closure getValidator() {
         return ;
     }
 
     public void setValidator(Closure validator) {
         this. = validator;
     }
 
     public Closure getConverter() {
         return ;
     }
    public void setConverter(Closure converter) {
        this. = converter;
    }
    public Closure getReverseConverter() {
        return ;
    }
    public void setReverseConverter(Closure reverseConverter) {
        this. = reverseConverter;
    }
New to GrepCode? Check out our FAQ X