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;
}-*/;
}