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/01/20 01:22:29 UTC

svn commit: r1559611 [2/3] - in /juddi/trunk: juddi-client/src/main/java/org/apache/juddi/v3/client/config/ juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/ juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ juddi-client/src/m...

Modified: juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/builders/Builders.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/builders/Builders.java?rev=1559611&r1=1559610&r2=1559611&view=diff
==============================================================================
--- juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/builders/Builders.java (original)
+++ juddi/trunk/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/builders/Builders.java Mon Jan 20 00:22:28 2014
@@ -45,933 +45,933 @@ import org.uddi.sub_v3.SubscriptionFilte
  */
 public class Builders {
 
-    /**
-     * important - regex to separate postback names from indexes, do not remove
-     * or alter
-     */
-    static final Pattern p = Pattern.compile("[a-zA-Z]");
-
-    /**
-     * Returns a new map, filtering the original map by key string starts with
-     *
-     * @param map
-     * @param pattern
-     * @return
-     */
-    public static Map MapFilter(Map map, String pattern) {
-        Map ret = new HashMap();
-        Iterator it = map.keySet().iterator();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            if (key.startsWith(pattern)) {
-                ret.put(key, map.get(key));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * Prefix should be contactXName
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static List<PersonName> BuildContactPersonNames(Map map, String prefix, String cte, String locale) {
-        List<PersonName> ret = new ArrayList();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    PersonName pn = new PersonName();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.LANG);
-                    if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
-                        pn.setLang(null);
-                    } else {
-                        pn.setLang(t[0]);
-                    }
-                    t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.setValue(t[0]);
-                    ret.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * overview docs
-     *
-     * @param map
-     * @param prefix
-     * @param cte
-     * @return
-     */
-    public static List<OverviewDoc> BuildOverviewDocs(Map map, String prefix, String cte, String locale) {
-        List<OverviewDoc> ret = new ArrayList<OverviewDoc>();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    OverviewDoc pn = new OverviewDoc();
-                    pn.setOverviewURL(new OverviewURL());
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.getOverviewURL().setValue(t[0]);
-                    t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
-                    pn.getOverviewURL().setUseType(t[0]);
-                    pn.getDescription().addAll(BuildDescription(MapFilter(map, prefix + index + PostBackConstants.DESCRIPTION), prefix + index + PostBackConstants.DESCRIPTION, cte, locale));
-                    ret.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * phone numbers
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static List<Phone> BuildPhone(Map map, String prefix, String locale) {
-        List<Phone> ret = new ArrayList();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    Phone pn = new Phone();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
-                    pn.setUseType(t[0]);
-                    t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.setValue(t[0]);
-                    ret.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * builds a contact
-     *
-     * @param m
-     * @param prefix
-     * @param cte
-     * @return
-     */
-    public static Contact BuildSingleContact(Map m, String prefix, String cte, String locale) {
-        Contact c = new Contact();
-        String[] t = (String[]) m.get(prefix + PostBackConstants.TYPE);
-        c.setUseType(t[0]);
-        c.getPersonName().addAll(BuildContactPersonNames(MapFilter(m, prefix + PostBackConstants.NAME), prefix + PostBackConstants.NAME, cte, locale));
-        c.getDescription().addAll(BuildDescription(MapFilter(m, prefix + PostBackConstants.DESCRIPTION), prefix + PostBackConstants.DESCRIPTION, cte, locale));
-        c.getEmail().addAll(BuildEmail(MapFilter(m, prefix + PostBackConstants.EMAIL), prefix + PostBackConstants.EMAIL, locale));
-        c.getPhone().addAll(BuildPhone(MapFilter(m, prefix + PostBackConstants.PHONE), prefix + PostBackConstants.PHONE, locale));
-        c.getAddress().addAll(BuildAddress(MapFilter(m, prefix + PostBackConstants.ADDRESS), prefix + PostBackConstants.ADDRESS, cte, locale));
-        return c;
-    }
-
-    /**
-     * name elements
-     *
-     * @param map
-     * @param prefix
-     * @param cte
-     * @return
-     */
-    public static List<Name> BuildNames(Map map, String prefix, String cte, String locale) {
-        List<Name> ret = new ArrayList();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    Name pn = new Name();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.LANG);
-                    if (t[0].equalsIgnoreCase(cte)) {
-                        pn.setLang(null);
-                    } else {
-                        pn.setLang(t[0]);
-                    }
-                    t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.setValue(t[0]);
-                    ret.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * builds a compelte category bag
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static CategoryBag BuildCatBag(Map map, String prefix, String locale) {
-        CategoryBag ret = new CategoryBag();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    KeyedReference pn = new KeyedReference();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.setTModelKey(t[0]);
-                    t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
-                    pn.setKeyName(t[0]);
-                    t = (String[]) map.get(prefix + index + PostBackConstants.KEYVALUE);
-                    pn.setKeyValue(t[0]);
-                    ret.getKeyedReference().add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * identifier bag
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static IdentifierBag BuildIdentBag(Map map, String prefix, String locale) {
-        IdentifierBag ret = new IdentifierBag();
-        ret.getKeyedReference().addAll(BuildKeyedReference(map, prefix, locale));
-        if (ret.getKeyedReference().isEmpty()) {
-            return null;
-        }
-        return ret;
-    }
-
-    /**
-     * discovery urls
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static DiscoveryURLs BuildDisco(Map map, String prefix, String locale) {
-        DiscoveryURLs list = new DiscoveryURLs();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    DiscoveryURL pn = new DiscoveryURL();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
-                    pn.setUseType(t[0]);
-                    t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.setValue(t[0]);
-                    list.getDiscoveryURL().add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        if (list.getDiscoveryURL().isEmpty()) {
-            return null;
-        }
-        return list;
-    }
-
-    /**
-     * addresses
-     *
-     * @param map
-     * @param prefix
-     * @param cte
-     * @return
-     */
-    public static List<Address> BuildAddress(Map map, String prefix, String cte, String locale) {
-        List<Address> ret = new ArrayList();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    Address pn = new Address();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.LANG);
-                    if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
-                        pn.setLang(null);
-                    } else {
-                        pn.setLang(t[0]);
-                    }
-                    t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
-                    if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
-                        pn.setUseType(null);
-                    } else {
-                        pn.setUseType(t[0]);
-                    }
-                    t = (String[]) map.get(prefix + index + PostBackConstants.SORTCODE);
-                    if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
-                        pn.setSortCode(null);
-                    } else {
-                        pn.setSortCode(t[0]);
-                    }
-                    t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
-                    if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
-                        pn.setTModelKey(null);
-                    } else {
-                        pn.setTModelKey(t[0]);
-                    }
-                    pn.getAddressLine().addAll(BuildAddressLine(MapFilter(map, prefix + index + PostBackConstants.ADDRESSLINE), prefix + index + PostBackConstants.ADDRESSLINE, locale));
-                    ret.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * keyed reference group
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static List<KeyedReferenceGroup> BuildKeyedReferenceGroup(Map map, String prefix, String locale) {
-        List<KeyedReferenceGroup> ret = new ArrayList<KeyedReferenceGroup>();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    KeyedReferenceGroup pn = new KeyedReferenceGroup();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    if (t != null) {
-                        pn.setTModelKey(t[0]);
-                        pn.getKeyedReference().addAll(BuildKeyedReference(MapFilter(map, prefix + index + PostBackConstants.KEY_REF), prefix + index + PostBackConstants.KEY_REF, locale));
-                        ret.add(pn);
-                    } else {
-                        UddiHub.log.warn("Unexpected null from BuildKeyedReferenceGroup " + filteredkey + " " + prefix + " " + key);
-                    }
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * contactX
-     *
-     * @param map
-     * @return
-     */
-    public static Contacts BuildContacts(Map map, String cte, String locale) {
-        Contacts cb = new Contacts();
-        Map contactdata = MapFilter(map, PostBackConstants.CONTACT_PREFIX);
-        Iterator it = contactdata.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            key = key.replace(PostBackConstants.CONTACT_PREFIX, "");
-            Matcher match = p.matcher(key);
-            if (match.find()) {
-                String index = key.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    cb.getContact().add(BuildSingleContact(MapFilter(contactdata, PostBackConstants.CONTACT_PREFIX + index), PostBackConstants.CONTACT_PREFIX + index, cte, locale));
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        if (cb.getContact().isEmpty()) {
-            return null;
-        }
-        return cb;
-    }
-
-    /**
-     * email
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static List<Email> BuildEmail(Map map, String prefix, String locale) {
-        List<Email> list = new ArrayList<Email>();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    Email pn = new Email();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
-                    pn.setUseType(t[0]);
-                    t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.setValue(t[0]);
-                    list.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return list;
-    }
-
-    /**
-     * description
-     *
-     * @param map
-     * @param prefix
-     * @param cte
-     * @return
-     */
-    public static List<Description> BuildDescription(Map map, String prefix, String cte, String locale) {
-        List<Description> ret = new ArrayList();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    Description pn = new Description();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.LANG);
-                    if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
-                        pn.setLang(null);
-                    } else {
-                        pn.setLang(t[0]);
-                    }
-                    t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.setValue(t[0]);
-                    ret.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * keyed references
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static List<KeyedReference> BuildKeyedReference(Map map, String prefix, String locale) {
-        List<KeyedReference> ret = new ArrayList<KeyedReference>();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    KeyedReference pn = new KeyedReference();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    if (t != null) {
-                        pn.setTModelKey(t[0]);
-                        t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
-                        pn.setKeyName(t[0]);
-                        t = (String[]) map.get(prefix + index + PostBackConstants.KEYVALUE);
-                        pn.setKeyValue(t[0]);
-                        ret.add(pn);
-                    }
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * address lines
-     *
-     * @param map
-     * @param prefix
-     * @return
-     */
-    public static List<AddressLine> BuildAddressLine(Map map, String prefix, String locale) {
-        List<AddressLine> ret = new ArrayList();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    AddressLine pn = new AddressLine();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    pn.setValue(t[0]);
-                    t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
-                    pn.setKeyName(t[0]);
-                    t = (String[]) map.get(prefix + index + PostBackConstants.KEYVALUE);
-                    pn.setKeyValue(t[0]);
-                    ret.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * binding templates
-     *
-     * @param map
-     * @param prefix
-     * @param cte
-     * @return
-     */
-    public static List<BindingTemplate> BuildBindingTemplates(Map map, String prefix, String cte, String locale) {
-        List<BindingTemplate> ret = new ArrayList();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    BindingTemplate pn = new BindingTemplate();
+        /**
+         * important - regex to separate postback names from indexes, do not
+         * remove or alter
+         */
+        static final Pattern p = Pattern.compile("[a-zA-Z]");
+
+        /**
+         * Returns a new map, filtering the original map by key string starts
+         * with
+         *
+         * @param map
+         * @param pattern
+         * @return filtered map
+         */
+        public static Map MapFilter(Map map, String pattern) {
+                Map ret = new HashMap();
+                Iterator it = map.keySet().iterator();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        if (key.startsWith(pattern)) {
+                                ret.put(key, map.get(key));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * Prefix should be contactXName
+         *
+         * @param map
+         * @param prefix
+         * @return list
+         */
+        public static List<PersonName> BuildContactPersonNames(Map map, String prefix, String cte, String locale) {
+                List<PersonName> ret = new ArrayList();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        PersonName pn = new PersonName();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.LANG);
+                                        if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
+                                                pn.setLang(null);
+                                        } else {
+                                                pn.setLang(t[0]);
+                                        }
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.setValue(t[0]);
+                                        ret.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * overview docs
+         *
+         * @param map
+         * @param prefix
+         * @param cte
+         * @return list
+         */
+        public static List<OverviewDoc> BuildOverviewDocs(Map map, String prefix, String cte, String locale) {
+                List<OverviewDoc> ret = new ArrayList<OverviewDoc>();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        OverviewDoc pn = new OverviewDoc();
+                                        pn.setOverviewURL(new OverviewURL());
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.getOverviewURL().setValue(t[0]);
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
+                                        pn.getOverviewURL().setUseType(t[0]);
+                                        pn.getDescription().addAll(BuildDescription(MapFilter(map, prefix + index + PostBackConstants.DESCRIPTION), prefix + index + PostBackConstants.DESCRIPTION, cte, locale));
+                                        ret.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * phone numbers
+         *
+         * @param map
+         * @param prefix
+         * @return list
+         */
+        public static List<Phone> BuildPhone(Map map, String prefix, String locale) {
+                List<Phone> ret = new ArrayList();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        Phone pn = new Phone();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
+                                        pn.setUseType(t[0]);
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.setValue(t[0]);
+                                        ret.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * builds a contact
+         *
+         * @param m
+         * @param prefix
+         * @param cte
+         * @return contact
+         */
+        public static Contact BuildSingleContact(Map m, String prefix, String cte, String locale) {
+                Contact c = new Contact();
+                String[] t = (String[]) m.get(prefix + PostBackConstants.TYPE);
+                c.setUseType(t[0]);
+                c.getPersonName().addAll(BuildContactPersonNames(MapFilter(m, prefix + PostBackConstants.NAME), prefix + PostBackConstants.NAME, cte, locale));
+                c.getDescription().addAll(BuildDescription(MapFilter(m, prefix + PostBackConstants.DESCRIPTION), prefix + PostBackConstants.DESCRIPTION, cte, locale));
+                c.getEmail().addAll(BuildEmail(MapFilter(m, prefix + PostBackConstants.EMAIL), prefix + PostBackConstants.EMAIL, locale));
+                c.getPhone().addAll(BuildPhone(MapFilter(m, prefix + PostBackConstants.PHONE), prefix + PostBackConstants.PHONE, locale));
+                c.getAddress().addAll(BuildAddress(MapFilter(m, prefix + PostBackConstants.ADDRESS), prefix + PostBackConstants.ADDRESS, cte, locale));
+                return c;
+        }
+
+        /**
+         * name elements
+         *
+         * @param map
+         * @param prefix
+         * @param cte
+         * @return list
+         */
+        public static List<Name> BuildNames(Map map, String prefix, String cte, String locale) {
+                List<Name> ret = new ArrayList();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        Name pn = new Name();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.LANG);
+                                        if (t[0].equalsIgnoreCase(cte)) {
+                                                pn.setLang(null);
+                                        } else {
+                                                pn.setLang(t[0]);
+                                        }
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.setValue(t[0]);
+                                        ret.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * builds a compelte category bag
+         *
+         * @param map
+         * @param prefix
+         * @return catbag
+         */
+        public static CategoryBag BuildCatBag(Map map, String prefix, String locale) {
+                CategoryBag ret = new CategoryBag();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        KeyedReference pn = new KeyedReference();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.setTModelKey(t[0]);
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
+                                        pn.setKeyName(t[0]);
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.KEYVALUE);
+                                        pn.setKeyValue(t[0]);
+                                        ret.getKeyedReference().add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * identifier bag
+         *
+         * @param map
+         * @param prefix
+         * @param locale
+         * @return identbag
+         */
+        public static IdentifierBag BuildIdentBag(Map map, String prefix, String locale) {
+                IdentifierBag ret = new IdentifierBag();
+                ret.getKeyedReference().addAll(BuildKeyedReference(map, prefix, locale));
+                if (ret.getKeyedReference().isEmpty()) {
+                        return null;
+                }
+                return ret;
+        }
+
+        /**
+         * discovery urls
+         *
+         * @param map
+         * @param prefix
+         * @param locale
+         * @return disco urls
+         */
+        public static DiscoveryURLs BuildDisco(Map map, String prefix, String locale) {
+                DiscoveryURLs list = new DiscoveryURLs();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        DiscoveryURL pn = new DiscoveryURL();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
+                                        pn.setUseType(t[0]);
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.setValue(t[0]);
+                                        list.getDiscoveryURL().add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                if (list.getDiscoveryURL().isEmpty()) {
+                        return null;
+                }
+                return list;
+        }
+
+        /**
+         * addresses
+         *
+         * @param map
+         * @param prefix
+         * @param cte
+         * @return list
+         */
+        public static List<Address> BuildAddress(Map map, String prefix, String cte, String locale) {
+                List<Address> ret = new ArrayList();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        Address pn = new Address();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.LANG);
+                                        if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
+                                                pn.setLang(null);
+                                        } else {
+                                                pn.setLang(t[0]);
+                                        }
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
+                                        if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
+                                                pn.setUseType(null);
+                                        } else {
+                                                pn.setUseType(t[0]);
+                                        }
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.SORTCODE);
+                                        if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
+                                                pn.setSortCode(null);
+                                        } else {
+                                                pn.setSortCode(t[0]);
+                                        }
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
+                                        if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
+                                                pn.setTModelKey(null);
+                                        } else {
+                                                pn.setTModelKey(t[0]);
+                                        }
+                                        pn.getAddressLine().addAll(BuildAddressLine(MapFilter(map, prefix + index + PostBackConstants.ADDRESSLINE), prefix + index + PostBackConstants.ADDRESSLINE, locale));
+                                        ret.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * keyed reference group
+         *
+         * @param map
+         * @param prefix
+         * @return list
+         */
+        public static List<KeyedReferenceGroup> BuildKeyedReferenceGroup(Map map, String prefix, String locale) {
+                List<KeyedReferenceGroup> ret = new ArrayList<KeyedReferenceGroup>();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        KeyedReferenceGroup pn = new KeyedReferenceGroup();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        if (t != null) {
+                                                pn.setTModelKey(t[0]);
+                                                pn.getKeyedReference().addAll(BuildKeyedReference(MapFilter(map, prefix + index + PostBackConstants.KEY_REF), prefix + index + PostBackConstants.KEY_REF, locale));
+                                                ret.add(pn);
+                                        } else {
+                                                UddiHub.log.warn("Unexpected null from BuildKeyedReferenceGroup " + filteredkey + " " + prefix + " " + key);
+                                        }
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * contactX
+         *
+         * @param map
+         * @return contacts
+         */
+        public static Contacts BuildContacts(Map map, String cte, String locale) {
+                Contacts cb = new Contacts();
+                Map contactdata = MapFilter(map, PostBackConstants.CONTACT_PREFIX);
+                Iterator it = contactdata.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        key = key.replace(PostBackConstants.CONTACT_PREFIX, "");
+                        Matcher match = p.matcher(key);
+                        if (match.find()) {
+                                String index = key.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        cb.getContact().add(BuildSingleContact(MapFilter(contactdata, PostBackConstants.CONTACT_PREFIX + index), PostBackConstants.CONTACT_PREFIX + index, cte, locale));
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                if (cb.getContact().isEmpty()) {
+                        return null;
+                }
+                return cb;
+        }
+
+        /**
+         * email
+         *
+         * @param map
+         * @param prefix 
+         * @return list
+         */
+        public static List<Email> BuildEmail(Map map, String prefix, String locale) {
+                List<Email> list = new ArrayList<Email>();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        Email pn = new Email();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.TYPE);
+                                        pn.setUseType(t[0]);
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.setValue(t[0]);
+                                        list.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return list;
+        }
+
+        /**
+         * description
+         *
+         * @param map
+         * @param prefix
+         * @param cte
+         * @param locale
+         * @return list
+         */ 
+        public static List<Description> BuildDescription(Map map, String prefix, String cte, String locale) {
+                List<Description> ret = new ArrayList();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        Description pn = new Description();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.LANG);
+                                        if (t[0] == null || t[0].equalsIgnoreCase(cte)) {
+                                                pn.setLang(null);
+                                        } else {
+                                                pn.setLang(t[0]);
+                                        }
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.setValue(t[0]);
+                                        ret.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * keyed references
+         *
+         * @param map
+         * @param prefix
+         * @return list
+         */
+        public static List<KeyedReference> BuildKeyedReference(Map map, String prefix, String locale) {
+                List<KeyedReference> ret = new ArrayList<KeyedReference>();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        KeyedReference pn = new KeyedReference();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        if (t != null) {
+                                                pn.setTModelKey(t[0]);
+                                                t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
+                                                pn.setKeyName(t[0]);
+                                                t = (String[]) map.get(prefix + index + PostBackConstants.KEYVALUE);
+                                                pn.setKeyValue(t[0]);
+                                                ret.add(pn);
+                                        }
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * address lines
+         *
+         * @param map
+         * @param prefix
+         * @return list
+         */
+        public static List<AddressLine> BuildAddressLine(Map map, String prefix, String locale) {
+                List<AddressLine> ret = new ArrayList();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        AddressLine pn = new AddressLine();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        pn.setValue(t[0]);
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
+                                        pn.setKeyName(t[0]);
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.KEYVALUE);
+                                        pn.setKeyValue(t[0]);
+                                        ret.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * binding templates
+         *
+         * @param map
+         * @param prefix
+         * @param cte
+         * @return list
+         */
+        public static List<BindingTemplate> BuildBindingTemplates(Map map, String prefix, String cte, String locale) {
+                List<BindingTemplate> ret = new ArrayList();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        BindingTemplate pn = new BindingTemplate();
 //bindingTemplate0Value
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    if (t != null && t.length > 0) {
-                        pn.setBindingKey(t[0]);
-                        if (pn.getBindingKey().equalsIgnoreCase(ResourceLoader.GetResource(locale, "items.clicktoedit")))
-                                pn.setBindingKey(null);
-                    }
-
-                    t = (String[]) map.get(prefix + index + PostBackConstants.HOSTINGREDIRECTOR);
-                    if (t != null && t.length > 0) {
-                        pn.setHostingRedirector(new HostingRedirector());
-                        pn.getHostingRedirector().setBindingKey(t[0]);
-                    }
-                    AccessPoint ap = new AccessPoint();
-                    t = (String[]) map.get(prefix + index + PostBackConstants.ACCESSPOINT_TYPE);
-                    if (t != null && t.length > 0) {
-                        ap.setUseType(t[0]);
-                    }
-                    t = (String[]) map.get(prefix + index + PostBackConstants.ACCESSPOINT_VALUE);
-                    if (t != null && t.length > 0) {
-                        ap.setValue(t[0]);
-                    }
-                    if (ap.getValue() != null) {
-                        pn.setAccessPoint(ap);
-                    }
-                    pn.getDescription().addAll(BuildDescription(MapFilter(map, prefix + index + PostBackConstants.DESCRIPTION), prefix + index + PostBackConstants.DESCRIPTION, cte, locale));
-                    CategoryBag cb = new CategoryBag();
-                    cb.getKeyedReference().addAll(BuildKeyedReference(MapFilter(map, prefix + index + PostBackConstants.CATBAG_KEY_REF), prefix + index + PostBackConstants.CATBAG_KEY_REF, locale));
-                    cb.getKeyedReferenceGroup().addAll(BuildKeyedReferenceGroup(MapFilter(map, prefix + index + PostBackConstants.CATBAG_KEY_REF_GRP), prefix + index + PostBackConstants.CATBAG_KEY_REF_GRP, locale));
-                    if (cb.getKeyedReference().isEmpty() && cb.getKeyedReferenceGroup().isEmpty()) {
-                        cb = null;
-                    }
-
-                    pn.setCategoryBag(cb);
-                    pn.setTModelInstanceDetails(BuildTmodelInstanceDetails(MapFilter(map, prefix + index + PostBackConstants.TMODELINSTANCE), prefix + index + PostBackConstants.TMODELINSTANCE, cte, locale));
-
-                    ret.add(pn);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    private static TModelInstanceDetails BuildTmodelInstanceDetails(Map map, String prefix, String cte, String locale) {
-        TModelInstanceDetails ret = new TModelInstanceDetails();
-
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-                    TModelInstanceInfo tmi = new TModelInstanceInfo();
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
-                    tmi.setTModelKey(t[0]);
-
-                    tmi.setInstanceDetails(BuildInstanceDetails(MapFilter(map, prefix + index + PostBackConstants.INSTANCE), prefix + index + PostBackConstants.INSTANCE, cte, locale));
-
-                    tmi.getDescription().addAll(BuildDescription(MapFilter(map, prefix + index + PostBackConstants.INSTANCE + PostBackConstants.DESCRIPTION), prefix + index + PostBackConstants.INSTANCE + PostBackConstants.DESCRIPTION, cte, locale));
-
-                    ret.getTModelInstanceInfo().add(tmi);
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        if (ret.getTModelInstanceInfo().isEmpty()) {
-            return null;
-        }
-        return ret;
-    }
-
-    private static InstanceDetails BuildInstanceDetails(Map map, String prefix, String cte, String locale) {
-        InstanceDetails ret = new InstanceDetails();
-        Iterator it = map.keySet().iterator();
-        List<String> processedIndexes = new ArrayList<String>();
-        while (it.hasNext()) {
-            String key = (String) it.next();
-            String filteredkey = key.replace(prefix, "");
-            Matcher match = p.matcher(filteredkey);
-            if (match.find()) {
-                String index = filteredkey.substring(0, match.start());
-                if (!processedIndexes.contains(index)) {
-
-                    String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
-                    //pn.setValue(t[0]);
-                    ret.setInstanceParms(t[0]);
-
-                    ret.getDescription().addAll(BuildDescription(MapFilter(map, prefix + index + PostBackConstants.INSTANCE + PostBackConstants.DESCRIPTION), prefix + index + PostBackConstants.INSTANCE + PostBackConstants.DESCRIPTION, cte, locale));
-                    ret.getOverviewDoc().addAll(BuildOverviewDocs(MapFilter(map, prefix + index + PostBackConstants.OVERVIEW), prefix + index + PostBackConstants.OVERVIEW, cte, locale));
-                    processedIndexes.add(index);
-                }
-            } else {
-                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
-            }
-        }
-        return ret;
-    }
-
-    /**
-     * client subscription api
-     *
-     * @param map
-     * @param outmsg
-     * @param session
-     * @return
-     */
-    public static Subscription BuildClientSubscription(Map map, AtomicReference<String> outmsg, HttpSession session) {
-        Subscription sub = new Subscription();
-        if (outmsg == null) {
-            outmsg = new AtomicReference<String>();
-        }
-
-        try {
-            String alertType = ((String[]) map.get("alertType"))[0];
-            if (alertType == null) {
-                outmsg.set("alertType not defined");
-                return null;
-            }
-            if (alertType.equalsIgnoreCase("specificItem")) {
-                sub = BuildClientSubscriptionSpecificItem(map, outmsg, (String) session.getAttribute("locale"));
-            } else if (alertType.equalsIgnoreCase("searchResults")) {
-                sub = BuildClientSubscriptionSearchResults(map, outmsg);
-            } else {
-                outmsg.set("alertType invalid");
-                return null;
-            }
-            if (sub == null) {
-                return null;
-            }
-
-            String alertTransport = ((String[]) map.get("alertTransport"))[0];
-            if (alertTransport == null) {
-            } else {
-                if (alertTransport.equalsIgnoreCase("bindingTemplate")) {
-                    sub.setBindingKey(((String[]) map.get("bindingKey"))[0]);
-                } else {
-                    sub.setBindingKey(null);
-                }
-            }
-            if (map.get("subkey") != null) {
-                String subkey = ((String[]) map.get("subkey"))[0];
-                if (subkey != null && !subkey.equalsIgnoreCase(ResourceLoader.GetResource(session, "items.clicktoedit"))) {
-                    sub.setSubscriptionKey(subkey);
-                }
-            }
-            //options
-            sub = BuildSubscriptionOptions(map, sub);
-            return sub;
-        } catch (Exception ex) {
-            outmsg.set(ex.getMessage());
-            return null;
-        }
-
-    }
-
-    private static Subscription BuildClientSubscriptionSpecificItem(Map map, AtomicReference<String> outmsg, String locale) {
-        try {
-            Subscription sub = new Subscription();
-            String alertCritera = ((String[]) map.get("alertCriteraSingleItem"))[0];
-
-            List<String> keys = new ArrayList<String>();
-            String ItemKey = ((String[]) map.get("itemKey"))[0];
-            if (ItemKey == null) {
-                outmsg.set("no item defined");
-                return null;
-            }
-            //TODO this is an issue. Unknown if commas can be included within UDDI keys
-            if (ItemKey.contains(",")) {
-                String[] k2 = ItemKey.split(",");
-                for (int i = 0; i < k2.length; i++) {
-                    if (k2[i] == null) {
-                        continue;
-                    }
-                    if (k2[i].trim().isEmpty()) {
-                        continue;
-                    }
-                    keys.add(k2[i].trim());
-                }
-            } else {
-                keys.add(ItemKey);
-            }
-
-
-            sub.setSubscriptionFilter(new SubscriptionFilter());
-
-            if (alertCritera != null) {
-
-                if (alertCritera.equalsIgnoreCase("binding")) {
-                    sub.getSubscriptionFilter().setGetBindingDetail(new GetBindingDetail());
-                    sub.getSubscriptionFilter().getGetBindingDetail().getBindingKey().addAll(keys);
-                } else if (alertCritera.equalsIgnoreCase("service")) {
-                    sub.getSubscriptionFilter().setGetServiceDetail(new GetServiceDetail());
-                    sub.getSubscriptionFilter().getGetServiceDetail().getServiceKey().addAll(keys);
-                } else if (alertCritera.equalsIgnoreCase("business")) {
-                    sub.getSubscriptionFilter().setGetBusinessDetail(new GetBusinessDetail());
-                    sub.getSubscriptionFilter().getGetBusinessDetail().getBusinessKey().addAll(keys);
-                } else if (alertCritera.equalsIgnoreCase("publisherAssertion")) {
-                    //unknow if this will work
-                    sub.getSubscriptionFilter().setGetAssertionStatusReport(new GetAssertionStatusReport());
-                    sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.valueOf(((String[]) map.get("assertionStatus"))[0]));
-                } else if (alertCritera.equalsIgnoreCase("relatedBusiness")) {
-                    outmsg.set("relatedBusiness is not supported for single item subscriptions");
-                    return null;
-                } else if (alertCritera.equalsIgnoreCase("tmodel")) {
-                    sub.getSubscriptionFilter().setGetTModelDetail(new GetTModelDetail());
-                    sub.getSubscriptionFilter().getGetTModelDetail().getTModelKey().addAll(keys);
-                } else {
-                    outmsg.set("alert critera invalid");
-                    return null;
-                }
-            } else {
-                outmsg.set("alert critera not defined");
-                return null;
-            }
-            return sub;
-        } catch (Exception ex) {
-            UddiHub.log.warn(null, ex);
-            outmsg.set((ResourceLoader.GetResource(locale, "errors.invaliddata")));
-            return null;
-        }
-    }
-
-    private static Subscription BuildClientSubscriptionSearchResults(Map map, AtomicReference<String> outmsg) {
-        try {
-            Subscription sub = new Subscription();
-            String alertCritera = ((String[]) map.get("alertCriteraMultipleItem"))[0];
-
-            sub.setSubscriptionFilter(new SubscriptionFilter());
-            Name name = new Name();
-            name.setValue(((String[]) map.get("searchcontent"))[0]);
-            name.setLang(((String[]) map.get("searchlang"))[0]);
-            FindQualifiers fq = new FindQualifiers();
-            String[] fqs = (String[]) map.get("findqualifier");
-            if (fqs != null) {
-                for (int i = 0; i < fqs.length; i++) {
-                    fq.getFindQualifier().add(fqs[i]);
-                }
-            }
-            if (fq.getFindQualifier().isEmpty()) {
-                fq = null;
-            }
-            if (alertCritera != null) {
-                if (alertCritera.equalsIgnoreCase("binding")) {
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        if (t != null && t.length > 0) {
+                                                pn.setBindingKey(t[0]);
+                                                if (pn.getBindingKey().equalsIgnoreCase(ResourceLoader.GetResource(locale, "items.clicktoedit"))) {
+                                                        pn.setBindingKey(null);
+                                                }
+                                        }
+
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.HOSTINGREDIRECTOR);
+                                        if (t != null && t.length > 0) {
+                                                pn.setHostingRedirector(new HostingRedirector());
+                                                pn.getHostingRedirector().setBindingKey(t[0]);
+                                        }
+                                        AccessPoint ap = new AccessPoint();
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.ACCESSPOINT_TYPE);
+                                        if (t != null && t.length > 0) {
+                                                ap.setUseType(t[0]);
+                                        }
+                                        t = (String[]) map.get(prefix + index + PostBackConstants.ACCESSPOINT_VALUE);
+                                        if (t != null && t.length > 0) {
+                                                ap.setValue(t[0]);
+                                        }
+                                        if (ap.getValue() != null) {
+                                                pn.setAccessPoint(ap);
+                                        }
+                                        pn.getDescription().addAll(BuildDescription(MapFilter(map, prefix + index + PostBackConstants.DESCRIPTION), prefix + index + PostBackConstants.DESCRIPTION, cte, locale));
+                                        CategoryBag cb = new CategoryBag();
+                                        cb.getKeyedReference().addAll(BuildKeyedReference(MapFilter(map, prefix + index + PostBackConstants.CATBAG_KEY_REF), prefix + index + PostBackConstants.CATBAG_KEY_REF, locale));
+                                        cb.getKeyedReferenceGroup().addAll(BuildKeyedReferenceGroup(MapFilter(map, prefix + index + PostBackConstants.CATBAG_KEY_REF_GRP), prefix + index + PostBackConstants.CATBAG_KEY_REF_GRP, locale));
+                                        if (cb.getKeyedReference().isEmpty() && cb.getKeyedReferenceGroup().isEmpty()) {
+                                                cb = null;
+                                        }
+
+                                        pn.setCategoryBag(cb);
+                                        pn.setTModelInstanceDetails(BuildTmodelInstanceDetails(MapFilter(map, prefix + index + PostBackConstants.TMODELINSTANCE), prefix + index + PostBackConstants.TMODELINSTANCE, cte, locale));
+
+                                        ret.add(pn);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        private static TModelInstanceDetails BuildTmodelInstanceDetails(Map map, String prefix, String cte, String locale) {
+                TModelInstanceDetails ret = new TModelInstanceDetails();
+
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+                                        TModelInstanceInfo tmi = new TModelInstanceInfo();
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.KEYNAME);
+                                        tmi.setTModelKey(t[0]);
+
+                                        tmi.setInstanceDetails(BuildInstanceDetails(MapFilter(map, prefix + index + PostBackConstants.INSTANCE), prefix + index + PostBackConstants.INSTANCE, cte, locale));
+
+                                        tmi.getDescription().addAll(BuildDescription(MapFilter(map, prefix + index + PostBackConstants.INSTANCE + PostBackConstants.DESCRIPTION), prefix + index + PostBackConstants.INSTANCE + PostBackConstants.DESCRIPTION, cte, locale));
+
+                                        ret.getTModelInstanceInfo().add(tmi);
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                if (ret.getTModelInstanceInfo().isEmpty()) {
+                        return null;
+                }
+                return ret;
+        }
+
+        private static InstanceDetails BuildInstanceDetails(Map map, String prefix, String cte, String locale) {
+                InstanceDetails ret = new InstanceDetails();
+                Iterator it = map.keySet().iterator();
+                List<String> processedIndexes = new ArrayList<String>();
+                while (it.hasNext()) {
+                        String key = (String) it.next();
+                        String filteredkey = key.replace(prefix, "");
+                        Matcher match = p.matcher(filteredkey);
+                        if (match.find()) {
+                                String index = filteredkey.substring(0, match.start());
+                                if (!processedIndexes.contains(index)) {
+
+                                        String[] t = (String[]) map.get(prefix + index + PostBackConstants.VALUE);
+                                        //pn.setValue(t[0]);
+                                        ret.setInstanceParms(t[0]);
+
+                                        ret.getDescription().addAll(BuildDescription(MapFilter(map, prefix + index + PostBackConstants.INSTANCE + PostBackConstants.DESCRIPTION), prefix + index + PostBackConstants.INSTANCE + PostBackConstants.DESCRIPTION, cte, locale));
+                                        ret.getOverviewDoc().addAll(BuildOverviewDocs(MapFilter(map, prefix + index + PostBackConstants.OVERVIEW), prefix + index + PostBackConstants.OVERVIEW, cte, locale));
+                                        processedIndexes.add(index);
+                                }
+                        } else {
+                                throw new IllegalArgumentException(ResourceLoader.GetResource(locale, "errors.invaliddata"));
+                        }
+                }
+                return ret;
+        }
+
+        /**
+         * client subscription api
+         *
+         * @param map
+         * @param outmsg
+         * @param session
+         * @return subscription
+         */
+        public static Subscription BuildClientSubscription(Map map, AtomicReference<String> outmsg, HttpSession session) {
+                Subscription sub = new Subscription();
+                if (outmsg == null) {
+                        outmsg = new AtomicReference<String>();
+                }
+
+                try {
+                        String alertType = ((String[]) map.get("alertType"))[0];
+                        if (alertType == null) {
+                                outmsg.set("alertType not defined");
+                                return null;
+                        }
+                        if (alertType.equalsIgnoreCase("specificItem")) {
+                                sub = BuildClientSubscriptionSpecificItem(map, outmsg, (String) session.getAttribute("locale"));
+                        } else if (alertType.equalsIgnoreCase("searchResults")) {
+                                sub = BuildClientSubscriptionSearchResults(map, outmsg);
+                        } else {
+                                outmsg.set("alertType invalid");
+                                return null;
+                        }
+                        if (sub == null) {
+                                return null;
+                        }
+
+                        String alertTransport = ((String[]) map.get("alertTransport"))[0];
+                        if (alertTransport == null) {
+                        } else {
+                                if (alertTransport.equalsIgnoreCase("bindingTemplate")) {
+                                        sub.setBindingKey(((String[]) map.get("bindingKey"))[0]);
+                                } else {
+                                        sub.setBindingKey(null);
+                                }
+                        }
+                        if (map.get("subkey") != null) {
+                                String subkey = ((String[]) map.get("subkey"))[0];
+                                if (subkey != null && !subkey.equalsIgnoreCase(ResourceLoader.GetResource(session, "items.clicktoedit"))) {
+                                        sub.setSubscriptionKey(subkey);
+                                }
+                        }
+                        //options
+                        sub = BuildSubscriptionOptions(map, sub);
+                        return sub;
+                } catch (Exception ex) {
+                        outmsg.set(ex.getMessage());
+                        return null;
+                }
+
+        }
+
+        private static Subscription BuildClientSubscriptionSpecificItem(Map map, AtomicReference<String> outmsg, String locale) {
+                try {
+                        Subscription sub = new Subscription();
+                        String alertCritera = ((String[]) map.get("alertCriteraSingleItem"))[0];
+
+                        List<String> keys = new ArrayList<String>();
+                        String ItemKey = ((String[]) map.get("itemKey"))[0];
+                        if (ItemKey == null) {
+                                outmsg.set("no item defined");
+                                return null;
+                        }
+                        //TODO this is an issue. Unknown if commas can be included within UDDI keys
+                        if (ItemKey.contains(",")) {
+                                String[] k2 = ItemKey.split(",");
+                                for (int i = 0; i < k2.length; i++) {
+                                        if (k2[i] == null) {
+                                                continue;
+                                        }
+                                        if (k2[i].trim().isEmpty()) {
+                                                continue;
+                                        }
+                                        keys.add(k2[i].trim());
+                                }
+                        } else {
+                                keys.add(ItemKey);
+                        }
+
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+
+                        if (alertCritera != null) {
+
+                                if (alertCritera.equalsIgnoreCase("binding")) {
+                                        sub.getSubscriptionFilter().setGetBindingDetail(new GetBindingDetail());
+                                        sub.getSubscriptionFilter().getGetBindingDetail().getBindingKey().addAll(keys);
+                                } else if (alertCritera.equalsIgnoreCase("service")) {
+                                        sub.getSubscriptionFilter().setGetServiceDetail(new GetServiceDetail());
+                                        sub.getSubscriptionFilter().getGetServiceDetail().getServiceKey().addAll(keys);
+                                } else if (alertCritera.equalsIgnoreCase("business")) {
+                                        sub.getSubscriptionFilter().setGetBusinessDetail(new GetBusinessDetail());
+                                        sub.getSubscriptionFilter().getGetBusinessDetail().getBusinessKey().addAll(keys);
+                                } else if (alertCritera.equalsIgnoreCase("publisherAssertion")) {
+                                        //unknow if this will work
+                                        sub.getSubscriptionFilter().setGetAssertionStatusReport(new GetAssertionStatusReport());
+                                        sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.valueOf(((String[]) map.get("assertionStatus"))[0]));
+                                } else if (alertCritera.equalsIgnoreCase("relatedBusiness")) {
+                                        outmsg.set("relatedBusiness is not supported for single item subscriptions");
+                                        return null;
+                                } else if (alertCritera.equalsIgnoreCase("tmodel")) {
+                                        sub.getSubscriptionFilter().setGetTModelDetail(new GetTModelDetail());
+                                        sub.getSubscriptionFilter().getGetTModelDetail().getTModelKey().addAll(keys);
+                                } else {
+                                        outmsg.set("alert critera invalid");
+                                        return null;
+                                }
+                        } else {
+                                outmsg.set("alert critera not defined");
+                                return null;
+                        }
+                        return sub;
+                } catch (Exception ex) {
+                        UddiHub.log.warn(null, ex);
+                        outmsg.set((ResourceLoader.GetResource(locale, "errors.invaliddata")));
+                        return null;
+                }
+        }
+
+        private static Subscription BuildClientSubscriptionSearchResults(Map map, AtomicReference<String> outmsg) {
+                try {
+                        Subscription sub = new Subscription();
+                        String alertCritera = ((String[]) map.get("alertCriteraMultipleItem"))[0];
+
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        Name name = new Name();
+                        name.setValue(((String[]) map.get("searchcontent"))[0]);
+                        name.setLang(((String[]) map.get("searchlang"))[0]);
+                        FindQualifiers fq = new FindQualifiers();
+                        String[] fqs = (String[]) map.get("findqualifier");
+                        if (fqs != null) {
+                                for (int i = 0; i < fqs.length; i++) {
+                                        fq.getFindQualifier().add(fqs[i]);
+                                }
+                        }
+                        if (fq.getFindQualifier().isEmpty()) {
+                                fq = null;
+                        }
+                        if (alertCritera != null) {
+                                if (alertCritera.equalsIgnoreCase("binding")) {
                     //sub.getSubscriptionFilter().setFindBinding(new FindBinding());
-                    //sub.getSubscriptionFilter().getFindBinding().
-                } else if (alertCritera.equalsIgnoreCase("service")) {
-                    sub.getSubscriptionFilter().setFindService(new FindService());
-                    sub.getSubscriptionFilter().getFindService().getName().add(name);
-                    sub.getSubscriptionFilter().getFindService().setFindQualifiers(fq);
-                } else if (alertCritera.equalsIgnoreCase("business")) {
-                    sub.getSubscriptionFilter().setFindBusiness(new FindBusiness());
-                    sub.getSubscriptionFilter().getFindBusiness().setFindQualifiers(fq);
-                    sub.getSubscriptionFilter().getFindBusiness().getName().add(name);
-                    //              sub.getSubscriptionFilter().getGetBusinessDetail().getBusinessKey().addAll(keys);
-                } else if (alertCritera.equalsIgnoreCase("publisherAssertion")) {
-                    //unknow if this will work
-                    sub.getSubscriptionFilter().setGetAssertionStatusReport(new GetAssertionStatusReport());
-                    sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.valueOf(((String[]) map.get("assertionStatus"))[0]));
-                } else if (alertCritera.equalsIgnoreCase("relatedBusiness")) {
-                    sub.getSubscriptionFilter().setFindRelatedBusinesses(new FindRelatedBusinesses());
-                    sub.getSubscriptionFilter().getFindRelatedBusinesses().setFindQualifiers(fq);
-                    sub.getSubscriptionFilter().getFindRelatedBusinesses().setBusinessKey(((String[]) map.get("searchcontent"))[0]);
-                } else if (alertCritera.equalsIgnoreCase("tmodel")) {
-                    sub.getSubscriptionFilter().setFindTModel(new FindTModel());
-                    sub.getSubscriptionFilter().getFindTModel().setFindQualifiers(fq);
-                    sub.getSubscriptionFilter().getFindTModel().setName(name);
-                } else {
-                    outmsg.set("alert critera invalid");
-                    return null;
-                }
-            } else {
-                outmsg.set("alert critera not defined");
-                return null;
-            }
-            return sub;
-        } catch (Exception ex) {
-            UddiHub.log.warn(null, ex);
-            outmsg.set("error parsing");
-            return null;
-        }
-    }
-
-    private static Subscription BuildSubscriptionOptions(Map map, Subscription sub) {
-        if (sub == null) {
-            return null;
-        }
-        try {
-            sub.setBrief(Boolean.parseBoolean(((String[]) map.get("brief"))[0]));
-        } catch (Exception x) {
-            sub.setBrief(false);
-        }
-
-        try {
-            sub.setMaxEntities(Integer.parseInt(((String[]) map.get("maxRecords"))[0]));
-        } catch (Exception x) {
-            sub.setBrief(false);
-        }
-
-        try {
-            DatatypeFactory df = DatatypeFactory.newInstance();
-            DateFormat dformat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a");
-            String ds = (String) map.get("expires");
-            if (ds != null && ds.trim().length() != 0 && !ds.equals("\"\"")) {
-                Date parsed = dformat.parse(((String[]) map.get("expires"))[0]);
-                GregorianCalendar gcal = new GregorianCalendar();
-                gcal.setTime(parsed);
-                sub.setExpiresAfter(df.newXMLGregorianCalendar(gcal));
-            }
-        } catch (Exception ex) {
-            UddiHub.log.debug("Unexpected parsing expires error "+ex.getMessage());
-        }
-
-
-        try {
-            DatatypeFactory df = DatatypeFactory.newInstance();
-            DateFormat dformat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a");
-            Date parsed = dformat.parse(((String[]) map.get("expires"))[0]);
-
-            GregorianCalendar gcal = new GregorianCalendar();
-            gcal.setTime(parsed);
-            sub.setExpiresAfter(df.newXMLGregorianCalendar(gcal));
-        } catch (Exception ex) {
-            UddiHub.log.debug("Unexpected parsing expires error "+ ex.getMessage());
-        }
-
-        try {
-            long durationInMilliSeconds = 0;
-            DatatypeFactory df = DatatypeFactory.newInstance();
-            String interval = ((String[]) map.get("interval"))[0];
-            String[] tokens = interval.split(":");
-            durationInMilliSeconds += Integer.parseInt(tokens[0]) * 60 * 60 * 1000;
-            durationInMilliSeconds += Integer.parseInt(tokens[1]) * 60 * 1000;
-            durationInMilliSeconds += Integer.parseInt(tokens[2]) * 1000;
-
-
-            sub.setNotificationInterval(df.newDuration(durationInMilliSeconds));
-
-        } catch (Exception ex) {
-            UddiHub.log.debug("Unexpected parsing interval error "+ ex.getMessage());
-        }
-        
-        try {
-            long durationInMilliSeconds = 0;
-            DatatypeFactory df = DatatypeFactory.newInstance();
-            String interval = (String) map.get("interval");
-            String[] tokens = interval.split(":");
-            durationInMilliSeconds += Integer.parseInt(tokens[0]) * 60 * 60 * 1000;
-            durationInMilliSeconds += Integer.parseInt(tokens[1]) * 60 * 1000;
-            durationInMilliSeconds += Integer.parseInt(tokens[2]) * 1000;
-
-
-            sub.setNotificationInterval(df.newDuration(durationInMilliSeconds));
+                                        //sub.getSubscriptionFilter().getFindBinding().
+                                } else if (alertCritera.equalsIgnoreCase("service")) {
+                                        sub.getSubscriptionFilter().setFindService(new FindService());
+                                        sub.getSubscriptionFilter().getFindService().getName().add(name);
+                                        sub.getSubscriptionFilter().getFindService().setFindQualifiers(fq);
+                                } else if (alertCritera.equalsIgnoreCase("business")) {
+                                        sub.getSubscriptionFilter().setFindBusiness(new FindBusiness());
+                                        sub.getSubscriptionFilter().getFindBusiness().setFindQualifiers(fq);
+                                        sub.getSubscriptionFilter().getFindBusiness().getName().add(name);
+                                        //              sub.getSubscriptionFilter().getGetBusinessDetail().getBusinessKey().addAll(keys);
+                                } else if (alertCritera.equalsIgnoreCase("publisherAssertion")) {
+                                        //unknow if this will work
+                                        sub.getSubscriptionFilter().setGetAssertionStatusReport(new GetAssertionStatusReport());
+                                        sub.getSubscriptionFilter().getGetAssertionStatusReport().setCompletionStatus(CompletionStatus.valueOf(((String[]) map.get("assertionStatus"))[0]));
+                                } else if (alertCritera.equalsIgnoreCase("relatedBusiness")) {
+                                        sub.getSubscriptionFilter().setFindRelatedBusinesses(new FindRelatedBusinesses());
+                                        sub.getSubscriptionFilter().getFindRelatedBusinesses().setFindQualifiers(fq);
+                                        sub.getSubscriptionFilter().getFindRelatedBusinesses().setBusinessKey(((String[]) map.get("searchcontent"))[0]);
+                                } else if (alertCritera.equalsIgnoreCase("tmodel")) {
+                                        sub.getSubscriptionFilter().setFindTModel(new FindTModel());
+                                        sub.getSubscriptionFilter().getFindTModel().setFindQualifiers(fq);

[... 98 lines stripped ...]


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