/** * Copyright (c) 2009 Juwi MacMillan Group GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // license-header java merge-point /** * This is only generated once! It will never be overwritten. * You can (and have to!) safely modify it by hand. */ package de.juwimm.cms.remote; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.PrintStream; import java.util.Collection; import java.util.Iterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import de.juwimm.cms.authorization.model.UserHbm; import de.juwimm.cms.components.model.AddressHbm; import de.juwimm.cms.components.model.PersonHbm; import de.juwimm.cms.exceptions.UserException; import de.juwimm.cms.model.HostHbm; import de.juwimm.cms.model.HostHbmDao; import de.juwimm.cms.model.HostHbmImpl; import de.juwimm.cms.model.SiteHbm; import de.juwimm.cms.model.UnitHbm; import de.juwimm.cms.model.ViewComponentHbm; import de.juwimm.cms.remote.helper.AuthenticationHelper; import de.juwimm.cms.vo.HostValue; import de.juwimm.cms.vo.SiteValue; /** * @see de.juwimm.cms.remote.AdministrationServiceSpring * @author <a href="mailto:carsten.schalm@juwimm.com">Carsten Schalm</a> , Juwi|MacMillan Group Gmbh, Walsrode, Germany * @version $Id$ */ public class AdministrationServiceSpringImpl extends AdministrationServiceSpringBase { private static Log log = LogFactory.getLog(AdministrationServiceSpringImpl.class); /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#createHost(java.lang.String) */ @Override protected HostValue handleCreateHost(String hostName) throws Exception { HostHbm host = new HostHbmImpl(); host.setHostName(hostName); HostHbmDao hostHbmDao = getHostHbmDao(); host = hostHbmDao.create(host); return host.getHostValue(); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#getAllHosts() */ @Override protected HostValue[] handleGetAllHosts() throws Exception { UserHbm user = null; try { user = getUserHbmDao().load(AuthenticationHelper.getUserName()); } catch (Exception exe) { log.error(exe.getMessage()); } HostValue[] hostArray = null; try { Collection coll = getHostHbmDao().findAll(); hostArray = new HostValue[coll.size()]; Iterator it = coll.iterator(); int i = 0; while (it.hasNext()) { HostHbm hl = (HostHbm) it.next(); SiteHbm sl = hl.getSite(); if (sl == null) { hostArray[i++] = hl.getHostValue(); } else { if (user.getSites().contains(sl) || user.isMasterRoot()) { hostArray[i++] = hl.getHostValue(); } } } } catch (Exception exe) { log.error("Error occured", exe); throw new UserException(exe.getMessage()); } return (hostArray); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#getHosts() */ @Override protected HostValue[] handleGetHosts() throws Exception { UserHbm user = null; try { user = getUserHbmDao().load(AuthenticationHelper.getUserName()); } catch (Exception exe) { log.error(exe.getMessage()); } HostValue[] hostArray = null; try { Collection coll = getHostHbmDao().findAll(user.getActiveSite().getSiteId()); hostArray = new HostValue[coll.size()]; Iterator it = coll.iterator(); int i = 0; while (it.hasNext()) { HostHbm hl = (HostHbm) it.next(); hostArray[i++] = hl.getHostValue(); } } catch (Exception exe) { log.error("Error occured", exe); throw new UserException(exe.getMessage()); } return (hostArray); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#getSiteForName(java.lang.String) */ @Override protected SiteValue handleGetSiteForName(String siteName) throws Exception { SiteHbm siteHbm = getSiteHbmDao().findByName(siteName); return siteHbm.getSiteValue(); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#removeHost(java.lang.String) */ @Override protected void handleRemoveHost(String hostName) throws Exception { HostHbm hostToRemove = getHostHbmDao().load(hostName); getHostHbmDao().remove(hostToRemove); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#setSiteByName(java.lang.String, java.lang.String) */ @Override protected void handleSetSiteByName(String hostName, String siteName) throws Exception { HostHbm host = getHostHbmDao().load(hostName); SiteHbm site = getSiteHbmDao().findByName(siteName); host.setSite(site); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#setSiteById(java.lang.String, java.lang.Integer) */ @Override protected void handleSetSiteById(String hostName, Integer siteId) throws Exception { HostHbm host = getHostHbmDao().load(hostName); SiteHbm site = getSiteHbmDao().load(siteId); host.setSite(site); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#setStartPage(java.lang.String, java.lang.String) */ @Override protected void handleSetStartPage(String hostName, String vcId) throws Exception { HostHbm host = getHostHbmDao().load(hostName); if (vcId != null) { ViewComponentHbm startPage = getViewComponentHbmDao().load(Integer.valueOf(vcId)); host.setStartPage(startPage); } else { host.setStartPage(null); } } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#getStartPage(java.lang.String) */ @Override protected String handleGetStartPage(String hostName) throws Exception { HostHbm host = getHostHbmDao().load(hostName); if (host != null && host.getStartPage() != null) { return host.getStartPage().getViewComponentId().toString(); } return ""; } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#getSite4Host(java.lang.String) */ @Override protected String handleGetSite4Host(String hostName) throws Exception { HostHbm host = getHostHbmDao().load(hostName); if (host != null) { try { return host.getSite().getSiteId().toString(); } catch (Exception e) { if (log.isErrorEnabled()) { log.error("Could not get site for host: " + hostName, e); } } } return ""; } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#getHostsForSite(java.lang.Integer) */ @Override protected HostValue[] handleGetHostsForSite(Integer siteId) throws Exception { HostValue[] hostValues = null; if (siteId == null) { hostValues = getHosts(); } else { try { SiteHbm site = getSiteHbmDao().load(siteId); Collection<HostHbm> hosts = site.getHost(); hostValues = new HostValue[hosts.size()]; int i = 0; for (HostHbm h : hosts) { hostValues[i++] = h.getHostValue(); } } catch (Exception e) { if (log.isErrorEnabled()) { log.error("Could not get hosts for site with id: " + siteId, e); } } } return hostValues; } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#removeSite(java.lang.String) */ @Override protected void handleRemoveSite(String hostName) throws Exception { HostHbm host = getHostHbmDao().load(hostName); host.setSite(null); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#removeStartPage(java.lang.String) */ @Override protected void handleRemoveStartPage(String hostName) throws Exception { HostHbm host = getHostHbmDao().load(hostName); host.setStartPage(null); } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#getAllUnassignedHosts() */ @Override protected HostValue[] handleGetAllUnassignedHosts() throws Exception { HostValue[] hostArray = null; try { Collection coll = getHostHbmDao().findAllUnassigned(); hostArray = new HostValue[coll.size()]; Iterator it = coll.iterator(); int i = 0; while (it.hasNext()) { HostHbm hl = (HostHbm) it.next(); hostArray[i++] = hl.getHostValue(); } } catch (Exception exe) { log.error("Error occured", exe); throw new UserException(exe.getMessage()); } return hostArray; } /** * @see de.juwimm.cms.remote.AdministrationServiceSpring#exportXlsPersonData() */ @Override protected InputStream handleExportXlsPersonData() throws Exception { try { if (log.isInfoEnabled()) log.info("exportXlsPersonData " + AuthenticationHelper.getUserName()); File fle = File.createTempFile("XlsPersonData", ".xml.gz"); FileOutputStream fout = new FileOutputStream(fle); PrintStream out = new PrintStream(fout, true, "UTF-8"); UserHbm invoker = getUserHbmDao().load(AuthenticationHelper.getUserName()); SiteHbm site = invoker.getActiveSite(); if (log.isDebugEnabled()) log.debug("Invoker is: " + invoker.getUserId() + " within Site " + site.getName()); // header out.println("Titel,Vorname,Nachname,Adresse,PLZ,Ort,Telefon 1,Telefon 2,Fax,e-Mail,Einrichtung"); Iterator<UnitHbm> it = getUnitHbmDao().findAll(site.getSiteId()).iterator(); while (it.hasNext()) { UnitHbm currentUnit = it.next(); Collection<PersonHbm> persons = getPersonHbmDao().findByUnit(currentUnit.getUnitId()); for (PersonHbm currentPerson : persons) { Iterator<AddressHbm> addressIt = currentPerson.getAddresses().iterator(); boolean hasAddress = false; while (addressIt.hasNext()) { hasAddress = true; AddressHbm currentAddress = addressIt.next(); out.print(currentPerson.getTitle() == null ? "," : currentPerson.getTitle() + ","); out.print(currentPerson.getFirstname() == null ? "," : currentPerson.getFirstname() + ","); out.print(currentPerson.getLastname() == null ? "," : currentPerson.getLastname() + ","); String street = currentAddress.getStreet(); String streetNo = currentAddress.getStreetNr(); if (street == null) street = ""; if (streetNo == null) streetNo = ""; out.print(street + " " + streetNo + ","); out.print(currentAddress.getZipCode() == null ? "," : currentAddress.getZipCode() + ","); out.print(currentAddress.getCity() == null ? "," : currentAddress.getCity() + ","); out.print(currentAddress.getPhone1() == null ? "," : currentAddress.getPhone1() + ","); out.print(currentAddress.getPhone2() == null ? "," : currentAddress.getPhone2() + ","); out.print(currentAddress.getFax() == null ? "," : currentAddress.getFax() + ","); out.print(currentAddress.getEmail() == null ? "," : currentAddress.getEmail() + ","); out.println(currentUnit.getName().trim()); } if (!hasAddress) { out.print(currentPerson.getTitle() == null ? "," : currentPerson.getTitle() + ","); out.print(currentPerson.getFirstname() == null ? "," : currentPerson.getFirstname() + ","); out.print(currentPerson.getLastname() == null ? "," : currentPerson.getLastname() + ",,,,,,,,"); out.println(currentUnit.getName().trim()); } } } if (log.isDebugEnabled()) log.debug("Finished exportXlsPersonData"); out.flush(); out.close(); out = null; return new FileInputStream(fle); } catch (Exception e) { throw new UserException(e.getMessage()); } } @Override protected SiteValue handleGetSite(Integer siteId) throws Exception { SiteHbm site = getSiteHbmDao().load(siteId); if (site != null) { return site.getSiteValue(); } return null; } @Override protected void handleSetRedirectUrl(String hostName, String redirectUrl) throws Exception { if (log.isDebugEnabled()) log.debug("setRedirectUrl host: " + hostName + ", redirectUrl: " + redirectUrl); HostHbm host = null; try { host = getHostHbmDao().load(hostName); if (redirectUrl != null) { host.setRedirectUrl(redirectUrl); } else { host.setRedirectUrl(null); } } catch (Exception e) { throw new UserException("Host \"" + hostName + "\" not found!\n" + e.getMessage()); } } @Override protected void handleSetRedirectHostName(String hostName, String redirectHostName) throws Exception { if (log.isDebugEnabled()) log.debug("setRedirectHostName host: " + hostName + ", redirectHost: " + redirectHostName); HostHbm host = null; try { host = getHostHbmDao().load(hostName); if (redirectHostName != null) { host.setRedirectHostName(getHostHbmDao().load(redirectHostName)); } else { host.setRedirectHostName(null); } } catch (Exception e) { throw new UserException("Host \"" + hostName + "\" or \"" + redirectHostName + "\" not found!\n" + e.getMessage()); } } @Override protected void handleSetLiveServer(String hostname, boolean liveServer) throws Exception { if (log.isDebugEnabled()) log.debug("setLiveServer host: " + hostname); HostHbm host = null; try { host = getHostHbmDao().load(hostname); host.setLiveserver(liveServer); } catch (Exception e) { throw new UserException("Error in setLiveServer" + e.getMessage()); } } @Override protected HostValue handleCreateHost(HostValue hostValue) throws Exception { HostHbm host = new HostHbmImpl(); try { host.setHostName(hostValue.getHostName()); host = this.createHostHbmFromValue(hostValue, host); HostHbmDao hostHbmDao = getHostHbmDao(); host = hostHbmDao.create(host); } catch (Exception e) { throw new UserException("Error at creating host" + e.getMessage()); } return host.getHostValue(); } @Override protected void handleUpdateHost(HostValue hostValue) throws Exception { try { HostHbm hostHbm = null; if (hostValue != null && hostValue.getHostName() != null) { hostHbm = getHostHbmDao().load(hostValue.getHostName()); hostHbm = this.createHostHbmFromValue(hostValue, hostHbm); } getHostHbmDao().update(hostHbm); } catch (Exception e) { throw new UserException("Error at updating host" + e.getMessage()); } } private HostHbm createHostHbmFromValue(HostValue hostValue, HostHbm host) { HostHbm hostHbm = host; hostHbm.setLiveserver(hostValue.getLiveServer()); if (hostValue.getRedirectHostName() != null) { hostHbm.setRedirectHostName(getHostHbmDao().load(hostValue.getRedirectHostName())); } else { hostHbm.setRedirectHostName(null); } hostHbm.setRedirectUrl(hostValue.getRedirectUrl()); if (hostValue.getSiteId() != null) { SiteHbm site = getSiteHbmDao().load(hostValue.getSiteId()); hostHbm.setSite(site); } else { hostHbm.setSite(null); } if (hostValue.getStartPageId() != null) { ViewComponentHbm startPage = getViewComponentHbmDao().load(hostValue.getStartPageId()); hostHbm.setStartPage(startPage); } else { hostHbm.setStartPage(null); } if (hostValue.getUnitId() != null) { UnitHbm unit = getUnitHbmDao().load(hostValue.getUnitId()); hostHbm.setUnit(unit); } else { hostHbm.setUnit(null); } return hostHbm; } }