You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2014/02/19 00:52:24 UTC

svn commit: r1569566 [1/2] - in /juddi/trunk: juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ juddi-core/src/main/java/org/apache/juddi/api/impl/ juddi-core/src/main/java/org/apache/juddi/validation/ uddi-tck-base/src/main/resources/uddi...

Author: alexoree
Date: Tue Feb 18 23:52:23 2014
New Revision: 1569566

URL: http://svn.apache.org/r1569566
Log:
JUDDI-764 adding/fixing test cases for uddiv2 find qualifiers

Added:
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiryv2.java
      - copied, changed from r1564260, juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiry.java
Removed:
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIv2Inquiry.java
Modified:
    juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/MapUDDIv2Tov3.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIv2InquiryImpl.java
    juddi/trunk/uddi-tck-base/src/main/resources/uddi_data_v2/find/findTModelByCategoryBag.xml
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v2/tck/UDDI_070_FindEntityIntegrationTest.java

Modified: juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/MapUDDIv2Tov3.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/MapUDDIv2Tov3.java?rev=1569566&r1=1569565&r2=1569566&view=diff
==============================================================================
--- juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/MapUDDIv2Tov3.java (original)
+++ juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/MapUDDIv2Tov3.java Tue Feb 18 23:52:23 2014
@@ -756,6 +756,7 @@ public class MapUDDIv2Tov3 {
                 HashSet<String> s = new HashSet<String>(r.getFindQualifier());
                 r.getFindQualifier().clear();
                 r.getFindQualifier().addAll(s);
+                if (r.getFindQualifier().isEmpty()) return null;
                 return r;
         }
 

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java?rev=1569566&r1=1569565&r2=1569566&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java Tue Feb 18 23:52:23 2014
@@ -112,7 +112,8 @@ public class UDDIInquiryImpl extends Aut
         			org.apache.juddi.model.BusinessService modelBusinessService = null;
         			try {
         				em.find(org.apache.juddi.model.BusinessService.class, serviceKey);
-        			} catch (ClassCastException e) {}
+        			} catch (ClassCastException e) {
+                                logger.info("uh oh!", e);}
 	                if (modelBusinessService == null)
 	                    throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ServiceNotFound", serviceKey));
 

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIv2InquiryImpl.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIv2InquiryImpl.java?rev=1569566&r1=1569565&r2=1569566&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIv2InquiryImpl.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIv2InquiryImpl.java Tue Feb 18 23:52:23 2014
@@ -29,7 +29,7 @@ import org.apache.juddi.config.AppConfig
 import org.apache.juddi.config.Property;
 import org.apache.juddi.v3.client.mapping.MapUDDIv2Tov3;
 import org.apache.juddi.v3.client.mapping.MapUDDIv3Tov2;
-import org.apache.juddi.validation.ValidateUDDIv2Inquiry;
+import org.apache.juddi.validation.ValidateInquiryv2;
 import org.uddi.api_v2.BindingDetail;
 import org.uddi.api_v2.BusinessDetail;
 import org.uddi.api_v2.BusinessDetailExt;
@@ -88,7 +88,7 @@ public class UDDIv2InquiryImpl implement
         
         @Override
         public BindingDetail findBinding(FindBinding body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateFindBinding(body);
+                ValidateInquiryv2.validateFindBinding(body);
                 try {
                         return MapUDDIv3Tov2.MapBindingDetail(inquiryService.findBinding(MapUDDIv2Tov3.MapFindBinding(body)), getNodeID());
                 } catch (DispositionReportFaultMessage ex) {
@@ -98,7 +98,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public BusinessList findBusiness(FindBusiness body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateFindBusiness(body);
+                ValidateInquiryv2.validateFindBusiness(body);
                 try {
                         return MapUDDIv3Tov2.MapBusinessListEntity(inquiryService.findBusiness(MapUDDIv2Tov3.MapFindBusiness(body)), getNodeID());
                 } catch (DispositionReportFaultMessage ex) {
@@ -109,7 +109,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public RelatedBusinessesList findRelatedBusinesses(FindRelatedBusinesses body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateFindRelatedBusinesses(body);
+                ValidateInquiryv2.validateFindRelatedBusinesses(body,false);
                 try {
                         return MapUDDIv3Tov2.MapRelatedBusinessList(inquiryService.findRelatedBusinesses(MapUDDIv2Tov3.MapFindRelatedBusiness(body)), getNodeID());
                 } catch (DispositionReportFaultMessage ex) {
@@ -119,7 +119,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public ServiceList findService(FindService body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateFindService(body);
+                ValidateInquiryv2.validateFindService(body);
                 try {
                         return MapUDDIv3Tov2.MapServiceList(inquiryService.findService(MapUDDIv2Tov3.MapFindService(body)), getNodeID());
                 } catch (DispositionReportFaultMessage ex) {
@@ -129,7 +129,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public TModelList findTModel(FindTModel body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateFindTModel(body);
+                ValidateInquiryv2.validateFindTModel(body,false);
                 try {
                         return MapUDDIv3Tov2.MapTModelListElement(inquiryService.findTModel(MapUDDIv2Tov3.MapFindTModel(body)), getNodeID());
                 } catch (DispositionReportFaultMessage ex) {
@@ -139,7 +139,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public BindingDetail getBindingDetail(GetBindingDetail body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateGetBindingDetail(body);
+                ValidateInquiryv2.validateGetBindingDetail(body);
                 try {
                         return MapUDDIv3Tov2.MapBindingDetail(inquiryService.getBindingDetail(MapUDDIv2Tov3.MapGetBindingDetail(body)), getNodeID());
                 } catch (DispositionReportFaultMessage ex) {
@@ -149,7 +149,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public BusinessDetail getBusinessDetail(GetBusinessDetail body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateGetBusinessDetail(body);
+                ValidateInquiryv2.validateGetBusinessDetail(body);
                 try {
                         BusinessDetail MapBusinessDetail = MapUDDIv3Tov2.MapBusinessDetail(inquiryService.getBusinessDetail(MapUDDIv2Tov3.MapGetBusinessDetail(body)), getNodeID());
                        // StringWriter sw = new StringWriter();
@@ -163,7 +163,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public BusinessDetailExt getBusinessDetailExt(GetBusinessDetailExt body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateBusinessDetailExt(body);
+                ValidateInquiryv2.validateBusinessDetailExt(body);
                 try {
                         return MapUDDIv3Tov2.MapBusinessDetailExt(inquiryService.getBusinessDetail(MapUDDIv2Tov3.MapGetBusinessDetailExt(body)), getNodeID());
                 } catch (DispositionReportFaultMessage ex) {
@@ -173,7 +173,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public ServiceDetail getServiceDetail(GetServiceDetail body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateGetServiceDetail(body);
+                ValidateInquiryv2.validateGetServiceDetail(body);
                 try {
                         return MapUDDIv3Tov2.MapServiceDetail(inquiryService.getServiceDetail(MapUDDIv2Tov3.MapGetServiceDetail(body)), getNodeID());
                 } catch (DispositionReportFaultMessage ex) {
@@ -183,7 +183,7 @@ public class UDDIv2InquiryImpl implement
 
         @Override
         public TModelDetail getTModelDetail(GetTModelDetail body) throws DispositionReport {
-                ValidateUDDIv2Inquiry.validateGetTModelDetail(body);
+                ValidateInquiryv2.validateGetTModelDetail(body);
                 try {
                 	//remove duplicates using a set
                 	Set<String> keyList = new HashSet(body.getTModelKey());

Copied: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiryv2.java (from r1564260, juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiry.java)
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiryv2.java?p2=juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiryv2.java&p1=juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiry.java&r1=1564260&r2=1569566&rev=1569566&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiry.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiryv2.java Tue Feb 18 23:52:23 2014
@@ -21,55 +21,42 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Hashtable;
 import java.util.Map;
+import org.apache.juddi.api.impl.UDDIv2InquiryImpl;
 
-import org.uddi.api_v3.GetBusinessDetail;
-import org.uddi.api_v3.GetOperationalInfo;
-import org.uddi.api_v3.GetServiceDetail;
-import org.uddi.api_v3.GetBindingDetail;
-import org.uddi.api_v3.GetTModelDetail;
-import org.uddi.api_v3.FindBusiness;
-import org.uddi.api_v3.FindService;
-import org.uddi.api_v3.FindBinding;
-import org.uddi.api_v3.FindTModel;
-import org.uddi.api_v3.FindRelatedBusinesses;
-import org.uddi.api_v3.KeyedReference;
-import org.uddi.api_v3.KeyedReferenceGroup;
-import org.uddi.api_v3.Name;
-import org.uddi.api_v3.TModelBag;
+import org.uddi.api_v2.*;
+import org.uddi.v2_service.DispositionReport;
 
-import org.uddi.v3_service.DispositionReportFaultMessage;
-
-import org.apache.juddi.model.UddiEntityPublisher;
-import org.apache.juddi.query.util.FindQualifiers;
+import org.apache.juddi.v3.client.UDDIv2Constants;
+import org.apache.juddi.v3.client.mapping.MapUDDIv3Tov2;
 import org.apache.juddi.v3.error.ErrorMessage;
 import org.apache.juddi.v3.error.FatalErrorException;
 import org.apache.juddi.v3.error.InvalidCombinationException;
 import org.apache.juddi.v3.error.InvalidKeyPassedException;
 import org.apache.juddi.v3.error.UnsupportedException;
 import org.apache.juddi.v3.error.ValueNotAllowedException;
+import org.uddi.v3_service.DispositionReportFaultMessage;
 
 /**
- * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
- * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
+ * This class handles validation for uddi v2 inquiry functions
+ *
  * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
  */
-public class ValidateInquiry extends ValidateUDDIApi {
+public class ValidateInquiryv2 {
 
-        public ValidateInquiry(UddiEntityPublisher publisher) {
-                super(publisher);
-        }
+        public static final String VER = "2.0";
 
-        public void validateGetBusinessDetail(GetBusinessDetail body) throws DispositionReportFaultMessage {
+        public static void validateGetBusinessDetail(GetBusinessDetail body) throws DispositionReport {
 
                 // No null input
                 if (body == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                        throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                 }
+                validateVersion(body.getGeneric());
 
                 // No null or empty list
                 List<String> entityKeyList = body.getBusinessKey();
                 if (entityKeyList == null || entityKeyList.size() == 0) {
-                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
+                         throw MapUDDIv3Tov2.MapException(new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 HashSet<String> dupCheck = new HashSet<String>();
@@ -82,24 +69,25 @@ public class ValidateInquiry extends Val
 
                         boolean inserted = dupCheck.add(entityKey);
                         if (!inserted) {
-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
+                                 throw MapUDDIv3Tov2.MapException(new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey)),UDDIv2InquiryImpl.getNodeID());
                         }
 
                         i++;
                 }
         }
 
-        public void validateGetServiceDetail(GetServiceDetail body) throws DispositionReportFaultMessage {
+        public static void validateGetServiceDetail(GetServiceDetail body) throws DispositionReport {
 
                 // No null input
                 if (body == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
+                validateVersion(body.getGeneric());
                 // No null or empty list
                 List<String> entityKeyList = body.getServiceKey();
                 if (entityKeyList == null || entityKeyList.size() == 0) {
-                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
+                         throw MapUDDIv3Tov2.MapException(new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 HashSet<String> dupCheck = new HashSet<String>();
@@ -112,24 +100,25 @@ public class ValidateInquiry extends Val
 
                         boolean inserted = dupCheck.add(entityKey);
                         if (!inserted) {
-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
+                                 throw MapUDDIv3Tov2.MapException(new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey)),UDDIv2InquiryImpl.getNodeID());
                         }
 
                         i++;
                 }
         }
 
-        public void validateGetBindingDetail(GetBindingDetail body) throws DispositionReportFaultMessage {
+        public static void validateGetBindingDetail(GetBindingDetail body) throws DispositionReport {
 
                 // No null input
                 if (body == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
+                validateVersion(body.getGeneric());
                 // No null or empty list
                 List<String> entityKeyList = body.getBindingKey();
                 if (entityKeyList == null || entityKeyList.size() == 0) {
-                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
+                         throw MapUDDIv3Tov2.MapException(new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 HashSet<String> dupCheck = new HashSet<String>();
@@ -142,54 +131,25 @@ public class ValidateInquiry extends Val
 
                         boolean inserted = dupCheck.add(entityKey);
                         if (!inserted) {
-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
+                                 throw MapUDDIv3Tov2.MapException(new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey)),UDDIv2InquiryImpl.getNodeID());
                         }
 
                         i++;
                 }
         }
 
-        public void validateGetTModelDetail(GetTModelDetail body) throws DispositionReportFaultMessage {
+        public static void validateGetTModelDetail(GetTModelDetail body) throws DispositionReport {
 
                 // No null input
                 if (body == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
+                validateVersion(body.getGeneric());
                 // No null or empty list
                 List<String> entityKeyList = body.getTModelKey();
                 if (entityKeyList == null || entityKeyList.size() == 0) {
-                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
-                }
-
-                HashSet<String> dupCheck = new HashSet<String>();
-                int i = 0;
-                for (String entityKey : entityKeyList) {
-
-                        // Per section 4.4: keys must be case-folded
-                        entityKey = entityKey.toLowerCase();
-                        entityKeyList.set(i, entityKey);
-
-                        boolean inserted = dupCheck.add(entityKey);
-                        if (!inserted) {
-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
-                        }
-
-                        i++;
-                }
-        }
-
-        public void validateGetOperationalInfo(GetOperationalInfo body) throws DispositionReportFaultMessage {
-
-                // No null input
-                if (body == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
-                }
-
-                // No null or empty list
-                List<String> entityKeyList = body.getEntityKey();
-                if (entityKeyList == null || entityKeyList.size() == 0) {
-                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
+                         throw MapUDDIv3Tov2.MapException(new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 HashSet<String> dupCheck = new HashSet<String>();
@@ -202,170 +162,152 @@ public class ValidateInquiry extends Val
 
                         boolean inserted = dupCheck.add(entityKey);
                         if (!inserted) {
-                                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
+                                 throw MapUDDIv3Tov2.MapException(new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey)),UDDIv2InquiryImpl.getNodeID());
                         }
 
                         i++;
                 }
         }
 
-        public void validateFindBusiness(FindBusiness body) throws DispositionReportFaultMessage {
+        public static void validateFindBusiness(FindBusiness body) throws DispositionReport {
                 // No null input
                 if (body == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
-                if (body.getCategoryBag() == null && body.getFindTModel() == null && body.getTModelBag() == null && body.getName().size() == 0
-                     && body.getIdentifierBag() == null && body.getDiscoveryURLs() == null && body.getFindRelatedBusinesses() == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.findbusiness.NoInput"));
+                validateVersion(body.getGeneric());
+                if (body.getCategoryBag() == null && body.getTModelBag() == null && body.getName().size() == 0
+                     && body.getIdentifierBag() == null && body.getDiscoveryURLs() == null) {
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.findbusiness.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 validateNames(body.getName());
                 validateFindQualifiers(body.getFindQualifiers());
+                validateFindBusinessesFindQualifiers(body.getFindQualifiers());
                 validateTModelBag(body.getTModelBag());
-                validateFindTModel(body.getFindTModel(), true);
-                validateFindRelatedBusinesses(body.getFindRelatedBusinesses(), true);
                 validateDiscoveryUrls(body.getDiscoveryURLs());
                 validateIdentifierBag(body.getIdentifierBag());
                 validateCategoryBag(body.getCategoryBag());
 
         }
 
-        public void validateFindService(FindService body) throws DispositionReportFaultMessage {
+        public static void validateFindService(FindService body) throws DispositionReport {
                 // No null input
                 if (body == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                         throw MapUDDIv3Tov2.MapException(new  FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                 }
+                validateVersion(body.getGeneric());
 
-                if (body.getCategoryBag() == null && body.getFindTModel() == null
+                if (body.getCategoryBag() == null
                      && (body.getTModelBag() == null || body.getTModelBag().getTModelKey().size() == 0)
                      && body.getName().size() == 0 && body.getBusinessKey() == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.findservice.NoInput"));
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.findservice.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 validateNames(body.getName());
                 validateFindQualifiers(body.getFindQualifiers());
+                validateFindServiceFindQualifiers(body.getFindQualifiers());
                 validateTModelBag(body.getTModelBag());
-                validateFindTModel(body.getFindTModel(), true);
                 validateCategoryBag(body.getCategoryBag());
 
         }
 
-        public void validateFindBinding(FindBinding body) throws DispositionReportFaultMessage {
+        public static void validateFindBinding(FindBinding body) throws DispositionReport {
                 // No null input
                 if (body == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                 }
+                validateVersion(body.getGeneric());
 
-                if (body.getCategoryBag() == null && body.getFindTModel() == null && body.getTModelBag() == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.findbinding.NoInput"));
+                if (body.getServiceKey() == null && body.getTModelBag() == null) {
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.findbinding.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 validateFindQualifiers(body.getFindQualifiers());
                 validateTModelBag(body.getTModelBag());
-                validateFindTModel(body.getFindTModel(), true);
-                validateCategoryBag(body.getCategoryBag());
-                validateFindingBindingFQ(body.getFindQualifiers());
-                validateFindQualifiers_AppoximateMatchAndCombinedCatbag(body.getFindQualifiers());
+                validateFindingBindingFindQualifiers(body.getFindQualifiers());
 
         }
 
-        public void validateFindTModel(FindTModel body, boolean nullAllowed) throws DispositionReportFaultMessage {
+        public static void validateFindTModel(FindTModel body, boolean nullAllowed) throws DispositionReport {
                 if (body == null) {
                         // When FindTModel objects are embedded in other find calls, null is allowed.
                         if (nullAllowed) {
                                 return;
                         } else {
-                                throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                                 throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                         }
                 }
+                validateVersion(body.getGeneric());
 
                 if (body.getCategoryBag() == null && body.getIdentifierBag() == null && body.getName() == null) {
-                        throw new FatalErrorException(new ErrorMessage("errors.findtmodel.NoInput"));
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.findtmodel.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 validateFindQualifiers(body.getFindQualifiers());
                 validateIdentifierBag(body.getIdentifierBag());
                 validateCategoryBag(body.getCategoryBag());
-                validateFindQualifiers_AppoximateMatchAndCombinedCatbag(body.getFindQualifiers());
+                validateFindTModelFindQualifiers(body.getFindQualifiers());
         }
 
-        public void validateFindRelatedBusinesses(FindRelatedBusinesses body, boolean nullAllowed) throws DispositionReportFaultMessage {
+        public static void validateFindRelatedBusinesses(FindRelatedBusinesses body, boolean nullAllowed) throws DispositionReport {
                 if (body == null) {
                         // When FindRelatedBusinesses objects are embedded in other find calls, null is allowed.
                         if (nullAllowed) {
                                 return;
                         } else {
-                                throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+                                 throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
                         }
                 }
+                validateVersion(body.getGeneric());
 
-                if ((body.getBusinessKey() == null || body.getBusinessKey().length() == 0)
-                     && (body.getFromKey() == null || body.getFromKey().length() == 0)
-                     && (body.getToKey() == null || body.getToKey().length() == 0)) {
-                        throw new FatalErrorException(new ErrorMessage("errors.findrelatedbusiness.NoInput"));
+                if ((body.getBusinessKey() == null || body.getBusinessKey().length() == 0)) {
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.findrelatedbusiness.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
-                boolean businessKeyExists = false;
-                boolean fromKeyExists = false;
                 if (body.getBusinessKey() != null && body.getBusinessKey().length() > 0) {
-                        businessKeyExists = true;
 
                         // Per section 4.4: keys must be case-folded
                         body.setBusinessKey(body.getBusinessKey().toLowerCase());
                 }
-                if (body.getFromKey() != null && body.getFromKey().length() > 0) {
-                        fromKeyExists = true;
-                        if (businessKeyExists) {
-                                throw new FatalErrorException(new ErrorMessage("errors.findrelatedbusiness.MultipleInput"));
-                        }
-
-                        // Per section 4.4: keys must be case-folded
-                        body.setFromKey(body.getFromKey().toLowerCase());
-                }
-                if (body.getToKey() != null && body.getToKey().length() > 0) {
-                        if (businessKeyExists || fromKeyExists) {
-                                throw new FatalErrorException(new ErrorMessage("errors.findrelatedbusiness.MultipleInput"));
-                        }
-
-                        // Per section 4.4: keys must be case-folded
-                        body.setToKey(body.getToKey().toLowerCase());
-                }
 
                 KeyedReference keyedRef = body.getKeyedReference();
                 if (keyedRef != null) {
                         if (keyedRef.getTModelKey() == null || keyedRef.getTModelKey().length() == 0
                              || keyedRef.getKeyName() == null || keyedRef.getKeyName().length() == 0
                              || keyedRef.getKeyValue() == null || keyedRef.getKeyValue().length() == 0) {
-                                throw new ValueNotAllowedException(new ErrorMessage("errors.findrelatedbusiness.BlankKeyedRef"));
+                                 throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.findrelatedbusiness.BlankKeyedRef")),UDDIv2InquiryImpl.getNodeID());
                         }
 
                         validateKeyedReference(keyedRef);
                 }
                 validateFindQualifiers(body.getFindQualifiers());
                 validateFindRelatedBusinessesFindQualifiers(body.getFindQualifiers());
-                validateFindQualifiers_AppoximateMatchAndCombinedCatbag(body.getFindQualifiers());
         }
 
-        public void validateNames(List<org.uddi.api_v3.Name> names) throws DispositionReportFaultMessage {
+        public static void validateNames(List<Name> names) throws DispositionReport {
                 if (names != null) {
                         for (Name n : names) {
                                 if (n.getValue() == null || n.getValue().length() == 0) {
-                                        throw new ValueNotAllowedException(new ErrorMessage("errors.names.NoValue"));
+                                         throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.names.NoValue")),UDDIv2InquiryImpl.getNodeID());
+                                }
+                                try{
+                                        ValidatePublish.validateLang(n.getLang());
+                                }catch (DispositionReportFaultMessage ex){
+                                        throw MapUDDIv3Tov2.MapException(ex, UDDIv2InquiryImpl.getNodeID());
                                 }
-                                ValidatePublish.validateLang(n.getLang());
                         }
                 }
         }
 
-        public void validateTModelBag(TModelBag tmodelBag) throws DispositionReportFaultMessage {
+        public static void validateTModelBag(TModelBag tmodelBag) throws DispositionReport {
                 // tmodelBag is optional
                 if (tmodelBag == null) {
                         return;
                 }
 
                 if (tmodelBag.getTModelKey() == null || tmodelBag.getTModelKey().size() == 0) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.tmodelbag.NoInput"));
+                         throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.tmodelbag.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 List<String> keyList = tmodelBag.getTModelKey();
@@ -379,20 +321,20 @@ public class ValidateInquiry extends Val
 
         }
 
-        public void validateDiscoveryUrls(org.uddi.api_v3.DiscoveryURLs discUrls) throws DispositionReportFaultMessage {
+        public static void validateDiscoveryUrls(DiscoveryURLs discUrls) throws DispositionReport {
                 // Discovery Urls is optional
                 if (discUrls == null) {
                         return;
                 }
 
                 // If discUrls does exist, it must have at least one element
-                List<org.uddi.api_v3.DiscoveryURL> discUrlList = discUrls.getDiscoveryURL();
+                List<DiscoveryURL> discUrlList = discUrls.getDiscoveryURL();
                 if (discUrlList == null || discUrlList.size() == 0) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.discurls.NoInput"));
+                         throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.discurls.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
         }
 
-        public void validateCategoryBag(org.uddi.api_v3.CategoryBag categories) throws DispositionReportFaultMessage {
+        public static void validateCategoryBag(CategoryBag categories) throws DispositionReport {
 
                 // Category bag is optional
                 if (categories == null) {
@@ -401,20 +343,18 @@ public class ValidateInquiry extends Val
 
                 // If category bag does exist, it must have at least one element
                 List<KeyedReference> elems = categories.getKeyedReference();
-                List<KeyedReferenceGroup> krgs = categories.getKeyedReferenceGroup();
-                if ((elems == null || elems.size() == 0) && (krgs == null || krgs.size() == 0)) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.categorybag.NoInput"));
+
+                if ((elems == null || elems.size() == 0)) {
+                         throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.categorybag.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 for (KeyedReference elem : elems) {
                         validateKeyedReference(elem);
                 }
-                for (KeyedReferenceGroup elem : krgs) {
-                        validateKeyedReferenceGroup(elem);
-                }
+
         }
 
-        public void validateIdentifierBag(org.uddi.api_v3.IdentifierBag identifiers) throws DispositionReportFaultMessage {
+        public static void validateIdentifierBag(IdentifierBag identifiers) throws DispositionReport {
 
                 // Identifier bag is optional
                 if (identifiers == null) {
@@ -422,342 +362,212 @@ public class ValidateInquiry extends Val
                 }
 
                 // If category bag does exist, it must have at least one element
-                List<org.uddi.api_v3.KeyedReference> keyedRefList = identifiers.getKeyedReference();
+                List<KeyedReference> keyedRefList = identifiers.getKeyedReference();
                 if (keyedRefList == null || keyedRefList.size() == 0) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.identifierbag.NoInput"));
+                         throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.identifierbag.NoInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
-                for (org.uddi.api_v3.KeyedReference keyedRef : keyedRefList) {
+                for (KeyedReference keyedRef : keyedRefList) {
                         validateKeyedReference(keyedRef);
                 }
         }
 
-        public void validateKeyedReferenceGroup(KeyedReferenceGroup krg) throws DispositionReportFaultMessage {
-                // Keyed reference groups must contain a tModelKey
-                if (krg.getTModelKey() == null || krg.getTModelKey().length() == 0) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoTModelKey"));
-                }
-
-                // Per section 4.4: keys must be case-folded
-                krg.setTModelKey(krg.getTModelKey().toLowerCase());
-
-                List<KeyedReference> keyedRefs = krg.getKeyedReference();
-                // Should being empty raise an error?
-                if (keyedRefs != null && keyedRefs.size() > 0) {
-                        for (KeyedReference keyedRef : keyedRefs) {
-                                validateKeyedReference(keyedRef);
-                        }
-                }
-        }
-
-        public void validateKeyedReference(KeyedReference kr) throws DispositionReportFaultMessage {
+        public static void validateKeyedReference(KeyedReference kr) throws DispositionReport {
                 if (kr == null) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NullInput"));
+                         throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NullInput")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 // Keyed references must contain a tModelKey and keyValue
                 if (kr.getTModelKey() == null || kr.getTModelKey().length() == 0) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoTModelKey"));
+                         throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoTModelKey")),UDDIv2InquiryImpl.getNodeID());
                 }
 
                 // Per section 4.4: keys must be case-folded
                 kr.setTModelKey(kr.getTModelKey().toLowerCase());
 
                 if (kr.getKeyValue() == null || kr.getKeyValue().length() == 0) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoKeyValue"));
+                         throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoKeyValue")),UDDIv2InquiryImpl.getNodeID());
                 }
         }
 
-        private void validateFindQualifiers(org.uddi.api_v3.FindQualifiers findQualifiers) throws DispositionReportFaultMessage {
+        private static void validateFindQualifiers(FindQualifiers findQualifiers) throws DispositionReport {
                 if (findQualifiers == null) {
                         return;
                 }
 
                 List<String> fqList = findQualifiers.getFindQualifier();
                 if (fqList == null || fqList.size() == 0) {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.findqualifiers.NoInput"));
+                       return;
                 }
 
                 Hashtable<String, String> fqTable = new Hashtable<String, String>();
                 for (String fq : fqList) {
                         String result = fqTable.put(fq.toUpperCase(), fq.toUpperCase());
                         if (result != null) {
-                                throw new ValueNotAllowedException(new ErrorMessage("errors.findqualifiers.DuplicateValue", result));
+                                 throw MapUDDIv3Tov2.MapException(new ValueNotAllowedException(new ErrorMessage("errors.findqualifiers.DuplicateValue", result)),UDDIv2InquiryImpl.getNodeID());
                         }
 
                         ValidateSupportedFindQualifier(fq);
 
                         // Invalid combo: andAllKeys, orAllKeys, and orLikeKeys
-                        if (fq.equalsIgnoreCase(FindQualifiers.AND_ALL_KEYS) || fq.equalsIgnoreCase(FindQualifiers.AND_ALL_KEYS_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.OR_ALL_KEYS.toUpperCase()) != null || fqTable.get(FindQualifiers.OR_ALL_KEYS_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.OR_ALL_KEYS));
-                                }
-
-                                if (fqTable.get(FindQualifiers.OR_LIKE_KEYS.toUpperCase()) != null || fqTable.get(FindQualifiers.OR_LIKE_KEYS_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.OR_LIKE_KEYS));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.OR_ALL_KEYS) || fq.equalsIgnoreCase(FindQualifiers.OR_ALL_KEYS_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.AND_ALL_KEYS.toUpperCase()) != null || fqTable.get(FindQualifiers.AND_ALL_KEYS_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.AND_ALL_KEYS));
-                                }
-
-                                if (fqTable.get(FindQualifiers.OR_LIKE_KEYS.toUpperCase()) != null || fqTable.get(FindQualifiers.OR_LIKE_KEYS_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.OR_LIKE_KEYS));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.OR_LIKE_KEYS) || fq.equalsIgnoreCase(FindQualifiers.OR_LIKE_KEYS_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.AND_ALL_KEYS.toUpperCase()) != null || fqTable.get(FindQualifiers.AND_ALL_KEYS_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.AND_ALL_KEYS));
-                                }
-
-                                if (fqTable.get(FindQualifiers.OR_ALL_KEYS.toUpperCase()) != null || fqTable.get(FindQualifiers.OR_ALL_KEYS_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.OR_ALL_KEYS));
+                        if (fq.equalsIgnoreCase(UDDIv2Constants.andAllKeys)) {
+                                if (fqTable.get(UDDIv2Constants.orAllKeys.toUpperCase()) != null || fqTable.get(UDDIv2Constants.orLikeKeys.toUpperCase()) != null) {
+                                         throw MapUDDIv3Tov2.MapException(new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + UDDIv2Constants.orAllKeys + " " + UDDIv2Constants.orLikeKeys)),UDDIv2InquiryImpl.getNodeID());
+                                }
+                        } else if (fq.equalsIgnoreCase(UDDIv2Constants.orLikeKeys)) {
+                                if (fqTable.get(UDDIv2Constants.orAllKeys.toUpperCase()) != null || fqTable.get(UDDIv2Constants.andAllKeys.toUpperCase()) != null) {
+                                         throw MapUDDIv3Tov2.MapException(new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + UDDIv2Constants.andAllKeys + " " + UDDIv2Constants.orLikeKeys)),UDDIv2InquiryImpl.getNodeID());
+                                }
+                        } else if (fq.equalsIgnoreCase(UDDIv2Constants.orAllKeys)) {
+                                if (fqTable.get(UDDIv2Constants.orLikeKeys.toUpperCase()) != null || fqTable.get(UDDIv2Constants.andAllKeys.toUpperCase()) != null) {
+                                         throw MapUDDIv3Tov2.MapException(new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + UDDIv2Constants.andAllKeys + " " + UDDIv2Constants.orLikeKeys)),UDDIv2InquiryImpl.getNodeID());
                                 }
                         }
 
                         // Invalid combo: sortByNameAsc and sortByNameDesc
-                        if (fq.equalsIgnoreCase(FindQualifiers.SORT_BY_NAME_ASC) || fq.equalsIgnoreCase(FindQualifiers.SORT_BY_NAME_ASC_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.SORT_BY_NAME_DESC.toUpperCase()) != null || fqTable.get(FindQualifiers.SORT_BY_NAME_DESC_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.SORT_BY_NAME_DESC));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.SORT_BY_NAME_DESC) || fq.equalsIgnoreCase(FindQualifiers.SORT_BY_NAME_DESC_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.SORT_BY_NAME_ASC.toUpperCase()) != null || fqTable.get(FindQualifiers.SORT_BY_NAME_ASC_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.SORT_BY_NAME_ASC));
-                                }
-                        }
-
+                        //handled by uddiv3
                         // Invalid combo: sortByDateAsc and sortByDateDesc
-                        if (fq.equalsIgnoreCase(FindQualifiers.SORT_BY_DATE_ASC) || fq.equalsIgnoreCase(FindQualifiers.SORT_BY_DATE_ASC_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.SORT_BY_DATE_DESC.toUpperCase()) != null || fqTable.get(FindQualifiers.SORT_BY_DATE_DESC_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.SORT_BY_DATE_DESC));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.SORT_BY_DATE_DESC) || fq.equalsIgnoreCase(FindQualifiers.SORT_BY_DATE_DESC_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.SORT_BY_DATE_ASC.toUpperCase()) != null || fqTable.get(FindQualifiers.SORT_BY_DATE_ASC_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.SORT_BY_DATE_ASC));
-                                }
-                        }
-
+                        //handle by uddiv3
                         // Invalid combo: combineCategoryBags, serviceSubset and bindingSubset 
-                        if (fq.equalsIgnoreCase(FindQualifiers.COMBINE_CATEGORY_BAGS) || fq.equalsIgnoreCase(FindQualifiers.COMBINE_CATEGORY_BAGS_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.SERVICE_SUBSET.toUpperCase()) != null || fqTable.get(FindQualifiers.SERVICE_SUBSET_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.SERVICE_SUBSET));
-                                }
-
-                                if (fqTable.get(FindQualifiers.BINDING_SUBSET.toUpperCase()) != null || fqTable.get(FindQualifiers.BINDING_SUBSET_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.BINDING_SUBSET));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.SERVICE_SUBSET) || fq.equalsIgnoreCase(FindQualifiers.SERVICE_SUBSET_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.COMBINE_CATEGORY_BAGS.toUpperCase()) != null || fqTable.get(FindQualifiers.COMBINE_CATEGORY_BAGS_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.COMBINE_CATEGORY_BAGS));
-                                }
-
-                                if (fqTable.get(FindQualifiers.BINDING_SUBSET.toUpperCase()) != null || fqTable.get(FindQualifiers.BINDING_SUBSET_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.BINDING_SUBSET));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.BINDING_SUBSET) || fq.equalsIgnoreCase(FindQualifiers.BINDING_SUBSET_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.SERVICE_SUBSET.toUpperCase()) != null || fqTable.get(FindQualifiers.SERVICE_SUBSET_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.SERVICE_SUBSET));
-                                }
-
-                                if (fqTable.get(FindQualifiers.COMBINE_CATEGORY_BAGS.toUpperCase()) != null || fqTable.get(FindQualifiers.COMBINE_CATEGORY_BAGS_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.COMBINE_CATEGORY_BAGS));
-                                }
-                        }
-
-                        // Invalid combo: exactMatch and approximateMatch
-                        if (fq.equalsIgnoreCase(FindQualifiers.EXACT_MATCH) || fq.equalsIgnoreCase(FindQualifiers.EXACT_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.APPROXIMATE_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.APPROXIMATE_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.APPROXIMATE_MATCH));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.APPROXIMATE_MATCH) || fq.equalsIgnoreCase(FindQualifiers.APPROXIMATE_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.EXACT_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.EXACT_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.EXACT_MATCH));
-                                }
-                        }
-
-                        // Invalid combo: exactMatch and caseInsensitiveMatch
-                        if (fq.equalsIgnoreCase(FindQualifiers.EXACT_MATCH) || fq.equalsIgnoreCase(FindQualifiers.EXACT_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.CASE_INSENSITIVE_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.CASE_INSENSITIVE_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.CASE_INSENSITIVE_MATCH));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_MATCH) || fq.equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.EXACT_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.EXACT_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.EXACT_MATCH));
-                                }
-                        }
-
-                        // Invalid combo: binarySort and UTS-10 
-                        if (fq.equalsIgnoreCase(FindQualifiers.BINARY_SORT) || fq.equalsIgnoreCase(FindQualifiers.BINARY_SORT_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.UTS_10.toUpperCase()) != null || fqTable.get(FindQualifiers.UTS_10_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.UTS_10));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.UTS_10) || fq.equalsIgnoreCase(FindQualifiers.UTS_10_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.BINARY_SORT.toUpperCase()) != null || fqTable.get(FindQualifiers.BINARY_SORT_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.BINARY_SORT));
-                                }
-                        }
-
-                        // Invalid combo: diacriticSensitiveMatch and diacriticInsensitiveMatch
-                        if (fq.equalsIgnoreCase(FindQualifiers.DIACRITIC_SENSITIVE_MATCH) || fq.equalsIgnoreCase(FindQualifiers.DIACRITIC_SENSITIVE_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.DIACRITIC_INSENSITIVE_MATCH));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH) || fq.equalsIgnoreCase(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.DIACRITIC_SENSITIVE_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.DIACRITIC_SENSITIVE_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.DIACRITIC_SENSITIVE_MATCH));
-                                }
-                        }
+                        //handled by uddiv3
+                }
+        }
 
-                        // Invalid combo: exactMatch and diacriticInsensitiveMatch
-                        if (fq.equalsIgnoreCase(FindQualifiers.EXACT_MATCH) || fq.equalsIgnoreCase(FindQualifiers.EXACT_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.DIACRITIC_INSENSITIVE_MATCH));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH) || fq.equalsIgnoreCase(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.EXACT_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.EXACT_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.EXACT_MATCH));
-                                }
+        private static void validateFindingBindingFindQualifiers(FindQualifiers findQualifiers) throws DispositionReport {
+                if (findQualifiers == null) {
+                        return;
+                }
+                for (int i = 0; i < findQualifiers.getFindQualifier().size(); i++) {
+                        if (!findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.orAllKeys)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateDesc)) {
+                                 throw MapUDDIv3Tov2.MapException(new UnsupportedException(new ErrorMessage("errors.Unsupported.findQualifier", findQualifiers.getFindQualifier().get(i))),UDDIv2InquiryImpl.getNodeID());
                         }
 
-                        // Invalid combo: caseSensitiveSort and caseInsensitiveSort
-                        if (fq.equalsIgnoreCase(FindQualifiers.CASE_SENSITIVE_SORT) || fq.equalsIgnoreCase(FindQualifiers.CASE_SENSITIVE_SORT_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.CASE_INSENSITIVE_SORT.toUpperCase()) != null || fqTable.get(FindQualifiers.CASE_INSENSITIVE_SORT_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.CASE_INSENSITIVE_SORT));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_SORT) || fq.equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_SORT_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.CASE_SENSITIVE_SORT.toUpperCase()) != null || fqTable.get(FindQualifiers.CASE_SENSITIVE_SORT_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.CASE_SENSITIVE_SORT));
-                                }
-                        }
+                }
+        }
 
-                        // Invalid combo: caseSensitiveMatch and caseInsensitiveMatch
-                        if (fq.equalsIgnoreCase(FindQualifiers.CASE_SENSITIVE_MATCH) || fq.equalsIgnoreCase(FindQualifiers.CASE_SENSITIVE_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.CASE_INSENSITIVE_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.CASE_INSENSITIVE_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.CASE_INSENSITIVE_MATCH));
-                                }
-                        } else if (fq.equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_MATCH) || fq.equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_MATCH_TMODEL)) {
-                                if (fqTable.get(FindQualifiers.CASE_SENSITIVE_MATCH.toUpperCase()) != null || fqTable.get(FindQualifiers.CASE_SENSITIVE_MATCH_TMODEL.toUpperCase()) != null) {
-                                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", fq + " & " + FindQualifiers.CASE_SENSITIVE_MATCH));
-                                }
+        private static void validateFindRelatedBusinessesFindQualifiers(FindQualifiers findQualifiers) throws DispositionReport {
+                if (findQualifiers == null) {
+                        return;
+                }
+                for (int i = 0; i < findQualifiers.getFindQualifier().size(); i++) {
+                        if (!findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByNameAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByNameDesc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateDesc)) {
+                                 throw MapUDDIv3Tov2.MapException(new UnsupportedException(new ErrorMessage("errors.Unsupported.findQualifier", findQualifiers.getFindQualifier().get(i))),UDDIv2InquiryImpl.getNodeID());
                         }
-
                 }
         }
 
-        private void validateFindingBindingFQ(org.uddi.api_v3.FindQualifiers findQualifiers) throws InvalidCombinationException {
+        private static void validateFindBusinessesFindQualifiers(FindQualifiers findQualifiers) throws DispositionReport {
                 if (findQualifiers == null) {
                         return;
                 }
                 for (int i = 0; i < findQualifiers.getFindQualifier().size(); i++) {
-                        if (findQualifiers.getFindQualifier().get(i).equals(FindQualifiers.BINARY_SORT) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.BINARY_SORT_TMODEL)) {
-                                throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.BINARY_SORT));
-                        }
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_MATCH) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_MATCH_TMODEL)) {
-                                throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.CASE_INSENSITIVE_MATCH));
-                        }
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.CASE_SENSITIVE_MATCH) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.CASE_SENSITIVE_MATCH_TMODEL)) {
-                                throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.CASE_SENSITIVE_MATCH));
-                        }
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_SORT) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.CASE_INSENSITIVE_SORT_TMODEL)) {
-                                throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.CASE_INSENSITIVE_SORT));
-                        }
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.CASE_SENSITIVE_SORT) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.CASE_SENSITIVE_SORT_TMODEL)) {
-                                throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.CASE_SENSITIVE_SORT_TMODEL));
-                        }
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.SORT_BY_NAME_ASC) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.SORT_BY_NAME_ASC_TMODEL)) {
-                                throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.SORT_BY_NAME_ASC));
-                        }
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.SORT_BY_NAME_DESC) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.SORT_BY_NAME_DESC_TMODEL)) {
-                                throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.SORT_BY_NAME_DESC));
+                        if (!findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.exactNameMatch)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.caseSensitiveMatch)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByNameAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByNameDesc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateDesc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.orLikeKeys)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.orAllKeys)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.serviceSubset)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.combineCategoryBags)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.andAllKeys)) {
+                                 throw MapUDDIv3Tov2.MapException(new UnsupportedException(new ErrorMessage("errors.Unsupported.findQualifier", findQualifiers.getFindQualifier().get(i))),UDDIv2InquiryImpl.getNodeID());
                         }
                 }
         }
 
-        private void validateFindRelatedBusinessesFindQualifiers(org.uddi.api_v3.FindQualifiers findQualifiers) throws InvalidCombinationException {
+        private static void validateFindServiceFindQualifiers(FindQualifiers findQualifiers) throws DispositionReport {
                 if (findQualifiers == null) {
                         return;
                 }
                 for (int i = 0; i < findQualifiers.getFindQualifier().size(); i++) {
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.AND_ALL_KEYS) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.AND_ALL_KEYS_TMODEL)) {
-                                throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.AND_ALL_KEYS));
+                        if (!findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.exactNameMatch)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.caseSensitiveMatch)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByNameAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByNameDesc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateDesc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.orLikeKeys)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.orAllKeys) //&& !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.serviceSubset)
+                             // && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.combineCategoryBags)
+                             //&& !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.andAllKeys)
+                             ) {
+                                 throw MapUDDIv3Tov2.MapException(new UnsupportedException(new ErrorMessage("errors.Unsupported.findQualifier", findQualifiers.getFindQualifier().get(i))),UDDIv2InquiryImpl.getNodeID());
                         }
                 }
         }
 
-        private void validateFindQualifiers_AppoximateMatchAndCombinedCatbag(org.uddi.api_v3.FindQualifiers findQualifiers) throws InvalidCombinationException {
+        private static void validateFindTModelFindQualifiers(FindQualifiers findQualifiers) throws DispositionReport {
                 if (findQualifiers == null) {
                         return;
                 }
-                boolean containsAPPROXIMATE_MATCH = false;
-                boolean containsCOMBINE_CATEGORY_BAGS = false;
                 for (int i = 0; i < findQualifiers.getFindQualifier().size(); i++) {
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.APPROXIMATE_MATCH) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.APPROXIMATE_MATCH_TMODEL)) {
-                                containsAPPROXIMATE_MATCH = true;
-                        }
-                        if (findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.COMBINE_CATEGORY_BAGS) || findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(FindQualifiers.COMBINE_CATEGORY_BAGS_TMODEL)) {
-                                containsCOMBINE_CATEGORY_BAGS = true;
+                        if (!findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.exactNameMatch)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.caseSensitiveMatch)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByNameAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByNameDesc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateAsc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.sortByDateDesc)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.orLikeKeys)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.orAllKeys)
+                             //&& !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.serviceSubset)
+                             // && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.combineCategoryBags)
+                             && !findQualifiers.getFindQualifier().get(i).equalsIgnoreCase(UDDIv2Constants.andAllKeys)) {
+                                 throw MapUDDIv3Tov2.MapException(new UnsupportedException(new ErrorMessage("errors.Unsupported.findQualifier", findQualifiers.getFindQualifier().get(i))),UDDIv2InquiryImpl.getNodeID());
                         }
                 }
-                if (containsAPPROXIMATE_MATCH && containsCOMBINE_CATEGORY_BAGS) {
-                        throw new InvalidCombinationException(new ErrorMessage("errors.findqualifiers.InvalidCombo", FindQualifiers.COMBINE_CATEGORY_BAGS + " & " + FindQualifiers.APPROXIMATE_MATCH_TMODEL));
-                }
-
         }
 
-        static Map<String,Boolean> supportedFindqualifiers = null;
-        private void ValidateSupportedFindQualifier(String fq) throws UnsupportedException {
-                if (supportedFindqualifiers==null || supportedFindqualifiers.isEmpty())
+        static Map<String, Boolean> supportedFindqualifiers = null;
+
+        private static void ValidateSupportedFindQualifier(String fq) throws DispositionReport {
+                if (supportedFindqualifiers == null || supportedFindqualifiers.isEmpty()) {
                         InitFindQualifierMap();
-                if (supportedFindqualifiers.get(fq.toLowerCase())==null)
-                        throw new UnsupportedException(new ErrorMessage("errors.Unsupported.findQualifier", fq));
+                }
+                if (supportedFindqualifiers.get(fq.toLowerCase()) == null) {
+                         throw MapUDDIv3Tov2.MapException(new UnsupportedException(new ErrorMessage("errors.Unsupported.findQualifier", fq)),UDDIv2InquiryImpl.getNodeID());
+                }
         }
 
-        private void InitFindQualifierMap() {
+        private static void InitFindQualifierMap() {
                 supportedFindqualifiers = new HashMap<String, Boolean>();
-                supportedFindqualifiers.put(FindQualifiers.AND_ALL_KEYS.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.AND_ALL_KEYS_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.APPROXIMATE_MATCH.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.APPROXIMATE_MATCH_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.BINARY_SORT.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.BINARY_SORT_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.BINDING_SUBSET.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.BINDING_SUBSET_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.CASE_INSENSITIVE_MATCH.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.CASE_INSENSITIVE_MATCH_TMODEL.toLowerCase(), true);
-                //these are NOT supported, see JUDDI-785
-                //supportedFindqualifiers.put(FindQualifiers.CASE_INSENSITIVE_SORT.toLowerCase(), true);
-                //supportedFindqualifiers.put(FindQualifiers.CASE_INSENSITIVE_SORT_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.CASE_SENSITIVE_MATCH.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.CASE_SENSITIVE_MATCH_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.CASE_SENSITIVE_SORT.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.CASE_SENSITIVE_SORT_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.COMBINE_CATEGORY_BAGS.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.COMBINE_CATEGORY_BAGS_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.DIACRITIC_INSENSITIVE_MATCH_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.DIACRITIC_SENSITIVE_MATCH.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.DIACRITIC_SENSITIVE_MATCH_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.EXACT_MATCH.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.EXACT_MATCH_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.OR_ALL_KEYS.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.OR_ALL_KEYS_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.OR_LIKE_KEYS.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.OR_LIKE_KEYS_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SERVICE_SUBSET.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SERVICE_SUBSET_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SIGNATURE_PRESENT.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SIGNATURE_PRESENT_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SORT_BY_DATE_ASC.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SORT_BY_DATE_ASC_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SORT_BY_DATE_DESC.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SORT_BY_DATE_DESC_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SORT_BY_NAME_ASC.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SORT_BY_NAME_ASC_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SORT_BY_NAME_DESC.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SORT_BY_NAME_DESC_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SUPPRESS_PROJECTED_SERVICES.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.SUPPRESS_PROJECTED_SERVICES_TMODEL.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.UTS_10.toLowerCase(), true);
-                supportedFindqualifiers.put(FindQualifiers.UTS_10_TMODEL.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.andAllKeys.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.caseSensitiveMatch.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.combineCategoryBags.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.exactNameMatch.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.orAllKeys.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.orLikeKeys.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.serviceSubset.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.sortByDateAsc.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.sortByDateDesc.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.sortByNameAsc.toLowerCase(), true);
+                supportedFindqualifiers.put(UDDIv2Constants.sortByNameDesc.toLowerCase(), true);
+
+        }
+
+        private static void validateVersion(String generic) throws DispositionReport {
+                if (!VER.equalsIgnoreCase(generic)) {
+                        throw MapUDDIv3Tov2.MapException(new UnsupportedException(new ErrorMessage("E_unrecognizedVersion", generic)), UDDIv2InquiryImpl.getNodeID());
+                }
+        }
+
+        public static void validateBusinessDetailExt(GetBusinessDetailExt body) throws DispositionReport {
+                // No null input
+                if (body == null) {
+                         throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
+                }
+
+                validateVersion(body.getGeneric());
+                if (body.getBusinessKey().isEmpty())
+                        throw MapUDDIv3Tov2.MapException(new FatalErrorException(new ErrorMessage("errors.NullInput")),UDDIv2InquiryImpl.getNodeID());
+                        
+                
                 
         }
 }

Modified: juddi/trunk/uddi-tck-base/src/main/resources/uddi_data_v2/find/findTModelByCategoryBag.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/resources/uddi_data_v2/find/findTModelByCategoryBag.xml?rev=1569566&r1=1569565&r2=1569566&view=diff
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/resources/uddi_data_v2/find/findTModelByCategoryBag.xml (original)
+++ juddi/trunk/uddi-tck-base/src/main/resources/uddi_data_v2/find/findTModelByCategoryBag.xml Tue Feb 18 23:52:23 2014
@@ -17,8 +17,6 @@
  */ -->
 <find_tModel xmlns="urn:uddi-org:api_v2" xmlns:xml="http://www.w3.org/XML/1998/namespace">
   <findQualifiers>
-    <findQualifier>caseInsensitiveMatch</findQualifier>
-    <findQualifier>approximateMatch</findQualifier>
     <findQualifier>andAllKeys</findQualifier>
   </findQualifiers>
   <categoryBag>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org