1 19 package org.netbeans.modules.xml.wsdl.model.extensions.bpel.validation; 20 21 import java.util.Collections ; 22 import java.util.Iterator ; 23 import java.util.List ; 24 import java.util.Set ; 25 import org.netbeans.modules.xml.wsdl.model.Definitions; 26 import org.netbeans.modules.xml.wsdl.model.ExtensibilityElement; 27 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 28 import org.netbeans.modules.xml.wsdl.model.extensions.bpel.BPELExtensibilityComponent; 29 30 import org.netbeans.modules.xml.xam.Model; 31 import org.netbeans.modules.xml.xam.spi.Validation; 32 import org.netbeans.modules.xml.xam.spi.ValidationResult; 33 import org.netbeans.modules.xml.xam.spi.Validator; 34 import org.netbeans.modules.xml.xam.spi.Validation.ValidationType; 35 36 37 43 public abstract class AbstractValidator implements Validator { 44 45 @SuppressWarnings ("unchecked") 46 public static final ValidationResult EMPTY_RESULT = 47 new ValidationResult( Collections.EMPTY_SET, 48 Collections.EMPTY_SET); 49 50 53 54 @SuppressWarnings ("unchecked") 55 public ValidationResult validate( Model model, Validation validation, 56 ValidationType validationType) 57 { 58 if(!(model instanceof WSDLModel)) { 59 return EMPTY_RESULT; 60 } 61 62 WSDLModel wsdlModel = (WSDLModel) model; 63 64 if ( wsdlModel.getState() == Model.State.NOT_WELL_FORMED ){ 65 return EMPTY_RESULT; 66 } 67 68 Set <ResultItem> results; 70 Set <Model> models = Collections.singleton( model ); 71 72 73 ValidationVisitor visitor = getVisitor(); 74 Definitions def = wsdlModel.getDefinitions(); 75 76 if( def != null ) { 77 List <ExtensibilityElement> extensions = def.getExtensibilityElements(); 78 Iterator <ExtensibilityElement> it = extensions.iterator(); 79 while(it.hasNext()) { 80 ExtensibilityElement exElement = it.next(); 81 if(exElement instanceof BPELExtensibilityComponent) { 82 ((BPELExtensibilityComponent)exElement).accept(visitor); 83 } 84 } 85 86 } 87 88 results = visitor.getResultItems(); 89 if ( results == null ){ 90 results = Collections.EMPTY_SET; 91 } 92 return new ValidationResult(results, models); 93 } 94 95 protected abstract ValidationVisitor getVisitor(); 96 97 } 98 | Popular Tags |