use of com.helger.phoss.smp.domain.businesscard.SMPBusinessCardContact in project phoss-smp by phax.
the class PageSecureBusinessCard method showBusinessCardEntity.
@Nonnull
public static IHCNode showBusinessCardEntity(@Nonnull final SMPBusinessCardEntity aEntity, final int nIndex, @Nonnull final Locale aDisplayLocale) {
final BootstrapCard aPanel = new BootstrapCard();
aPanel.createAndAddHeader().addChild("Business Entity " + nIndex);
final BootstrapViewForm aForm2 = aPanel.createAndAddBody().addAndReturnChild(new BootstrapViewForm());
aForm2.addFormGroup(new BootstrapFormGroup().setLabel("Name").setCtrl(aEntity.names().getFirst().getName()));
{
final Locale aCountry = CountryCache.getInstance().getCountry(aEntity.getCountryCode());
final HCNodeList aCtrl = new HCNodeList();
final EFamFamFlagIcon eIcon = EFamFamFlagIcon.getFromIDOrNull(aCountry.getCountry());
if (eIcon != null) {
aCtrl.addChild(eIcon.getAsNode());
aCtrl.addChild(" ");
}
aCtrl.addChild(aCountry.getDisplayCountry(aDisplayLocale) + " [" + aEntity.getCountryCode() + "]");
aForm2.addFormGroup(new BootstrapFormGroup().setLabel("Country code").setCtrl(aCtrl));
}
if (aEntity.hasGeographicalInformation()) {
aForm2.addFormGroup(new BootstrapFormGroup().setLabel("Geographical information").setCtrl(HCExtHelper.nl2divList(aEntity.getGeographicalInformation())));
}
if (aEntity.identifiers().isNotEmpty()) {
final BootstrapTable aTable = new BootstrapTable(HCCol.star(), HCCol.star());
aTable.addHeaderRow().addCells("Scheme", "Value");
for (final SMPBusinessCardIdentifier aIdentifier : aEntity.identifiers()) aTable.addBodyRow().addCells(aIdentifier.getScheme(), aIdentifier.getValue());
aForm2.addFormGroup(new BootstrapFormGroup().setLabel("Identifiers").setCtrl(aTable));
}
if (aEntity.websiteURIs().isNotEmpty()) {
final HCNodeList aNL = new HCNodeList();
for (final String sWebsiteURI : aEntity.websiteURIs()) aNL.addChild(new HCDiv().addChild(HCA.createLinkedWebsite(sWebsiteURI)));
aForm2.addFormGroup(new BootstrapFormGroup().setLabel("Website URIs").setCtrl(aNL));
}
if (aEntity.contacts().isNotEmpty()) {
final BootstrapTable aTable = new BootstrapTable(HCCol.star(), HCCol.star(), HCCol.star(), HCCol.star());
aTable.addHeaderRow().addCells("Type", "Name", "Phone number", "Email address");
for (final SMPBusinessCardContact aContact : aEntity.contacts()) {
final HCRow aBodyRow = aTable.addBodyRow();
aBodyRow.addCells(aContact.getType(), aContact.getName(), aContact.getPhoneNumber());
aBodyRow.addCell(HCA_MailTo.createLinkedEmail(aContact.getEmail()));
}
aForm2.addFormGroup(new BootstrapFormGroup().setLabel("Contacts").setCtrl(aTable));
}
if (aEntity.hasAdditionalInformation()) {
aForm2.addFormGroup(new BootstrapFormGroup().setLabel("Additional information").setCtrl(HCExtHelper.nl2divList(aEntity.getAdditionalInformation())));
}
if (aEntity.hasRegistrationDate()) {
aForm2.addFormGroup(new BootstrapFormGroup().setLabel("Registration date").setCtrl(PDTToString.getAsString(aEntity.getRegistrationDate(), aDisplayLocale)));
}
return aPanel;
}
use of com.helger.phoss.smp.domain.businesscard.SMPBusinessCardContact in project phoss-smp by phax.
the class PageSecureBusinessCard method _createEntityInputForm.
@Nonnull
private static IHCNode _createEntityInputForm(@Nonnull final LayoutExecutionContext aLEC, @Nullable final SMPBusinessCardEntity aExistingEntity, @Nullable final String sExistingID, @Nonnull final FormErrorList aFormErrors, final boolean bFormSubmitted) {
final Locale aDisplayLocale = aLEC.getDisplayLocale();
final IRequestWebScopeWithoutResponse aRequestScope = aLEC.getRequestScope();
final String sEntityID = StringHelper.hasText(sExistingID) ? sExistingID : TMP_ID_PREFIX + Integer.toString(GlobalIDFactory.getNewIntID());
final BootstrapCard aPanel = new BootstrapCard().setID(sEntityID);
aPanel.createAndAddHeader().addChild("Business Entity");
final BootstrapCardBody aBody = aPanel.createAndAddBody();
final BootstrapViewForm aForm = aBody.addAndReturnChild(new BootstrapViewForm());
final String sFieldName = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityID, SUFFIX_NAME);
aForm.addFormGroup(new BootstrapFormGroup().setLabelMandatory("Name").setCtrl(new HCEdit(new RequestField(sFieldName, aExistingEntity == null ? null : aExistingEntity.names().getFirst().getName()))).setErrorList(aFormErrors.getListOfField(sFieldName)));
final String sFieldCountryCode = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityID, SUFFIX_COUNTRY_CODE);
aForm.addFormGroup(new BootstrapFormGroup().setLabelMandatory("Country").setCtrl(new HCCountrySelect(new RequestField(sFieldCountryCode, aExistingEntity == null ? null : aExistingEntity.getCountryCode()), aDisplayLocale, HCCountrySelect.getAllCountries(EWithDeprecated.DEFAULT), (aLocale, aContentLocale) -> aLocale.getDisplayCountry(aContentLocale) + " (" + aLocale.getCountry() + ")")).setErrorList(aFormErrors.getListOfField(sFieldCountryCode)));
final String sFieldGeoInfo = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityID, SUFFIX_GEO_INFO);
aForm.addFormGroup(new BootstrapFormGroup().setLabel("Geographical Information").setCtrl(new HCTextArea(new RequestField(sFieldGeoInfo, aExistingEntity == null ? null : aExistingEntity.getGeographicalInformation()))).setErrorList(aFormErrors.getListOfField(sFieldGeoInfo)));
// Identifiers
{
final String sBodyID = sEntityID + PREFIX_IDENTIFIER;
final HCNodeList aNL = new HCNodeList();
final BootstrapTable aTable = aNL.addAndReturnChild(new BootstrapTable(HCCol.star(), HCCol.star(), HCCol.star()));
aTable.addHeaderRow().addCells("Scheme", "Value", "");
aTable.setBodyID(sBodyID);
final IRequestParamMap aIdentifiers = aLEC.getRequestParamMap().getMap(PREFIX_ENTITY, sEntityID, PREFIX_IDENTIFIER);
if (bFormSubmitted) {
// Re-show of form
if (aIdentifiers != null)
for (final String sIdentifierRowID : aIdentifiers.keySet()) aTable.addBodyRow(_createIdentifierInputForm(aLEC, sEntityID, null, sIdentifierRowID, aFormErrors));
} else {
if (aExistingEntity != null) {
// add all existing stored entities
for (final SMPBusinessCardIdentifier aIdentifier : aExistingEntity.identifiers()) aTable.addBodyRow(_createIdentifierInputForm(aLEC, sEntityID, aIdentifier, (String) null, aFormErrors));
}
}
{
final JSAnonymousFunction aJSAppend = new JSAnonymousFunction();
final JSVar aJSAppendData = aJSAppend.param("data");
aJSAppend.body().add(JQuery.idRef(sBodyID).append(aJSAppendData.ref(PhotonUnifiedResponse.HtmlHelper.PROPERTY_HTML)));
final JSPackage aOnAdd = new JSPackage();
aOnAdd.add(new JQueryAjaxBuilder().url(AJAX_CREATE_IDENTIFIER.getInvocationURL(aRequestScope).add(PARAM_ENTITY_ID, sEntityID)).data(new JSAssocArray()).success(JSJQueryHelper.jqueryAjaxSuccessHandler(aJSAppend, null)).build());
aNL.addChild(new BootstrapButton().setIcon(EDefaultIcon.PLUS).addChild("Add Identifier").setOnClick(aOnAdd));
}
aForm.addFormGroup(new BootstrapFormGroup().setLabel("Identifiers").setCtrl(aNL));
}
// Website URIs
final String sFieldWebsiteURIs = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityID, SUFFIX_WEBSITE_URIS);
aForm.addFormGroup(new BootstrapFormGroup().setLabel("Website URIs").setCtrl(new HCTextArea(new RequestField(sFieldWebsiteURIs, aExistingEntity == null ? null : StringHelper.getImploded('\n', aExistingEntity.websiteURIs())))).setHelpText("Put each Website URI in a separate line").setErrorList(aFormErrors.getListOfField(sFieldWebsiteURIs)));
// Contacts
{
final String sBodyID = sEntityID + PREFIX_CONTACT;
final HCNodeList aNL = new HCNodeList();
final BootstrapTable aTable = aNL.addAndReturnChild(new BootstrapTable(HCCol.star(), HCCol.star(), HCCol.star(), HCCol.star(), HCCol.star()));
aTable.addHeaderRow().addCells("Type", "Name", "Phone number", "Email address", "");
aTable.setBodyID(sBodyID);
final IRequestParamMap aContacts = aLEC.getRequestParamMap().getMap(PREFIX_ENTITY, sEntityID, PREFIX_CONTACT);
if (bFormSubmitted) {
// Re-show of form
if (aContacts != null)
for (final String sIdentifierRowID : aContacts.keySet()) aTable.addBodyRow(_createContactInputForm(aLEC, sEntityID, null, sIdentifierRowID, aFormErrors));
} else {
if (aExistingEntity != null) {
// add all existing stored entities
for (final SMPBusinessCardContact aContact : aExistingEntity.contacts()) aTable.addBodyRow(_createContactInputForm(aLEC, sEntityID, aContact, (String) null, aFormErrors));
}
}
{
final JSAnonymousFunction aJSAppend = new JSAnonymousFunction();
final JSVar aJSAppendData = aJSAppend.param("data");
aJSAppend.body().add(JQuery.idRef(sBodyID).append(aJSAppendData.ref(PhotonUnifiedResponse.HtmlHelper.PROPERTY_HTML)));
final JSPackage aOnAdd = new JSPackage();
aOnAdd.add(new JQueryAjaxBuilder().url(AJAX_CREATE_CONTACT.getInvocationURL(aRequestScope).add(PARAM_ENTITY_ID, sEntityID)).data(new JSAssocArray()).success(JSJQueryHelper.jqueryAjaxSuccessHandler(aJSAppend, null)).build());
aNL.addChild(new BootstrapButton().setIcon(EDefaultIcon.PLUS).addChild("Add Contact").setOnClick(aOnAdd));
}
aForm.addFormGroup(new BootstrapFormGroup().setLabel("Contacts").setCtrl(aNL));
}
final String sFieldAdditionalInfo = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityID, SUFFIX_ADDITIONAL_INFO);
aForm.addFormGroup(new BootstrapFormGroup().setLabel("Additional Information").setCtrl(new HCTextArea(new RequestField(sFieldAdditionalInfo, aExistingEntity == null ? null : aExistingEntity.getAdditionalInformation()))).setErrorList(aFormErrors.getListOfField(sFieldAdditionalInfo)));
final String sFieldRegDate = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityID, SUFFIX_REG_DATE);
aForm.addFormGroup(new BootstrapFormGroup().setLabel("Registration Date").setCtrl(BootstrapDateTimePicker.create(sFieldRegDate, aExistingEntity == null ? null : aExistingEntity.getRegistrationDate(), aDisplayLocale)).setErrorList(aFormErrors.getListOfField(sFieldRegDate)));
final BootstrapButtonToolbar aToolbar = aBody.addAndReturnChild(new BootstrapButtonToolbar(aLEC));
aToolbar.addButton("Delete this Entity", JQuery.idRef(aPanel).remove(), EDefaultIcon.DELETE);
return aPanel;
}
use of com.helger.phoss.smp.domain.businesscard.SMPBusinessCardContact in project phoss-smp by phax.
the class PageSecureBusinessCard method validateAndSaveInputParameters.
@Override
protected void validateAndSaveInputParameters(@Nonnull final WebPageExecutionContext aWPEC, @Nullable final ISMPBusinessCard aSelectedObject, @Nonnull final FormErrorList aFormErrors, @Nonnull final EWebPageFormAction eFormAction) {
final Locale aDisplayLocale = aWPEC.getDisplayLocale();
final boolean bEdit = eFormAction.isEdit();
final IIdentifierFactory aIdentifierFactory = SMPMetaManager.getIdentifierFactory();
final ISMPServiceGroupManager aServiceGroupManager = SMPMetaManager.getServiceGroupMgr();
final ISMPBusinessCardManager aBusinessCardMgr = SMPMetaManager.getBusinessCardMgr();
final String sServiceGroupID = bEdit ? aSelectedObject.getID() : aWPEC.params().getAsString(FIELD_SERVICE_GROUP_ID);
ISMPServiceGroup aServiceGroup = null;
final ICommonsList<SMPBusinessCardEntity> aSMPEntities = new CommonsArrayList<>();
// validations
if (StringHelper.hasNoText(sServiceGroupID))
aFormErrors.addFieldError(FIELD_SERVICE_GROUP_ID, "A Service Group must be selected!");
else {
aServiceGroup = aServiceGroupManager.getSMPServiceGroupOfID(aIdentifierFactory.parseParticipantIdentifier(sServiceGroupID));
if (aServiceGroup == null)
aFormErrors.addFieldError(FIELD_SERVICE_GROUP_ID, "The provided Service Group does not exist!");
else if (!bEdit) {
final ISMPBusinessCard aExistingBusinessCard = aBusinessCardMgr.getSMPBusinessCardOfID(aServiceGroup.getParticipantIdentifier());
if (aExistingBusinessCard != null)
aFormErrors.addFieldError(FIELD_SERVICE_GROUP_ID, "The selected Service Group already has a Business Card assigned!");
}
}
final IRequestParamMap aEntities = aWPEC.getRequestParamMap().getMap(PREFIX_ENTITY);
if (aEntities != null)
for (final String sEntityRowID : aEntities.keySet()) {
final ICommonsMap<String, String> aEntityRow = aEntities.getValueMap(sEntityRowID);
final int nErrors = aFormErrors.size();
// Entity name
final String sFieldName = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityRowID, SUFFIX_NAME);
final String sEntityName = aEntityRow.get(SUFFIX_NAME);
if (StringHelper.hasNoText(sEntityName))
aFormErrors.addFieldError(sFieldName, "The Name of the Entity must be provided!");
// Entity country code
final String sFieldCountryCode = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityRowID, SUFFIX_COUNTRY_CODE);
final String sCountryCode = aEntityRow.get(SUFFIX_COUNTRY_CODE);
if (StringHelper.hasNoText(sCountryCode))
aFormErrors.addFieldError(sFieldCountryCode, "The Country Code of the Entity must be provided!");
// Entity Geographical Information
final String sGeoInfo = aEntityRow.get(SUFFIX_GEO_INFO);
// Entity Identifiers
final ICommonsList<SMPBusinessCardIdentifier> aSMPIdentifiers = new CommonsArrayList<>();
final IRequestParamMap aIdentifiers = aEntities.getMap(sEntityRowID, PREFIX_IDENTIFIER);
if (aIdentifiers != null)
for (final String sIdentifierRowID : aIdentifiers.keySet()) {
final ICommonsMap<String, String> aIdentifierRow = aIdentifiers.getValueMap(sIdentifierRowID);
final int nErrors2 = aFormErrors.size();
// Scheme
final String sFieldScheme = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityRowID, PREFIX_IDENTIFIER, sIdentifierRowID, SUFFIX_SCHEME);
final String sScheme = aIdentifierRow.get(SUFFIX_SCHEME);
if (StringHelper.hasNoText(sScheme))
aFormErrors.addFieldError(sFieldScheme, "The Scheme of the Identifier must be provided!");
// Value
final String sFieldValue = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityRowID, PREFIX_IDENTIFIER, sIdentifierRowID, SUFFIX_VALUE);
final String sValue = aIdentifierRow.get(SUFFIX_VALUE);
if (StringHelper.hasNoText(sValue))
aFormErrors.addFieldError(sFieldValue, "The Value of the Identifier must be provided!");
if (aFormErrors.size() == nErrors2) {
final boolean bIsNewIdentifier = sIdentifierRowID.startsWith(TMP_ID_PREFIX);
aSMPIdentifiers.add(bIsNewIdentifier ? new SMPBusinessCardIdentifier(sScheme, sValue) : new SMPBusinessCardIdentifier(sIdentifierRowID, sScheme, sValue));
}
}
aSMPIdentifiers.sort((o1, o2) -> {
int ret = o1.getScheme().compareToIgnoreCase(o2.getScheme());
if (ret == 0)
ret = o1.getValue().compareToIgnoreCase(o2.getValue());
return ret;
});
// Entity Website URIs
final String sFieldWebsiteURIs = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityRowID, SUFFIX_WEBSITE_URIS);
final String sWebsiteURIs = aEntityRow.get(SUFFIX_WEBSITE_URIS);
final ICommonsList<String> aWebsiteURIs = new CommonsArrayList<>();
for (final String sWebsiteURI : RegExHelper.getSplitToArray(sWebsiteURIs, "\\n")) {
final String sRealWebsiteURI = sWebsiteURI.trim();
if (sRealWebsiteURI.length() > 0)
if (URLValidator.isValid(sRealWebsiteURI))
aWebsiteURIs.add(sRealWebsiteURI);
else
aFormErrors.addFieldError(sFieldWebsiteURIs, "The website URI '" + sRealWebsiteURI + "' is invalid!");
}
// Entity Contacts
final ICommonsList<SMPBusinessCardContact> aSMPContacts = new CommonsArrayList<>();
final IRequestParamMap aContacts = aEntities.getMap(sEntityRowID, PREFIX_CONTACT);
if (aContacts != null)
for (final String sContactRowID : aContacts.keySet()) {
final ICommonsMap<String, String> aContactRow = aContacts.getValueMap(sContactRowID);
final int nErrors2 = aFormErrors.size();
final String sType = aContactRow.get(SUFFIX_TYPE);
final String sName = aContactRow.get(SUFFIX_NAME);
final String sPhoneNumber = aContactRow.get(SUFFIX_PHONE);
final String sFieldEmail = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityRowID, PREFIX_CONTACT, sContactRowID, SUFFIX_EMAIL);
final String sEmail = aContactRow.get(SUFFIX_EMAIL);
if (StringHelper.hasText(sEmail))
if (!EmailAddressValidator.isValid(sEmail))
aFormErrors.addFieldError(sFieldEmail, "The provided email address is invalid!");
final boolean bIsAnySet = StringHelper.hasText(sType) || StringHelper.hasText(sName) || StringHelper.hasText(sPhoneNumber) || StringHelper.hasText(sEmail);
if (aFormErrors.size() == nErrors2 && bIsAnySet) {
final boolean bIsNewContact = sContactRowID.startsWith(TMP_ID_PREFIX);
aSMPContacts.add(bIsNewContact ? new SMPBusinessCardContact(sType, sName, sPhoneNumber, sEmail) : new SMPBusinessCardContact(sContactRowID, sType, sName, sPhoneNumber, sEmail));
}
}
aSMPContacts.sort((o1, o2) -> {
int ret = CompareHelper.compareIgnoreCase(o1.getType(), o2.getType());
if (ret == 0) {
ret = CompareHelper.compareIgnoreCase(o1.getName(), o2.getName());
if (ret == 0) {
ret = CompareHelper.compareIgnoreCase(o1.getPhoneNumber(), o2.getPhoneNumber());
if (ret == 0)
ret = CompareHelper.compareIgnoreCase(o1.getEmail(), o2.getEmail());
}
}
return ret;
});
// Entity Additional Information
final String sAdditionalInfo = aEntityRow.get(SUFFIX_ADDITIONAL_INFO);
// Entity Registration Date
final String sFieldRegDate = RequestParamMap.getFieldName(PREFIX_ENTITY, sEntityRowID, SUFFIX_REG_DATE);
final String sRegDate = aEntityRow.get(SUFFIX_REG_DATE);
final LocalDate aRegDate = PDTFromString.getLocalDateFromString(sRegDate, aDisplayLocale);
if (aRegDate == null && StringHelper.hasText(sRegDate))
aFormErrors.addFieldError(sFieldRegDate, "The entered registration date is invalid!");
if (aFormErrors.size() == nErrors) {
// Add to list
final boolean bIsNewEntity = sEntityRowID.startsWith(TMP_ID_PREFIX);
final SMPBusinessCardEntity aEntity = bIsNewEntity ? new SMPBusinessCardEntity() : new SMPBusinessCardEntity(sEntityRowID);
aEntity.names().add(new SMPBusinessCardName(sEntityName, null));
aEntity.setCountryCode(sCountryCode);
aEntity.setGeographicalInformation(sGeoInfo);
aEntity.identifiers().setAll(aSMPIdentifiers);
aEntity.websiteURIs().setAll(aWebsiteURIs);
aEntity.contacts().setAll(aSMPContacts);
aEntity.setAdditionalInformation(sAdditionalInfo);
aEntity.setRegistrationDate(aRegDate);
aSMPEntities.add(aEntity);
}
}
if (aSMPEntities.isEmpty())
if (aFormErrors.isEmpty())
aFormErrors.addFieldError(FIELD_SERVICE_GROUP_ID, "At least one entity must be provided.");
if (aFormErrors.isEmpty()) {
// Store in a consistent manner
aSMPEntities.sort((o1, o2) -> o1.names().getFirst().getName().compareToIgnoreCase(o2.names().getFirst().getName()));
if (aBusinessCardMgr.createOrUpdateSMPBusinessCard(aServiceGroup.getParticipantIdentifier(), aSMPEntities) != null) {
final ISMPSettings aSettings = SMPMetaManager.getSettings();
aWPEC.postRedirectGetInternal(success("The Business Card for Service Group '" + aServiceGroup.getID() + "' was successfully saved." + (aSettings.isDirectoryIntegrationEnabled() && aSettings.isDirectoryIntegrationAutoUpdate() ? " " + SMPWebAppConfiguration.getDirectoryName() + " server should have been updated." : "")));
} else
aWPEC.postRedirectGetInternal(error("Error creating the Business Card for Service Group '" + aServiceGroup.getID() + "'"));
}
}
use of com.helger.phoss.smp.domain.businesscard.SMPBusinessCardContact in project phoss-smp by phax.
the class SMPBusinessCardManagerJDBC method getJsonAsBCC.
@Nonnull
public static ICommonsList<SMPBusinessCardContact> getJsonAsBCC(@Nullable final String sJson) {
final ICommonsList<SMPBusinessCardContact> ret = new CommonsArrayList<>();
final IJson aJson = sJson == null ? null : JsonReader.readFromString(sJson);
if (aJson != null && aJson.isArray())
for (final IJson aItem : aJson.getAsArray()) {
final IJsonObject aItemObject = aItem.getAsObject();
final SMPBusinessCardContact aBCC = new SMPBusinessCardContact(aItemObject.getAsString("id"), aItemObject.getAsString("type"), aItemObject.getAsString("name"), aItemObject.getAsString("phone"), aItemObject.getAsString("email"));
ret.add(aBCC);
}
return ret;
}
use of com.helger.phoss.smp.domain.businesscard.SMPBusinessCardContact in project phoss-smp by phax.
the class SMPBusinessCardManagerMongoDB method toBson.
@Nonnull
@ReturnsMutableCopy
public static Document toBson(@Nonnull final SMPBusinessCardEntity aValue) {
final Document ret = new Document().append(BSON_ID, aValue.getID());
// Mandatory fields
{
final ICommonsList<Document> aNames = new CommonsArrayList<>();
for (final SMPBusinessCardName aName : aValue.names()) aNames.add(toBson(aName));
ret.append(BSON_NAMES, aNames);
}
ret.append(BSON_COUNTRYCODE, aValue.getCountryCode());
// Optional fields
if (aValue.hasGeographicalInformation())
ret.append(BSON_GEOINFO, aValue.getGeographicalInformation());
{
final ICommonsList<Document> aIDs = new CommonsArrayList<>();
for (final SMPBusinessCardIdentifier aID : aValue.identifiers()) aIDs.add(toBson(aID));
if (aIDs.isNotEmpty())
ret.append(BSON_IDS, aIDs);
}
if (aValue.websiteURIs().isNotEmpty())
ret.append(BSON_WEBSITES, aValue.websiteURIs());
{
final ICommonsList<Document> aContacts = new CommonsArrayList<>();
for (final SMPBusinessCardContact aContact : aValue.contacts()) aContacts.add(toBson(aContact));
if (aContacts.isNotEmpty())
ret.append(BSON_CONTACTS, aContacts);
}
if (aValue.hasAdditionalInformation())
ret.append(BSON_ADDITIONAL, aValue.getAdditionalInformation());
if (aValue.hasRegistrationDate())
ret.append(BSON_REGDATE, TypeConverter.convert(aValue.getRegistrationDate(), Date.class));
return ret;
}
Aggregations