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

com.jelastic.api.system.persistence.Reseller Maven / Gradle / Ivy

There is a newer version: 8.12-1
Show newest version
/*Server class MD5: 9e7a610b7a7d60f21bff90f385196b39*/
package com.jelastic.api.system.persistence;

import com.jelastic.api.billing.response.interfaces.ArrayItem;
import com.jelastic.api.core.utils.DateUtils;
import com.jelastic.api.system.persistence.RegionReseller;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.Serializable;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Created by doba on 11/3/15.
 */
/**
 * @name Jelastic API Client
 * @version 8.11.2
 * @copyright Jelastic, Inc.
 */
public class Reseller extends ArrayItem implements Serializable {

    private String name;

    private String domain = "";

    private String comment;

    private ResellerStatus status;

    private int ownerUid;

    private Distributor distributor;

    private List regions = new ArrayList();

    private String certKey;

    private String intermediate;

    private String cert;

    private Date sslExpireDate;

    private Boolean sslEnabled;

    private String sslType;

    private Date createdOn;

    private Date deletedOn;

    private boolean isDeleted;

    public static final String ID = "id";

    public static final String NAME = "name";

    public static final String DOMAIN = "domain";

    public static final String COMMENT = "comment";

    public static final String STATUS = "status";

    public static final String OWNER_UID = "ownerUid";

    public static final String CREATED_ON = "createdOn";

    public static final String REGIONS = "regions";

    public static final String RESELLER_ID = "resellerId";

    public static final String REGION_ID = "regionId";

    public static final String PLATFORM = "platform";

    public static final String SSL_EXPIRE_DATE = "sslExpireDate";

    public static final String SSL_ENABLED = "sslEnabled";

    public static final String SSL_TYPE = "sslType";

    public static final String DISTRIBUTOR = "distributor";

    public static final int PLATFORM_REGION_ID = -1;

    public Reseller() {
    }

    public void updateSsl(Reseller newReseller) {
        setCertKey(newReseller.getCertKey());
        setCert(newReseller.getCert());
        setIntermediate(newReseller.getIntermediate());
        setSslType(newReseller.getSslType());
    }

    @Override
    public Reseller _fromJSON(JSONObject json) throws JSONException {
        if (json.has(ID)) {
            this.id = json.getInt(ID);
        }
        if (json.has(NAME)) {
            this.name = json.getString(NAME).toLowerCase();
        }
        if (json.has(PLATFORM)) {
            JSONObject platform = json.getJSONObject(PLATFORM);
            this.domain = platform.getString(DOMAIN);
            if (json.has(SSL_EXPIRE_DATE)) {
                try {
                    this.sslExpireDate = DateUtils.parseSqlDate(platform.getString(SSL_EXPIRE_DATE));
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
        }
        if (json.has(SSL_ENABLED)) {
            this.sslEnabled = json.getBoolean(SSL_ENABLED);
        }
        if (json.has(COMMENT)) {
            this.comment = json.getString(COMMENT);
        }
        if (json.has(STATUS)) {
            this.status = ResellerStatus.valueOf(json.getString(STATUS).toUpperCase());
        }
        if (json.has(REGIONS)) {
            JSONArray array = json.getJSONArray(REGIONS);
            for (int i = 0; i < array.length(); i++) {
                JSONObject resellerRegion = array.getJSONObject(i);
                this.regions.add(new RegionReseller(resellerRegion.has(RESELLER_ID) ? resellerRegion.getInt(RESELLER_ID) : 0, resellerRegion.getInt(REGION_ID), resellerRegion.getString(DOMAIN)));
            }
        }
        if (json.has(OWNER_UID)) {
            this.ownerUid = json.getInt(OWNER_UID);
        }
        if (json.has(CREATED_ON)) {
            try {
                this.createdOn = DateUtils.parseSqlDateTime(json.getString(CREATED_ON));
            } catch (ParseException e) {
                throw new JSONException(e);
            }
        }
        if (json.has(DISTRIBUTOR)) {
            this.distributor = (Distributor) new Distributor()._fromJSON(json.getJSONObject(DISTRIBUTOR));
        }
        return this;
    }

    @Override
    public JSONObject _toJSON() throws JSONException {
        JSONObject json = new JSONObject();
        json.put(ID, id);
        json.put(NAME, name);
        json.put(COMMENT, comment);
        json.put(STATUS, status);
        json.put(OWNER_UID, ownerUid);
        if (createdOn != null) {
            json.put(CREATED_ON, DateUtils.formatSqlDateTime(createdOn));
        }
        if (regions != null) {
            JSONArray array = new JSONArray();
            for (RegionReseller regionReseller : regions) {
                array.put(regionReseller._toJSON());
            }
            json.put(REGIONS, array);
        }
        if (domain != null) {
            JSONObject platform = new JSONObject();
            platform.put(DOMAIN, domain);
            if (sslExpireDate != null) {
                platform.put(SSL_EXPIRE_DATE, DateUtils.formatSqlDateTime(sslExpireDate));
            }
            platform.put(SSL_ENABLED, sslEnabled != null ? sslEnabled : false);
            platform.put(SSL_TYPE, sslType);
            platform.put(REGION_ID, PLATFORM_REGION_ID);
            json.put(PLATFORM, platform);
        }
        if (distributor != null) {
            json.put(DISTRIBUTOR, distributor._toJSON(false));
        }
        return json;
    }

    @Override
    public boolean equals(Object reseller) {
        if (reseller == null) {
            return false;
        }
        if (reseller == this) {
            return true;
        }
        if (!(reseller instanceof Reseller)) {
            return false;
        }
        if (((Reseller) reseller).getName().equals(getName())) {
            return true;
        } else {
            return false;
        }
    }

    public Boolean isSslEnabled() {
        return sslEnabled;
    }

    public void setSslEnabled(Boolean setSslEnabled) {
        this.sslEnabled = setSslEnabled;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDomain() {
        return domain;
    }

    public void setDomain(String domain) {
        this.domain = domain;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public ResellerStatus getStatus() {
        return status;
    }

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

    public int getOwnerUid() {
        return ownerUid;
    }

    public void setOwnerUid(int ownerUid) {
        this.ownerUid = ownerUid;
    }

    public Distributor getDistributor() {
        return distributor;
    }

    public void setDistributor(Distributor distributor) {
        this.distributor = distributor;
    }

    public Date getCreatedOn() {
        return createdOn;
    }

    public void setCreatedOn(Date createdOn) {
        this.createdOn = createdOn;
    }

    public Date getDeletedOn() {
        return deletedOn;
    }

    public void setDeletedOn(Date deletedOn) {
        this.deletedOn = deletedOn;
    }

    public boolean isDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

    public List getRegions() {
        return regions;
    }

    public void setRegions(List regions) {
        this.regions = regions;
    }

    public String getCertKey() {
        return certKey;
    }

    public void setCertKey(String certKey) {
        this.certKey = certKey;
    }

    public String getIntermediate() {
        return intermediate;
    }

    public void setIntermediate(String intermediate) {
        this.intermediate = intermediate;
    }

    public String getCert() {
        return cert;
    }

    public void setCert(String cert) {
        this.cert = cert;
    }

    public Date getSslExpireDate() {
        return sslExpireDate;
    }

    public void setSslExpireDate(Date sslExpireDate) {
        this.sslExpireDate = sslExpireDate;
    }

    public String getSslType() {
        return sslType;
    }

    public void setSslType(String sslType) {
        this.sslType = sslType;
    }

    public Boolean getSslEnabled() {
        return sslEnabled;
    }

    @Override
    public String toString() {
        return "Reseller{" + "name='" + name + '\'' + ", domain='" + domain + '\'' + ", comment='" + comment + '\'' + ", status=" + status + ", ownerUid=" + ownerUid + ", regions=" + regions + ", certKey='" + certKey + '\'' + ", intermediate='" + intermediate + '\'' + ", cert='" + cert + '\'' + ", sslExpireDate=" + sslExpireDate + ", sslEnabled=" + sslEnabled + ", sslType='" + sslType + '\'' + ", createdOn=" + createdOn + ", deletedOn=" + deletedOn + ", isDeleted=" + isDeleted + '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy