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

com.lionbridge.content.sdk.models.Quote Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version
package com.lionbridge.content.sdk.models;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.StringWriter;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import static com.lionbridge.content.sdk.utilities.XmlUtils.appendXmlTag;

@JsonDeserialize
@JacksonXmlRootElement(localName="Quote")
@XmlRootElement
public class Quote {
	@JacksonXmlProperty(localName="QuoteID")
	private int quoteId;

	@JacksonXmlProperty(localName="CreationDate")
	private Date creationDate;

	@JacksonXmlProperty(localName="TotalTranslations")
	private int totalTranslations;

	@JacksonXmlProperty(localName="TranslationCredit")
	private int translationCredit;

	@JacksonXmlProperty(localName="TranslationAcceptanceMethod")
	private String translationAcceptanceMethod;

	@JacksonXmlProperty(localName="Currency")
	private String currency;

	@JacksonXmlProperty(localName="TotalCost")
	private BigDecimal totalCost;

	@JacksonXmlProperty(localName="PrepaidCredit")
	private BigDecimal prepaidCredit;

	@JacksonXmlProperty(localName="AmountDue")
	private BigDecimal amountDue;

	@JacksonXmlProperty(localName="Status")
	private String status;

	@JacksonXmlProperty(localName="AuthorizeURL")
	private String authorizeUrl;

	@JacksonXmlProperty(localName="RejectURL")
	private String rejectUrl;

	@JacksonXmlProperty(localName="PaymentURL")
	private String paymentUrl;

	@JacksonXmlElementWrapper(useWrapping=true)
	@JacksonXmlProperty(localName="Projects")
	private List projects;

	@JacksonXmlElementWrapper(useWrapping=true)
	@JacksonXmlProperty(localName="Payments")
	private List payments;

	private String internalBillingCode;

	private String purchaseOrderNumber;

	@JacksonXmlElementWrapper(useWrapping=true)
	@JacksonXmlProperty(localName="Errors")
	private List errors;

	@JacksonXmlElementWrapper(useWrapping=true)
	@JacksonXmlProperty(localName="NotificationSubscriptions")
	private List notificationSubscriptions;

	public String toXmlStringSimple() {
	    String xmlString = "";
	    try {
	        JAXBContext context = JAXBContext.newInstance(this.getClass());
	        Marshaller m = context.createMarshaller();

	        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // To format XML

	        StringWriter sw = new StringWriter();
	        m.marshal(this, sw);
	        xmlString = sw.toString();

	    } catch (JAXBException e) {
	        e.printStackTrace();
	    }

	    return xmlString;
	}
	
	public String toXmlForAuthorize() {
	    StringBuilder xmlString = new StringBuilder();

	    xmlString.append("");
	    xmlString.append("").append(getQuoteId()).append("");
	    xmlString.append("").append(getCreationDate().toString()).append("");
	    xmlString.append("").append(getTotalTranslations()).append("");
	    xmlString.append("").append(getTranslationCredit()).append("");
	    xmlString.append("").append(getTotalCost()).append("");
	    xmlString.append("").append(getPrepaidCredit()).append("");
	    xmlString.append("").append(getAmountDue()).append("");
	    xmlString.append("").append(getCurrency()).append("");
	    xmlString.append("").append(getPurchaseOrderNumber()).append("");
	    xmlString.append("");

	    if(null != getProjects()) {
	    	if(!getProjects().isEmpty()) {
	    		for(Project project : getProjects()) {
	    		    xmlString.append("");
	    		    xmlString.append("").append(project.getProjectId()).append("");
	    		    xmlString.append("").append(project.getName()).append("");
	    		    xmlString.append("").append(project.getServiceId()).append("");
	    		    xmlString.append("");
	    		    xmlString.append("").append(project.getSourceLanguage().getLanguageCode()).append("");
	    		    xmlString.append("");
	    		    xmlString.append("");
					if (null != project.getTargetLanguages() && !project.getTargetLanguages().isEmpty()) {
						for (TargetLanguage tgtLang : project.getTargetLanguages()) {
							xmlString.append("");
							xmlString.append("").append(tgtLang.getLanguageCode()).append("");
							xmlString.append("");
						}
					}
	    		    xmlString.append("");
	    		    xmlString.append("");

	    		}
	    	} else {
	    		return null;
	    	}
	    } else {
	    	return null;
	    }
	    xmlString.append("");

	    if (null != notificationSubscriptions) {
            if (notificationSubscriptions.size() > 0) {
                xmlString.append("");
                for (NotificationSubscription notification : notificationSubscriptions) {
                    xmlString.append("");
                    xmlString = appendXmlTag(xmlString, "EventName", notification.getEventName());
                    if (notification.getEndpoint().startsWith("http")) {
                        xmlString = appendXmlTag(xmlString, "Endpoint", notification.getEndpoint());
                    } else {
                        xmlString = appendXmlTag(xmlString, "Endpoint", "mailto:" + notification.getEndpoint());
                    }
                    xmlString.append("");
                }
                xmlString.append("");
            }
		}

	    xmlString.append("");
	    return xmlString.toString();
	}

	public int getQuoteId() {
		return quoteId;
	}

	public void setQuoteId(final int quoteId) {
		this.quoteId = quoteId;
	}

	public Date getCreationDate() {
		return creationDate;
	}

	public void setCreationDate(final Date creationDate) {
		this.creationDate = creationDate;
	}

	public int getTotalTranslations() {
		return totalTranslations;
	}

	public void setTotalTranslations(final int totalTranslations) {
		this.totalTranslations = totalTranslations;
	}

	public int getTranslationCredit() {
		return translationCredit;
	}

	public void setTranslationCredit(final int translationCredit) {
		this.translationCredit = translationCredit;
	}

	public String getCurrency() {
		return currency;
	}

	public void setCurrency(final String currency) {
		this.currency = currency;
	}

	public BigDecimal getTotalCost() {
		return totalCost;
	}

	public void setTotalCost(final BigDecimal totalCost) {
		this.totalCost = totalCost;
	}

	public BigDecimal getPrepaidCredit() {
		return prepaidCredit;
	}

	public void setPrepaidCredit(final BigDecimal prepaidCredit) {
		this.prepaidCredit = prepaidCredit;
	}

	public BigDecimal getAmountDue() {
		return amountDue;
	}

	public void setAmountDue(final BigDecimal amountDue) {
		this.amountDue = amountDue;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(final String status) {
		this.status = status;
	}

	public String getAuthorizeUrl() {
		return authorizeUrl;
	}

	public void setAuthorizeUrl(final String authorizeUrl) {
		this.authorizeUrl = authorizeUrl;
	}

	public String getRejectUrl() {
		return rejectUrl;
	}

	public void setRejectUrl(final String rejectUrl) {
		this.rejectUrl = rejectUrl;
	}

	public String getPaymentUrl() {
		return paymentUrl;
	}

	public void setPaymentUrl(final String paymentUrl) {
		this.paymentUrl = paymentUrl;
	}

	public List getProjects() {
		return projects;
	}

	public void setProjects(final List projects) {
		this.projects = projects;
	}

	public List getPayments() {
		return payments;
	}

	public void setPayments(final List payments) {
		this.payments = payments;
	}

	public String getPurchaseOrderNumber() {
		return purchaseOrderNumber;
	}

	public void setPurchaseOrderNumber(final String purchaseOrderNumber) {
		this.purchaseOrderNumber = purchaseOrderNumber;
	}

	public String getInternalBillingCode() {
		return internalBillingCode;
	}

	public void setInternalBillingCode(final String internalBillingCode) {
		this.internalBillingCode = internalBillingCode;
	}

	public List getErrors() {
		return errors;
	}

	public void setErrors(final List errors) {
		this.errors = errors;
	}

    public String getTranslationAcceptanceMethod() {
        return translationAcceptanceMethod;
    }

    public void setTranslationAcceptanceMethod(String translationAcceptanceMethod) {
        this.translationAcceptanceMethod = translationAcceptanceMethod;
    }

	public List getNotificationSubscriptions() {
		return notificationSubscriptions;
	}

	public void setNotificationSubscriptions(List notificationSubscriptions) {
		this.notificationSubscriptions = notificationSubscriptions;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy