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 java.util.Date; import java.util.Set; import org.sigmah.shared.dto.OrgUnitModelDTO; import org.sigmah.shared.dto.country.CountryDTO; import org.sigmah.shared.dto.orgunit.OrgUnitDTO; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.JsArrayInteger; import java.util.HashSet; /** * Javascript version of OrgUnitDTO. * * @author Raphaƫl Calabro (rcalabro@ideia.fr) */ public final class OrgUnitJS extends JavaScriptObject { protected OrgUnitJS() { // Empty. } public static OrgUnitJS toJavaScript(OrgUnitDTO orgUnitDTO) { final OrgUnitJS orgUnitJS = Values.createJavaScriptObject(OrgUnitJS.class); orgUnitJS.setId(orgUnitDTO.getId()); orgUnitJS.setName(orgUnitDTO.getName()); orgUnitJS.setFullName(orgUnitDTO.getFullName()); orgUnitJS.setOrgUnitModel(orgUnitDTO.getOrgUnitModel()); orgUnitJS.setPlannedBudget(orgUnitDTO.getPlannedBudget()); orgUnitJS.setSpendBudget(orgUnitDTO.getSpendBudget()); orgUnitJS.setReceivedBudget(orgUnitDTO.getReceivedBudget()); orgUnitJS.setParent(orgUnitDTO.getParentOrgUnit()); orgUnitJS.setChildren(toArray(orgUnitDTO.getChildrenOrgUnits())); orgUnitJS.setCalendarId(orgUnitDTO.getCalendarId()); orgUnitJS.setDeleted(orgUnitDTO.getDeleted()); orgUnitJS.setOfficeLocationCountry(orgUnitDTO.getOfficeLocationCountry()); return orgUnitJS; } public OrgUnitDTO toDTO() { final OrgUnitDTO orgUnitDTO = new OrgUnitDTO(); orgUnitDTO.setId(getId()); orgUnitDTO.setName(getName()); orgUnitDTO.setFullName(getFullName()); if (hasPlannedBudget()) { orgUnitDTO.setPlannedBudget(getPlannedBudget()); } if (hasSpendBudget()) { orgUnitDTO.setSpendBudget(getSpendBudget()); } if (hasReceivedBudget()) { orgUnitDTO.setReceivedBudget(getReceivedBudget()); } if (hasCalendarId()) { orgUnitDTO.setCalendarId(getCalendarId()); } orgUnitDTO.setDeleted(getDeleted()); orgUnitDTO.setChildrenOrgUnits(new HashSet<OrgUnitDTO>()); return orgUnitDTO; } public static JsArrayInteger toArray(Set<OrgUnitDTO> children) { if (children == null) { return null; } final JsArrayInteger array = (JsArrayInteger) JavaScriptObject.createArray(); for (final OrgUnitDTO child : children) { array.push(child.getId()); } return array; } 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 native String getFullName() /*-{ return this.fullName; }-*/; public native void setFullName(String fullName) /*-{ this.fullName = fullName; }-*/; public native boolean hasOrgUnitModel() /*-{ return typeof this.orgUnitModel != 'undefined'; }-*/; public native int getOrgUnitModel() /*-{ return this.orgUnitModel; }-*/; public void setOrgUnitModel(OrgUnitModelDTO orgUnitModel) { if (orgUnitModel != null) { setOrgUnitModel(orgUnitModel.getId()); } } public native void setOrgUnitModel(int orgUnitModelId) /*-{ this.orgUnitModel = orgUnitModelId; }-*/; public native boolean hasPlannedBudget() /*-{ return typeof this.plannedBudget != 'undefined'; }-*/; public native double getPlannedBudget() /*-{ return this.plannedBudget; }-*/; public void setPlannedBudget(Double plannedBudget) { if (plannedBudget != null) { setPlannedBudget(plannedBudget.doubleValue()); } } public native void setPlannedBudget(double plannedBudget) /*-{ this.plannedBudget = plannedBudget; }-*/; public native boolean hasSpendBudget() /*-{ return typeof this.spendBudget != 'undefined'; }-*/; public native double getSpendBudget() /*-{ return this.spendBudget; }-*/; public void setSpendBudget(Double spendBudget) { if (spendBudget != null) { setSpendBudget(spendBudget.doubleValue()); } } public native void setSpendBudget(double spendBudget) /*-{ this.spendBudget = spendBudget; }-*/; public native boolean hasReceivedBudget() /*-{ return typeof this.receivedBudget != 'undefined'; }-*/; public native double getReceivedBudget() /*-{ return this.receivedBudget; }-*/; public void setReceivedBudget(Double receivedBudget) { if (receivedBudget != null) { setReceivedBudget(receivedBudget.doubleValue()); } } public native void setReceivedBudget(double receivedBudget) /*-{ this.receivedBudget = receivedBudget; }-*/; public native boolean hasParent() /*-{ return typeof this.parent != 'undefined'; }-*/; public native int getParent() /*-{ return this.parent; }-*/; public void setParent(OrgUnitDTO parent) { if (parent != null) { setParent(parent.getId()); } } public native void setParent(int parent) /*-{ this.parent = parent; }-*/; public native JsArrayInteger getChildren() /*-{ return this.children; }-*/; public native void setChildren(JsArrayInteger children) /*-{ this.children = children; }-*/; public native boolean hasCalendarId() /*-{ return typeof this.calendarId != 'undefined'; }-*/; public native int getCalendarId() /*-{ return this.calendarId; }-*/; public void setCalendarId(Integer calendarId) { if (calendarId != null) { setCalendarId(calendarId.intValue()); } } public native void setCalendarId(int calendarId) /*-{ this.calendarId = calendarId; }-*/; public native Date getDeleted() /*-{ return this.deleted; }-*/; public native void setDeleted(Date deleted) /*-{ this.deleted = deleted; }-*/; public native Date getStartDate() /*-{ return this.startDate; }-*/; public native void setStartDate(Date startDate) /*-{ this.startDate = startDate; }-*/; public native Date getEndDate() /*-{ return this.endDate; }-*/; public native void setEndDate(Date endDate) /*-{ this.endDate = endDate; }-*/; public native boolean hasCountry() /*-{ return typeof this.country != 'undefined'; }-*/; public native int getOfficeLocationCountry() /*-{ return this.country; }-*/; public void setOfficeLocationCountry(CountryDTO country) { if (country != null) { setOfficeLocationCountry(country.getId()); } } public native void setOfficeLocationCountry(int country) /*-{ this.country = country; }-*/; }