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.JsArray; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.sigmah.shared.command.result.UserUnitsResult; import org.sigmah.shared.dto.UserUnitDTO; public final class UserUnitsResultJS extends JavaScriptObject { protected UserUnitsResultJS() { } public static UserUnitsResultJS toJavaScript(UserUnitsResult userUnitsResult) { final UserUnitsResultJS userUnitsResultJS = Values.createJavaScriptObject(UserUnitsResultJS.class); userUnitsResultJS.setUserId(userUnitsResult.getUserId()); userUnitsResultJS.setMainUserUnit(userUnitsResult.getMainUserUnit()); userUnitsResultJS.setSecondaryUserUnits(userUnitsResult.getSecondaryUserUnits()); return userUnitsResultJS; } public UserUnitsResult toDTO() { final UserUnitsResult userUnitsResult = new UserUnitsResult(); userUnitsResult.setUserId(getUserId()); userUnitsResult.setMainUserUnit(getMainUserUnitDTO()); userUnitsResult.setSecondaryUserUnits(getSecondaryUserUnitsDTO()); return userUnitsResult; } public native int getUserId() /*-{ return this.id; }-*/; public native void setUserId(int userId) /*-{ this.id = userId; }-*/; public native UserUnitJS getMainUserUnit() /*-{ return this.mainUserUnit; }-*/; public UserUnitDTO getMainUserUnitDTO() { return getMainUserUnit().toDTO(); } public native void setMainUserUnit(UserUnitJS mainUserUnit) /*-{ this.mainUserUnit = mainUserUnit; }-*/; public void setMainUserUnit(UserUnitDTO mainUserUnit) { setMainUserUnit(UserUnitJS.toJavaScript(mainUserUnit)); } public native JsArray<UserUnitJS> getSecondaryUserUnits() /*-{ return this.secondaryUserUnits; }-*/; public List<UserUnitDTO> getSecondaryUserUnitsDTO() { JsArray<UserUnitJS> secondaryUserUnits = getSecondaryUserUnits(); if (secondaryUserUnits == null) { return Collections.emptyList(); } List<UserUnitDTO> userUnits = new ArrayList<UserUnitDTO>(); for (int i = 0; i < secondaryUserUnits.length(); i++) { userUnits.add(secondaryUserUnits.get(i).toDTO()); } return userUnits; } public native void setSecondaryUserUnits(JsArray<UserUnitJS> secondaryUserUnits) /*-{ this.secondaryUserUnits = secondaryUserUnits; }-*/; public void setSecondaryUserUnits(List<UserUnitDTO> userUnits) { final JsArray<UserUnitJS> userUnitsJS = Values.createTypedJavaScriptArray(UserUnitJS.class); for (UserUnitDTO userUnit : userUnits) { userUnitsJS.push(UserUnitJS.toJavaScript(userUnit)); } setSecondaryUserUnits(userUnitsJS); } }