org.sigmah.offline.js.ContactModelJS.java Source code

Java tutorial

Introduction

Here is the source code for org.sigmah.offline.js.ContactModelJS.java

Source

package org.sigmah.offline.js;
/*
 * #%L
 * Sigmah
 * %%
 * Copyright (C) 2010 - 2016 URD
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/gpl-3.0.html>.
 * #L%
 */

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsDate;

import java.util.Date;

import org.sigmah.shared.dto.ContactCardDTO;
import org.sigmah.shared.dto.ContactDetailsDTO;
import org.sigmah.shared.dto.ContactModelDTO;
import org.sigmah.shared.dto.referential.ContactModelType;
import org.sigmah.shared.dto.referential.ProjectModelStatus;

public class ContactModelJS extends JavaScriptObject {
    protected ContactModelJS() {
    }

    public static ContactModelJS toJavaScript(ContactModelDTO contactModelDTO) {
        ContactModelJS contactModelJS = (ContactModelJS) JavaScriptObject.createObject();
        contactModelJS.setId(contactModelDTO.getId());
        contactModelJS.setName(contactModelDTO.getName());
        contactModelJS.setStatus(contactModelDTO.getStatus());
        contactModelJS.setType(contactModelDTO.getType());
        contactModelJS.setDateMaintenance(contactModelDTO.getDateMaintenance());
        contactModelJS.setDetails(contactModelDTO.getDetails());
        contactModelJS.setCard(contactModelDTO.getCard());
        return contactModelJS;
    }

    public ContactModelDTO toDTO() {
        ContactModelDTO contactModelDTO = new ContactModelDTO();
        contactModelDTO.setId(getId());
        contactModelDTO.setName(getName());
        contactModelDTO.setStatus(getStatusDTO());
        contactModelDTO.setType(getTypeDTO());
        contactModelDTO.setDateMaintenance(getDateMaintenanceDTO());
        contactModelDTO.setDetails(getDetailsDTO());
        contactModelDTO.setCard(getCardDTO());
        return contactModelDTO;
    }

    public native int getId() /*-{
                              return this.id;
                              }-*/;

    public native void setId(int id) /*-{
                                     this.id = id;
                                     }-*/;

    public native String getName() /*-{
                                   return this.name;
                                   }-*/;

    public native void setName(String name) /*-{
                                            this.name = name;
                                            }-*/;

    public ProjectModelStatus getStatusDTO() {
        return ProjectModelStatus.valueOf(getStatus());
    }

    public native String getStatus() /*-{
                                     return this.status;
                                     }-*/;

    public void setStatus(ProjectModelStatus status) {
        setStatus(status.name());
    }

    public native void setStatus(String status) /*-{
                                                this.status = status;
                                                }-*/;

    public ContactModelType getTypeDTO() {
        return ContactModelType.valueOf(getType());
    }

    public native String getType() /*-{
                                   return this.type;
                                   }-*/;

    public void setType(ContactModelType type) {
        setType(type.name());
    }

    public native void setType(String type) /*-{
                                            this.type = type;
                                            }-*/;

    public native boolean isUnderMaintenance() /*-{
                                               return !!this.dateMaintenance;
                                               }-*/;

    public Date getDateMaintenanceDTO() {
        if (!isUnderMaintenance()) {
            return null;
        }
        return new Date((long) getDateMaintenance().getTime());
    }

    public native JsDate getDateMaintenance() /*-{
                                              return this.dateMaintenance;
                                              }-*/;

    public void setDateMaintenance(Date dateMaintenance) {
        setDateMaintenance(JsDate.create(dateMaintenance.getTime()));
    }

    public native void setDateMaintenance(JsDate dateMaintenance) /*-{
                                                                  this.dateMaintenance = dateMaintenance;
                                                                  }-*/;

    public ContactDetailsDTO getDetailsDTO() {
        return getDetails().toDTO();
    }

    public native ContactDetailsJS getDetails() /*-{
                                                return this.details;
                                                }-*/;

    public void setDetails(ContactDetailsDTO details) {
        setDetails(ContactDetailsJS.toJavaScript(details));
    }

    public native void setDetails(ContactDetailsJS details) /*-{
                                                            this.details = details;
                                                            }-*/;

    public ContactCardDTO getCardDTO() {
        return getCard().toDTO();
    }

    public native ContactCardJS getCard() /*-{
                                          return this.card;
                                          }-*/;

    public void setCard(ContactCardDTO card) {
        setCard(ContactCardJS.toJavaScript(card));
    }

    public native void setCard(ContactCardJS card) /*-{
                                                   this.card = card;
                                                   }-*/;
}