Java tutorial
/* * Copyright (c) 2013 The Finnish Board of Education - Opetushallitus * * This program is free software: Licensed under the EUPL, Version 1.1 or - as * soon as they will be approved by the European Commission - subsequent versions * of the EUPL (the "Licence"); * * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: http://www.osor.eu/eupl/ * * 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 */ package fi.vm.sade.organisaatio.service.util; import fi.vm.sade.organisaatio.api.model.types.OrganisaatioTyyppi; import fi.vm.sade.organisaatio.model.Organisaatio; import fi.vm.sade.organisaatio.resource.dto.OrganisaatioRDTO; import java.util.Date; import org.apache.commons.lang.time.DateUtils; /** * * @author simok */ public abstract class OrganisaatioUtil { public static boolean isRyhma(Organisaatio organisaatio) { return organisaatio.getTyypit().contains(OrganisaatioTyyppi.RYHMA.value()); } public static boolean isRyhma(OrganisaatioRDTO organisaatio) { return organisaatio.getTyypit().contains(OrganisaatioTyyppi.RYHMA.value()); } public static boolean isOppilaitos(Organisaatio organisaatio) { return organisaatio.getTyypit() != null && organisaatio.getTyypit().contains(OrganisaatioTyyppi.OPPILAITOS.value()); } public static boolean isToimipiste(Organisaatio organisaatio) { return organisaatio.getTyypit() != null && organisaatio.getTyypit().contains(OrganisaatioTyyppi.TOIMIPISTE.value()); } /** * Organisaation lakkautuspvm -logiikka. Huom. kaikki parametrit voivat olla null. * * @param oldLpvm Pivitettvn organisaation nykyinen lakkautuspvm. * @param newLpvm Uusi lakkautuspvm. * @param origLpvm Pivitettvn organisaatiojoukun alkuperinen lakkautuspvm. * @param parentLpvm Ylemmn tason organisaation lakkautuspvm. * @return */ public static Date getUpdatedLakkautusPvm(Date oldLpvm, Date newLpvm, Date origLpvm, Date parentLpvm) { if (parentLpvm != null && (newLpvm == null || newLpvm.after(parentLpvm))) { newLpvm = parentLpvm; } if (origLpvm != null && !isSameDay(oldLpvm, origLpvm)) { return oldLpvm; } else { return newLpvm; } } /** * Tarkistetaan annetuista pivmrist onko ne pivn osalta samat. * * @param pvm1 Pivmr lhs * @param pvm2 Pivmr rhs * @return true, jos pivt samat */ public static boolean isSameDay(Date pvm1, Date pvm2) { // Tysin sama date tai molemmat null if (pvm1 == pvm2) { return true; } // Toinen null if (pvm1 == null || pvm2 == null) { return false; } // Kumpikaan ei ole null --> tarkastetaan onko sama piv return DateUtils.isSameDay(pvm1, pvm2); } /** * Tarkistaa onko organisaatio passivoitu eli lakkautettu * @param o Organisaatio * @return true jos organisaatio on passiivinen, false muuten */ public static boolean isPassive(Organisaatio o) { return o.getLakkautusPvm() == null ? false : o.getLakkautusPvm().before(new Date()); } /** * Tarkistaa onko organisaatio suunniteltu, eli alkupvm tulevaisuudessa * @param o Organisaatio * @return true jos organisaatio on suunniteltu, false muuten */ public static boolean isSuunniteltu(Organisaatio o) { return o.getAlkuPvm() == null ? false : o.getAlkuPvm().after(new Date()); } }