return tm;
}
public static BusinessEntity getBusinessEntityFromJAXROrg(Organization org)
throws JAXRException {
BusinessEntity biz = BusinessEntity.Factory.newInstance();
BusinessServices bss = BusinessServices.Factory.newInstance();
BusinessService[] barr = new BusinessService[0];
try {
// It may just be an update
Key key = org.getKey();
if (key != null && key.getId() != null) {
biz.setBusinessKey(key.getId());
} else {
biz.setBusinessKey("");
}
// Lets get the Organization attributes at the top level
InternationalString iname = org.getName();
if (iname != null) {
for (LocalizedString locName : iname.getLocalizedStrings()) {
Name name = biz.addNewName();
name.setStringValue(locName.getValue());
name.setLang(locName.getLocale().getLanguage());
}
}
InternationalString idesc = org.getDescription();
if (idesc != null) {
for (LocalizedString locName : idesc.getLocalizedStrings()) {
Description desc = biz.addNewDescription();
desc.setStringValue(locName.getValue());
desc.setLang(locName.getLocale().getLanguage());
}
}
if (org.getPrimaryContact() != null &&
org.getPrimaryContact().getPersonName()!= null &&
org.getPrimaryContact().getPersonName().getFullName() != null) {
biz.setAuthorizedName(org.getPrimaryContact().getPersonName()
.getFullName());
}
Collection<Service> s = org.getServices();
log.debug("?Org has services=" + s.isEmpty());
barr = new BusinessService[s.size()];
Iterator<Service> iter = s.iterator();
int barrPos = 0;
while (iter.hasNext()) {
BusinessService bs = ScoutJaxrUddiHelper
.getBusinessServiceFromJAXRService((Service) iter
.next());
barr[barrPos] = bs;
barrPos++;
}
/*
* map users : JAXR has concept of 'primary contact', which is a
* special designation for one of the users, and D6.1 seems to say
* that the first UDDI user is the primary contact
*/
Contacts cts = Contacts.Factory.newInstance();
Contact[] carr = new Contact[0];
User primaryContact = org.getPrimaryContact();
Collection<User> users = org.getUsers();
// Expand array to necessary size only (xmlbeans does not like
// null items in cases like this)
int carrSize = 0;
if (primaryContact != null) {
carrSize += 1;
}
// TODO: Clean this up and make it more efficient
Iterator<User> it = users.iterator();
while (it.hasNext()) {
User u = (User) it.next();
if (u != primaryContact) {
carrSize++;
}
}
carr = new Contact[carrSize];
/*
* first do primary, and then filter that out in the loop
*/
if (primaryContact != null) {
Contact ct = getContactFromJAXRUser(primaryContact);
carr[0] = ct;
}
it = users.iterator();
int carrPos = 1;
while (it.hasNext()) {
User u = (User) it.next();
if (u != primaryContact) {
Contact ct = getContactFromJAXRUser(u);
carr[carrPos] = ct;
carrPos++;
}
}
bss.setBusinessServiceArray(barr);
if (carr.length>0) {
cts.setContactArray(carr);
biz.setContacts(cts);
}
biz.setBusinessServices(bss);
// External Links
Iterator<ExternalLink> exiter = org.getExternalLinks().iterator();
DiscoveryURLs emptyDUs = null;
boolean first = true;
while (exiter.hasNext()) {
ExternalLink link = (ExternalLink) exiter.next();
/** Note: jUDDI adds its own discoverURL as the businessEntity* */
if (first) {
emptyDUs = biz.addNewDiscoveryURLs();
first = false;
}
DiscoveryURL emptyDU = emptyDUs.addNewDiscoveryURL();
emptyDU.setUseType("businessEntityExt");
if (link.getExternalURI() != null) {
emptyDU.setStringValue(link.getExternalURI());
}
}
IdentifierBag idBag = getIdentifierBagFromExternalIdentifiers(org.getExternalIdentifiers());
if (idBag!=null) {
biz.setIdentifierBag(idBag);
}
CategoryBag catBag = getCategoryBagFromClassifications(org.getClassifications());
if (catBag!=null) {
biz.setCategoryBag(catBag);
}
} catch (Exception ud) {
throw new JAXRException("Apache JAXR Impl:", ud);
}