All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.paymentgate.engine.webservices.merchant.OrderParams Maven / Gradle / Ivy

There is a newer version: 1.6
Show newest version
/**
 * OrderParams.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis2 version: 1.7.5  Built on : May 06, 2017 (03:45:50 BST)
 */
package ru.paymentgate.engine.webservices.merchant;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;

import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axis2.databinding.ADBBean;
import org.apache.axis2.databinding.ADBDataSource;
import org.apache.axis2.databinding.ADBException;
import org.apache.axis2.databinding.utils.BeanUtil;
import org.apache.axis2.databinding.utils.ConverterUtil;

import ru.abyss.acquiring.soap.MerchantService;

/**
 * Параметры запроса на регистрацию заказа в платёжном шлюзе
 * @see {@link MerchantService#registerOrder(RegisterOrder)}
 */
public class OrderParams implements ADBBean {

	private static final long serialVersionUID = -4505679369713618675L;

	/**
	 * Адрес, на который требуется перенаправить пользователя в случае успешной оплаты.
	 * Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru).
	 * В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Обязательное поле. Максимальная длина - 512 символов. */ protected String localReturnUrl; protected boolean localReturnUrlTracker = false; /** * Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. * Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). * В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Максимальная длина - 512 символов. */ protected String localFailUrl; protected boolean localFailUrlTracker = false; /** * Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре.
* Максимальная длина - 255 символов. */ protected String localMerchantLogin; protected boolean localMerchantLoginTracker = false; /** * field for Email */ protected String localEmail; protected boolean localEmailTracker = false; /** * Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг * банка для последующего отображения в реестрах (По умолчанию в процессинг банка передаются поля: *
  • orderNumber – номер заказа в системе магазина; *
  • description – описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
    * Если в заказе передать дополнительный параметр с именем merchantOrderId , то именно его значение будет передано в * процессинг в качестве номера заказа (вместо значения поля orderNumber)).
    * Включение данного функционала возможно по согласованию с банком в период интеграции. * Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен * передаваться в этом тэге в параметре с именем email. */ protected ServiceParam[] localParams; protected boolean localParamsTracker = false; /** * Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. * Может присутствовать, если магазину разрешено создание связок.
    * Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.
    * Максимальная длина - 255 символов. */ protected String localClientId; protected boolean localClientIdTracker = false; /** * field for OrderBundle */ protected OrderBundle localOrderBundle; protected boolean localOrderBundleTracker = false; /** * field for Features */ protected Features_type0 localFeatures; protected boolean localFeaturesTracker = false; /** * Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы.
    * Обязательное поле. Максимальная длина - 32 символа. */ protected String localMerchantOrderNumber; /** * Описание заказа в свободной форме.
    * Максимальная длина - 512 символов. */ protected String localDescription; /** * Сумма платежа в минимальных единицах валюты.
    * Обязательное поле. Максимальная длина - 20 цифр. */ protected long localAmount; /** * Код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию.
    * Максимальная длина - 3 символа. */ protected String localCurrency; /** * Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language).
    * Максимальная длина - 2 символа. */ protected String localLanguage; /** * По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения: *
  • DESKTOP – для загрузки страниц, верстка которых предназначена для отображения на экранах ПК (в архиве страниц платёжного * интерфейса будет осуществляться поиск страниц с названиями payment_<locale>.html и errors_<locale>.html); *
  • MOBILE – для загрузки страниц, верстка которых предназначена для отображения на экранах мобильных устройств * (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями mobile_payment_<locale>.html * и mobile_errors_<locale>.html); *
  • Если магазин создал страницы платёжного интерфейса, добавив в название файлов страниц произвольные префиксы, передайте * значение нужного префикса в параметре pageView для загрузки соответствующей страницы. Например, при передаче значения iphone в архиве * страниц платёжного интерфейса будет осуществляться поиск страниц с названиями iphone_payment_<locale>.html и iphone_error_<locale>.html. *

    * Где:
    * locale – язык страницы в кодировке ISO 639-1 . Например, ru для русского или en для английского.

    * Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP.
    * Максимальная длина - 20 символов. */ protected String localPageView; /** * Продолжительность жизни заказа в секундах. *

    * В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут). *

    * Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается. *

    * Максимальная длина - 9 цифр. */ protected int localSessionTimeoutSecs; /** * field for TaxSystem This was an Attribute! */ protected int localTaxSystem; /** * Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть * разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает: *
      *
    1. Данный заказ может быть оплачен только с помощью связки;
    2. *
    3. Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC.
    4. *
    * Максимальная длина - 255 символов. */ protected String localBindingId; /** * Дата и время окончания жизни заказа. Формат: yyyy-MM-dd'T'HH:mm:ss. * Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs. */ protected Calendar localExpirationDate; public boolean isReturnUrlSpecified() { return localReturnUrlTracker; } /** * Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. * Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). * В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
    * Обязательное поле. Максимальная длина - 512 символов. */ public String getReturnUrl() { return localReturnUrl; } /** * Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. * Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). * В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
    * Обязательное поле. Максимальная длина - 512 символов. */ public void setReturnUrl(String returnUrl) { localReturnUrlTracker = returnUrl != null; this.localReturnUrl = returnUrl; } public boolean isFailUrlSpecified() { return localFailUrlTracker; } /** * Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. * Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). * В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
    * Максимальная длина - 512 символов. */ public String getFailUrl() { return localFailUrl; } /** * Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. * Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). * В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
    * Максимальная длина - 512 символов. */ public void setFailUrl(String failUrl) { localFailUrlTracker = failUrl != null; this.localFailUrl = failUrl; } public boolean isMerchantLoginSpecified() { return localMerchantLoginTracker; } /** * Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре.
    * Максимальная длина - 255 символов. */ public String getMerchantLogin() { return localMerchantLogin; } /** * Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре.
    * Максимальная длина - 255 символов. */ public void setMerchantLogin(String merchantLogin) { localMerchantLoginTracker = merchantLogin != null; this.localMerchantLogin = merchantLogin; } public boolean isEmailSpecified() { return localEmailTracker; } /** * Auto generated getter method * * @return String */ public String getEmail() { return localEmail; } /** * Auto generated setter method * * @param param * Email */ public void setEmail(String param) { localEmailTracker = param != null; this.localEmail = param; } public boolean isParamsSpecified() { return localParamsTracker; } /** * Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг * банка для последующего отображения в реестрах (По умолчанию в процессинг банка передаются поля: *
  • orderNumber – номер заказа в системе магазина; *
  • description – описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
    * Если в заказе передать дополнительный параметр с именем merchantOrderId , то именно его значение будет передано в * процессинг в качестве номера заказа (вместо значения поля orderNumber)).
    * Включение данного функционала возможно по согласованию с банком в период интеграции. * Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен * передаваться в этом тэге в параметре с именем email. */ public ServiceParam[] getParams() { return localParams; } /** * validate the array for Params */ protected void validateParams(ServiceParam[] param) { } /** * Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг * банка для последующего отображения в реестрах (По умолчанию в процессинг банка передаются поля: *
  • orderNumber – номер заказа в системе магазина; *
  • description – описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
    * Если в заказе передать дополнительный параметр с именем merchantOrderId , то именно его значение будет передано в * процессинг в качестве номера заказа (вместо значения поля orderNumber)).
    * Включение данного функционала возможно по согласованию с банком в период интеграции. * Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен * передаваться в этом тэге в параметре с именем email. */ public void setParams(ServiceParam[] params) { validateParams(params); localParamsTracker = params != null; this.localParams = params; } /** * Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг * банка для последующего отображения в реестрах (По умолчанию в процессинг банка передаются поля: *
  • orderNumber – номер заказа в системе магазина; *
  • description – описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
    * Если в заказе передать дополнительный параметр с именем merchantOrderId , то именно его значение будет передано в * процессинг в качестве номера заказа (вместо значения поля orderNumber)).
    * Включение данного функционала возможно по согласованию с банком в период интеграции. * Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен * передаваться в этом тэге в параметре с именем email. */ public void addParams(ServiceParam param) { if (localParams == null) { localParams = new ServiceParam[] {}; } // update the setting tracker localParamsTracker = true; @SuppressWarnings("unchecked") List list = ConverterUtil.toList(localParams); list.add(param); this.localParams = list.toArray(new ServiceParam[list.size()]); } public boolean isClientIdSpecified() { return localClientIdTracker; } /** * Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. * Может присутствовать, если магазину разрешено создание связок.
    * Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.
    * Максимальная длина - 255 символов. */ public String getClientId() { return localClientId; } /** * Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. * Может присутствовать, если магазину разрешено создание связок.
    * Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.
    * Максимальная длина - 255 символов. */ public void setClientId(String clientId) { localClientIdTracker = clientId != null; this.localClientId = clientId; } public boolean isOrderBundleSpecified() { return localOrderBundleTracker; } /** * Auto generated getter method * * @return OrderBundle */ public OrderBundle getOrderBundle() { return localOrderBundle; } /** * Auto generated setter method * * @param param * OrderBundle */ public void setOrderBundle(OrderBundle param) { localOrderBundleTracker = param != null; this.localOrderBundle = param; } public boolean isFeaturesSpecified() { return localFeaturesTracker; } /** * Auto generated getter method * * @return ru.paymentgate.engine.webservices.merchant.Features_type0 */ public Features_type0 getFeatures() { return localFeatures; } /** * Auto generated setter method * * @param param * Features */ public void setFeatures(Features_type0 param) { localFeaturesTracker = param != null; this.localFeatures = param; } /** * Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы.
    * Обязательное поле. Максимальная длина - 32 символа. */ public String getMerchantOrderNumber() { return localMerchantOrderNumber; } /** * Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы.
    * Обязательное поле. Максимальная длина - 32 символа. */ public void setMerchantOrderNumber(String merchantOrderNumber) { this.localMerchantOrderNumber = merchantOrderNumber; } /** * Описание заказа в свободной форме.
    * Максимальная длина - 512 символов. */ public String getDescription() { return localDescription; } /** * Описание заказа в свободной форме.
    * Максимальная длина - 512 символов. */ public void setDescription(String description) { this.localDescription = description; } /** * Сумма платежа в минимальных единицах валюты.
    * Обязательное поле. Максимальная длина - 20 цифр. */ public long getAmount() { return localAmount; } /** * Сумма платежа в минимальных единицах валюты.
    * Обязательное поле. Максимальная длина - 20 цифр. */ public void setAmount(long amount) { this.localAmount = amount; } /** * Код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию.
    * Максимальная длина - 3 символа. */ public String getCurrency() { return localCurrency; } /** * Код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию.
    * Максимальная длина - 3 символа. */ public void setCurrency(String currency) { this.localCurrency = currency; } /** * Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language).
    * Максимальная длина - 2 символа. */ public String getLanguage() { return localLanguage; } /** * Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language).
    * Максимальная длина - 2 символа. */ public void setLanguage(String language) { this.localLanguage = language; } /** * По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения: *
  • DESKTOP – для загрузки страниц, верстка которых предназначена для отображения на экранах ПК (в архиве страниц платёжного * интерфейса будет осуществляться поиск страниц с названиями payment_<locale>.html и errors_<locale>.html); *
  • MOBILE – для загрузки страниц, верстка которых предназначена для отображения на экранах мобильных устройств * (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями mobile_payment_<locale>.html * и mobile_errors_<locale>.html); *
  • Если магазин создал страницы платёжного интерфейса, добавив в название файлов страниц произвольные префиксы, передайте * значение нужного префикса в параметре pageView для загрузки соответствующей страницы. Например, при передаче значения iphone в архиве * страниц платёжного интерфейса будет осуществляться поиск страниц с названиями iphone_payment_<locale>.html и iphone_error_<locale>.html. *

    * Где:
    * locale – язык страницы в кодировке ISO 639-1 . Например, ru для русского или en для английского.

    * Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP.
    * Максимальная длина - 20 символов. */ public String getPageView() { return localPageView; } /** * По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения: *
  • DESKTOP – для загрузки страниц, верстка которых предназначена для отображения на экранах ПК (в архиве страниц платёжного * интерфейса будет осуществляться поиск страниц с названиями payment_<locale>.html и errors_<locale>.html); *
  • MOBILE – для загрузки страниц, верстка которых предназначена для отображения на экранах мобильных устройств * (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями mobile_payment_<locale>.html * и mobile_errors_<locale>.html); *
  • Если магазин создал страницы платёжного интерфейса, добавив в название файлов страниц произвольные префиксы, передайте * значение нужного префикса в параметре pageView для загрузки соответствующей страницы. Например, при передаче значения iphone в архиве * страниц платёжного интерфейса будет осуществляться поиск страниц с названиями iphone_payment_<locale>.html и iphone_error_<locale>.html. *

    * Где:
    * locale – язык страницы в кодировке ISO 639-1 . Например, ru для русского или en для английского.

    * Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP.
    * Максимальная длина - 20 символов. */ public void setPageView(String pageView) { this.localPageView = pageView; } /** * Продолжительность жизни заказа в секундах. *

    * В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут). *

    * Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается. *

    * Максимальная длина - 9 цифр. */ public int getSessionTimeoutSecs() { return localSessionTimeoutSecs; } /** * Продолжительность жизни заказа в секундах. *

    * В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут). *

    * Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается. *

    * Максимальная длина - 9 цифр. */ public void setSessionTimeoutSecs(int sessionTimeoutSecs) { this.localSessionTimeoutSecs = sessionTimeoutSecs; } /** * Auto generated getter method * * @return int */ public int getTaxSystem() { return localTaxSystem; } /** * Auto generated setter method * * @param param * TaxSystem */ public void setTaxSystem(int param) { this.localTaxSystem = param; } /** * Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть * разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает: *
      *
    1. Данный заказ может быть оплачен только с помощью связки;
    2. *
    3. Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC.
    4. *
    * Максимальная длина - 255 символов. */ public String getBindingId() { return localBindingId; } /** * Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть * разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает: *
      *
    1. Данный заказ может быть оплачен только с помощью связки;
    2. *
    3. Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC.
    4. *
    * Максимальная длина - 255 символов. */ public void setBindingId(String bindingId) { this.localBindingId = bindingId; } /** * Дата и время окончания жизни заказа. Формат: yyyy-MM-dd'T'HH:mm:ss. * Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs. */ public Calendar getExpirationDate() { return localExpirationDate; } /** * Дата и время окончания жизни заказа. Формат: yyyy-MM-dd'T'HH:mm:ss. * Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs. */ public void setExpirationDate(Calendar expirationDate) { this.localExpirationDate = expirationDate; } /** * * @param parentQName * @param factory * @return {@link OMElement} */ public OMElement getOMElement(final QName parentQName, final OMFactory factory) throws ADBException { return factory.createOMElement(new ADBDataSource(this, parentQName)); } public void serialize(final QName parentQName, XMLStreamWriter xmlWriter) throws XMLStreamException, ADBException { serialize(parentQName, xmlWriter, false); } public void serialize(final QName parentQName, XMLStreamWriter xmlWriter, boolean serializeType) throws XMLStreamException, ADBException { String prefix = null; String namespace = null; prefix = parentQName.getPrefix(); namespace = parentQName.getNamespaceURI(); writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter); if (serializeType) { String namespacePrefix = registerPrefix(xmlWriter, "http://engine.paymentgate.ru/webservices/merchant"); if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) { writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", namespacePrefix + ":orderParams", xmlWriter); } else { writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "orderParams", xmlWriter); } } if (localMerchantOrderNumber != null) { writeAttribute("", "merchantOrderNumber", ConverterUtil.convertToString(localMerchantOrderNumber), xmlWriter); } if (localDescription != null) { writeAttribute("", "description", ConverterUtil.convertToString(localDescription), xmlWriter); } if (localAmount != Long.MIN_VALUE) { writeAttribute("", "amount", ConverterUtil.convertToString(localAmount), xmlWriter); } if (localCurrency != null) { writeAttribute("", "currency", ConverterUtil.convertToString(localCurrency), xmlWriter); } if (localLanguage != null) { writeAttribute("", "language", ConverterUtil.convertToString(localLanguage), xmlWriter); } if (localPageView != null) { writeAttribute("", "pageView", ConverterUtil.convertToString(localPageView), xmlWriter); } if (localSessionTimeoutSecs != Integer.MIN_VALUE) { writeAttribute("", "sessionTimeoutSecs", ConverterUtil.convertToString(localSessionTimeoutSecs), xmlWriter); } if (localTaxSystem != Integer.MIN_VALUE) { writeAttribute("", "taxSystem", ConverterUtil.convertToString(localTaxSystem), xmlWriter); } if (localBindingId != null) { writeAttribute("", "bindingId", ConverterUtil.convertToString(localBindingId), xmlWriter); } if (localExpirationDate != null) { writeAttribute("", "expirationDate", ConverterUtil.convertToString(localExpirationDate), xmlWriter); } if (localReturnUrlTracker) { namespace = ""; writeStartElement(null, namespace, "returnUrl", xmlWriter); if (localReturnUrl == null) { // write the nil attribute throw new ADBException("returnUrl cannot be null!!"); } else { xmlWriter.writeCharacters(localReturnUrl); } xmlWriter.writeEndElement(); } if (localFailUrlTracker) { namespace = ""; writeStartElement(null, namespace, "failUrl", xmlWriter); if (localFailUrl == null) { // write the nil attribute throw new ADBException("failUrl cannot be null!!"); } else { xmlWriter.writeCharacters(localFailUrl); } xmlWriter.writeEndElement(); } if (localMerchantLoginTracker) { namespace = ""; writeStartElement(null, namespace, "merchantLogin", xmlWriter); if (localMerchantLogin == null) { // write the nil attribute throw new ADBException("merchantLogin cannot be null!!"); } else { xmlWriter.writeCharacters(localMerchantLogin); } xmlWriter.writeEndElement(); } if (localEmailTracker) { namespace = ""; writeStartElement(null, namespace, "email", xmlWriter); if (localEmail == null) { // write the nil attribute throw new ADBException("email cannot be null!!"); } else { xmlWriter.writeCharacters(localEmail); } xmlWriter.writeEndElement(); } if (localParamsTracker) { if (localParams != null) { for (int i = 0; i < localParams.length; i++) { if (localParams[i] != null) { localParams[i].serialize(new QName("", "params"), xmlWriter); } else { // we don't have to do any thing since minOccures is zero } } } else { throw new ADBException("params cannot be null!!"); } } if (localClientIdTracker) { namespace = ""; writeStartElement(null, namespace, "clientId", xmlWriter); if (localClientId == null) { // write the nil attribute throw new ADBException("clientId cannot be null!!"); } else { xmlWriter.writeCharacters(localClientId); } xmlWriter.writeEndElement(); } if (localOrderBundleTracker) { if (localOrderBundle == null) { throw new ADBException("orderBundle cannot be null!!"); } localOrderBundle.serialize(new QName("", "orderBundle"), xmlWriter); } if (localFeaturesTracker) { if (localFeatures == null) { throw new ADBException("features cannot be null!!"); } localFeatures.serialize(new QName("", "features"), xmlWriter); } xmlWriter.writeEndElement(); } private static String generatePrefix(String namespace) { if (namespace.equals("http://engine.paymentgate.ru/webservices/merchant")) { return "ns1"; } return BeanUtil.getUniquePrefix(); } /** * Utility method to write an element start tag. */ private void writeStartElement(String prefix, String namespace, String localPart, XMLStreamWriter xmlWriter) throws XMLStreamException { String writerPrefix = xmlWriter.getPrefix(namespace); if (writerPrefix != null) { xmlWriter.writeStartElement(writerPrefix, localPart, namespace); } else { if (namespace.length() == 0) { prefix = ""; } else if (prefix == null) { prefix = generatePrefix(namespace); } xmlWriter.writeStartElement(prefix, localPart, namespace); xmlWriter.writeNamespace(prefix, namespace); xmlWriter.setPrefix(prefix, namespace); } } /** * Util method to write an attribute with the ns prefix */ private void writeAttribute(String prefix, String namespace, String attName, String attValue, XMLStreamWriter xmlWriter) throws XMLStreamException { String writerPrefix = xmlWriter.getPrefix(namespace); if (writerPrefix != null) { xmlWriter.writeAttribute(writerPrefix, namespace, attName, attValue); } else { xmlWriter.writeNamespace(prefix, namespace); xmlWriter.setPrefix(prefix, namespace); xmlWriter.writeAttribute(prefix, namespace, attName, attValue); } } /** * Util method to write an attribute without the ns prefix */ private void writeAttribute(String namespace, String attName, String attValue, XMLStreamWriter xmlWriter) throws XMLStreamException { if (namespace.equals("")) { xmlWriter.writeAttribute(attName, attValue); } else { xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace, attName, attValue); } } /** * Register a namespace prefix */ private String registerPrefix(XMLStreamWriter xmlWriter, String namespace) throws XMLStreamException { String prefix = xmlWriter.getPrefix(namespace); if (prefix == null) { prefix = generatePrefix(namespace); NamespaceContext nsContext = xmlWriter.getNamespaceContext(); while (true) { String uri = nsContext.getNamespaceURI(prefix); if ((uri == null) || (uri.length() == 0)) { break; } prefix = BeanUtil.getUniquePrefix(); } xmlWriter.writeNamespace(prefix, namespace); xmlWriter.setPrefix(prefix, namespace); } return prefix; } /** * Factory class that keeps the parse method */ public static class Factory { /** * static method to create the object Precondition: If this object is an * element, the current or next start element starts this object and any * intervening reader events are ignorable If this object is not an * element, it is a complex type and the reader is at the event just * after the outer start element Postcondition: If this object is an * element, the reader is positioned at its end element If this object * is a complex type, the reader is positioned at the end element of its * outer element */ public static OrderParams parse(XMLStreamReader reader) throws Exception { OrderParams object = new OrderParams(); String nillableValue = null; try { while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) { String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type"); if (fullTypeName != null) { String nsPrefix = null; if (fullTypeName.indexOf(":") > -1) { nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":")); } nsPrefix = (nsPrefix == null) ? "" : nsPrefix; String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1); if (!"orderParams".equals(type)) { // find namespace for the prefix String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix); return (OrderParams) ExtensionMapper.getTypeObject(nsUri, type, reader); } } } // handle attribute "merchantOrderNumber" String tempAttribMerchantOrderNumber = reader.getAttributeValue(null, "merchantOrderNumber"); if (tempAttribMerchantOrderNumber != null) { object.setMerchantOrderNumber(ConverterUtil.convertToString(tempAttribMerchantOrderNumber)); } // handle attribute "description" String tempAttribDescription = reader.getAttributeValue(null, "description"); if (tempAttribDescription != null) { object.setDescription(ConverterUtil.convertToString(tempAttribDescription)); } // handle attribute "amount" String tempAttribAmount = reader.getAttributeValue(null, "amount"); if (tempAttribAmount != null) { object.setAmount(ConverterUtil.convertToLong(tempAttribAmount)); } else { object.setAmount(Long.MIN_VALUE); } // handle attribute "currency" String tempAttribCurrency = reader.getAttributeValue(null, "currency"); if (tempAttribCurrency != null) { object.setCurrency(ConverterUtil.convertToString(tempAttribCurrency)); } // handle attribute "language" String tempAttribLanguage = reader.getAttributeValue(null, "language"); if (tempAttribLanguage != null) { object.setLanguage(ConverterUtil.convertToString(tempAttribLanguage)); } // handle attribute "pageView" String tempAttribPageView = reader.getAttributeValue(null, "pageView"); if (tempAttribPageView != null) { object.setPageView(ConverterUtil.convertToString(tempAttribPageView)); } // handle attribute "sessionTimeoutSecs" String tempAttribSessionTimeoutSecs = reader.getAttributeValue(null, "sessionTimeoutSecs"); if (tempAttribSessionTimeoutSecs != null) { object.setSessionTimeoutSecs(ConverterUtil.convertToInt(tempAttribSessionTimeoutSecs)); } else { object.setSessionTimeoutSecs(Integer.MIN_VALUE); } // handle attribute "taxSystem" String tempAttribTaxSystem = reader.getAttributeValue(null, "taxSystem"); if (tempAttribTaxSystem != null) { object.setTaxSystem(ConverterUtil.convertToInt(tempAttribTaxSystem)); } else { object.setTaxSystem(Integer.MIN_VALUE); } // handle attribute "bindingId" String tempAttribBindingId = reader.getAttributeValue(null, "bindingId"); if (tempAttribBindingId != null) { object.setBindingId(ConverterUtil.convertToString(tempAttribBindingId)); } // handle attribute "expirationDate" String tempAttribExpirationDate = reader.getAttributeValue(null, "expirationDate"); if (tempAttribExpirationDate != null) { object.setExpirationDate(ConverterUtil.convertToDateTime(tempAttribExpirationDate)); } reader.next(); ArrayList list5 = new ArrayList(); while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if ((reader.isStartElement() && new QName("", "returnUrl").equals(reader.getName())) || new QName("", "returnUrl").equals(reader.getName())) { nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); if ("true".equals(nillableValue) || "1".equals(nillableValue)) { throw new ADBException("The element: " + "returnUrl" + " cannot be null"); } String content = reader.getElementText(); object.setReturnUrl(ConverterUtil.convertToString(content)); reader.next(); } // End of if for expected property start element while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if ((reader.isStartElement() && new QName("", "failUrl").equals(reader.getName())) || new QName("", "failUrl").equals(reader.getName())) { nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); if ("true".equals(nillableValue) || "1".equals(nillableValue)) { throw new ADBException("The element: " + "failUrl" + " cannot be null"); } String content = reader.getElementText(); object.setFailUrl(ConverterUtil.convertToString(content)); reader.next(); } // End of if for expected property start element while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if ((reader.isStartElement() && new QName("", "merchantLogin").equals(reader.getName())) || new QName("", "merchantLogin").equals(reader.getName())) { nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); if ("true".equals(nillableValue) || "1".equals(nillableValue)) { throw new ADBException("The element: " + "merchantLogin" + " cannot be null"); } String content = reader.getElementText(); object.setMerchantLogin(ConverterUtil.convertToString(content)); reader.next(); } // End of if for expected property start element while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if ((reader.isStartElement() && new QName("", "email").equals(reader.getName())) || new QName("", "email").equals(reader.getName())) { nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); if ("true".equals(nillableValue) || "1".equals(nillableValue)) { throw new ADBException("The element: " + "email" + " cannot be null"); } String content = reader.getElementText(); object.setEmail(ConverterUtil.convertToString(content)); reader.next(); } // End of if for expected property start element while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if ((reader.isStartElement() && new QName("", "params").equals(reader.getName())) || new QName("", "params").equals(reader.getName())) { // Process the array and step past its final element's end. list5.add(ServiceParam.Factory.parse(reader)); // loop until we find a start element that is not part of // this array boolean loopDone5 = false; while (!loopDone5) { // We should be at the end element, but make sure while (!reader.isEndElement()) reader.next(); // Step out of this element reader.next(); // Step to next element event. while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if (reader.isEndElement()) { // two continuous end elements means we are exiting // the xml structure loopDone5 = true; } else { if (new QName("", "params").equals(reader.getName())) { list5.add(ServiceParam.Factory.parse(reader)); } else { loopDone5 = true; } } } // call the converter utility to convert and set the array object.setParams((ServiceParam[]) ConverterUtil.convertToArray(ServiceParam.class, list5)); } // End of if for expected property start element while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if ((reader.isStartElement() && new QName("", "clientId").equals(reader.getName())) || new QName("", "clientId").equals(reader.getName())) { nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil"); if ("true".equals(nillableValue) || "1".equals(nillableValue)) { throw new ADBException("The element: " + "clientId" + " cannot be null"); } String content = reader.getElementText(); object.setClientId(ConverterUtil.convertToString(content)); reader.next(); } // End of if for expected property start element while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if ((reader.isStartElement() && new QName("", "orderBundle").equals(reader.getName())) || new QName("", "orderBundle").equals(reader.getName())) { object.setOrderBundle(OrderBundle.Factory.parse(reader)); reader.next(); } // End of if for expected property start element while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if ((reader.isStartElement() && new QName("", "features").equals(reader.getName())) || new QName("", "features").equals(reader.getName())) { object.setFeatures(Features_type0.Factory.parse(reader)); reader.next(); } // End of if for expected property start element while (!reader.isStartElement() && !reader.isEndElement()) reader.next(); if (reader.isStartElement()) { // 2 - A start element we are not expecting indicates a // trailing invalid property throw new ADBException("Unexpected subelement " + reader.getName()); } } catch (XMLStreamException e) { throw new Exception(e); } return object; } } // end of factory class }




  • © 2015 - 2025 Weber Informatics LLC | Privacy Policy