/**
* 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.components.remote;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Vector;
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.AddressHbmImpl;
import de.juwimm.cms.components.model.DepartmentHbm;
import de.juwimm.cms.components.model.DepartmentHbmImpl;
import de.juwimm.cms.components.model.PersonHbm;
import de.juwimm.cms.components.model.PersonHbmImpl;
import de.juwimm.cms.components.model.TalktimeHbm;
import de.juwimm.cms.components.model.TalktimeHbmImpl;
import de.juwimm.cms.components.vo.AddressValue;
import de.juwimm.cms.components.vo.DepartmentValue;
import de.juwimm.cms.components.vo.PersonValue;
import de.juwimm.cms.components.vo.TalktimeValue;
import de.juwimm.cms.exceptions.UserException;
import de.juwimm.cms.model.UnitHbm;
import de.juwimm.cms.remote.helper.AuthenticationHelper;
import de.juwimm.cms.vo.UnitValue;
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring
* @author <a href="mailto:carsten.schalm@juwimm.com">Carsten Schalm</a> ,
* Juwi|MacMillan Group Gmbh, Walsrode, Germany
* @version $Id: ComponentsServiceSpringImpl.java 26864 2008-04-29 14:21:24Z
* greivej $
*/
public class ComponentsServiceSpringImpl extends ComponentsServiceSpringBase {
private static Log log = LogFactory.getLog(ComponentsServiceSpringImpl.class);
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getPerson(java.lang.Long)
*/
@Override
protected PersonValue handleGetPerson(Long personId) throws Exception {
PersonHbm person = getPersonHbmDao().load(personId);
if (person != null) {
return person.getDao(1);
}
return null;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpringBase#handleGetPersonByExternalId(java.lang.String)
*/
@Override
protected PersonValue handleGetPersonByExternalId(String personId) throws Exception {
PersonHbm person = getPersonHbmDao().findByExternalId(personId);
return person.getDao(1);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getPerson4Name(java.lang.String,
* java.lang.String)
*/
@Override
protected PersonValue[] handleGetPerson4Name(String firstName, String lastName) throws Exception {
PersonValue[] personValues = new PersonValue[0];
try {
UserHbm user = getUserHbmDao().load(AuthenticationHelper.getUserName());
Collection<PersonHbm> temp = getPersonHbmDao().findByName(user.getActiveSite().getSiteId(), firstName, lastName);
Iterator<PersonHbm> it = temp.iterator();
Vector<PersonValue> vec = new Vector<PersonValue>();
while (it.hasNext()) {
vec.add(it.next().getDao(0));
}
personValues = vec.toArray(new PersonValue[0]);
} catch (Exception e) {
log.error("Could not get persons by name (" + firstName + " " + lastName + "): " + e.getMessage(), e);
}
return personValues;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getUnits4Name(java.lang.String)
*/
@Override
protected UnitValue[] handleGetUnits4Name(String name) throws Exception {
try {
Vector<UnitValue> vec = new Vector<UnitValue>();
UserHbm user = getUserHbmDao().load(AuthenticationHelper.getUserName());
Iterator it = getUnitHbmDao().findByName(user.getActiveSite().getSiteId(), name).iterator();
while (it.hasNext()) {
UnitHbm unit = (UnitHbm) it.next();
vec.addElement(getUnitHbmDao().getDao(unit));
}
return vec.toArray(new UnitValue[0]);
} catch (Exception e) {
throw new UserException(e.getMessage());
}
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getUnit(java.lang.Integer)
*/
@Override
protected UnitValue handleGetUnit(Integer unitId) throws Exception {
UnitHbm unit = getUnitHbmDao().load(unitId);
if (unit != null) {
return getUnitHbmDao().getDao(unit);
}
return null;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getDepartments4Name(java.lang.String)
*/
@Override
protected DepartmentValue[] handleGetDepartments4Name(String name) throws Exception {
UserHbm user = null;
Iterator<DepartmentHbm> it = null;
try {
user = getUserHbmDao().load(AuthenticationHelper.getUserName());
it = getDepartmentHbmDao().findByName(user.getActiveSite().getSiteId(), name).iterator();
} catch (Exception e) {
throw new UserException(e.getMessage());
}
Vector<DepartmentValue> vec = new Vector<DepartmentValue>();
while (it.hasNext()) {
vec.addElement(it.next().getDao(0));
}
return vec.toArray(new DepartmentValue[0]);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getDepartment(java.lang.Long)
*/
@Override
protected DepartmentValue handleGetDepartment(Long departmentId) throws Exception {
DepartmentHbm department = getDepartmentHbmDao().load(departmentId);
if (department != null) {
return department.getDao(-1);
}
return null;
}
private PersonHbm createPersonHbmFromValue(PersonValue value) {
PersonHbm personHbm = null;
if (value != null) {
if (value.getPersonId() != null) {
personHbm = getPersonHbmDao().load(value.getPersonId());
} else {
personHbm = new PersonHbmImpl();
}
personHbm.setBirthDay(value.getBirthDay());
personHbm.setCountryJob(value.getCountryJob());
if (value.getDepartmentId() != null) {
HashSet<DepartmentHbm> departments = new HashSet<DepartmentHbm>();
departments.add(getDepartmentHbmDao().load(value.getDepartmentId()));
personHbm.setDepartments(departments);
}
if (value.getUnitId() != null) {
personHbm.getUnits().add(getUnitHbmDao().load(value.getUnitId().intValue()));
}
personHbm.setFirstname(value.getFirstname());
personHbm.setImageId(value.getImageId());
personHbm.setJob(value.getJob());
personHbm.setJobTitle(value.getJobTitle());
personHbm.setLastname(value.getLastname());
personHbm.setLinkMedicalAssociation(value.getLinkMedicalAssociation());
personHbm.setMedicalAssociation(value.getMedicalAssociation());
personHbm.setPosition(value.getPosition());
personHbm.setSalutation(value.getSalutation());
personHbm.setSex(value.getSex());
personHbm.setTitle(value.getTitle());
}
return personHbm;
}
private AddressHbm createAddressHbmFromValue(AddressValue value) {
AddressHbm address = null;
if (value != null) {
if (value.getAddressId() != null) {
address = getAddressHbmDao().load(value.getAddressId());
} else {
address = new AddressHbmImpl();
}
address.setAddressType(value.getAddressType());
address.setBuildingLevel(value.getBuildingLevel());
address.setBuildingNr(value.getBuildingNr());
address.setCity(value.getCity());
address.setCountry(value.getCountry());
address.setCountryCode(value.getCountryCode());
address.setEmail(value.getEmail());
address.setFax(value.getFax());
address.setHomepage(value.getHomepage());
address.setMisc(value.getMisc());
address.setMobilePhone(value.getMobilePhone());
address.setPhone1(value.getPhone1());
address.setPhone2(value.getPhone2());
address.setPostOfficeBox(value.getPostOfficeBox());
address.setRoomNr(value.getRoomNr());
address.setStreet(value.getStreet());
address.setStreetNr(value.getStreetNr());
address.setZipCode(value.getZipCode());
}
return address;
}
private DepartmentHbm createDepartmentHbmFromValue(DepartmentValue value) {
DepartmentHbm department = null;
if (value != null) {
if (value.getDepartmentId() != null) {
department = getDepartmentHbmDao().load(value.getDepartmentId());
} else {
department = new DepartmentHbmImpl();
}
department.setName(value.getName());
}
return department;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#createPerson(de.juwimm.cms.components.vo.PersonValue)
*/
@Override
protected Long handleCreatePerson(PersonValue value) throws Exception {
PersonHbm personHbm = this.createPersonHbmFromValue(value);
personHbm = getPersonHbmDao().create(personHbm);
return personHbm.getPersonId();
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#createAddress(de.juwimm.cms.components.vo.AddressValue)
*/
@Override
protected Long handleCreateAddress(AddressValue value) throws Exception {
AddressHbm address = this.createAddressHbmFromValue(value);
address = getAddressHbmDao().create(address);
return address.getAddressId();
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#createDepartment(java.lang.String,
* java.lang.Integer)
*/
@Override
protected Long handleCreateDepartment(String name, Integer unitId) throws Exception {
DepartmentHbm department = new DepartmentHbmImpl();
department.setName(name);
department.setUnit(getUnitHbmDao().load(unitId));
department = getDepartmentHbmDao().create(department);
return department.getDepartmentId();
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#addAddress2Person(java.lang.Long,
* java.lang.Long)
*/
@Override
protected void handleAddAddress2Person(Long personId, Long addressId) throws Exception {
PersonHbm person = getPersonHbmDao().load(personId);
AddressHbm address = getAddressHbmDao().load(addressId);
person.addAddress(address);
getPersonHbmDao().update(person);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#addAddress2Department(java.lang.Long,
* java.lang.Long)
*/
@Override
protected void handleAddAddress2Department(Long departmentId, Long addressId) throws Exception {
DepartmentHbm department = getDepartmentHbmDao().load(departmentId);
AddressHbm address = getAddressHbmDao().load(addressId);
department.addAddress(address);
getDepartmentHbmDao().update(department);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#addAddress2Unit(java.lang.Integer,
* java.lang.Long)
*/
@SuppressWarnings("unchecked")
@Override
protected void handleAddAddress2Unit(Integer unitId, Long addressId) throws Exception {
UnitHbm unit = getUnitHbmDao().load(unitId);
AddressHbm address = getAddressHbmDao().load(addressId);
unit.getAddresses().add(address);
getUnitHbmDao().update(unit);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#removePerson(java.lang.Long)
*/
@Override
protected void handleRemovePerson(Long personId) throws Exception {
getPersonHbmDao().remove(personId);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#createTalktime(java.lang.String,
* java.lang.String)
*/
@Override
protected Long handleCreateTalktime(String talkTimeType, String talkTimes) throws Exception {
TalktimeHbm talktime = TalktimeHbm.Factory.newInstance();
talktime.setTalkTimeType(talkTimeType);
talktime.setTalkTimes(talkTimes);
talktime = getTalktimeHbmDao().create(talktime);
return talktime.getTalkTimeId();
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#addTalktime2Person(java.lang.Long,
* java.lang.String, java.lang.String)
*/
@Override
protected Long handleAddTalktime2Person(Long personId, String talkTimeType, String talkTimes) throws Exception {
TalktimeHbm talktime = new TalktimeHbmImpl();
talktime.setTalkTimes(talkTimes);
talktime.setTalkTimeType(talkTimeType);
talktime = getTalktimeHbmDao().create(talktime);
PersonHbm person = getPersonHbmDao().load(personId);
person.addTalktime(talktime);
getPersonHbmDao().update(person);
return talktime.getTalkTimeId();
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#addTalktime2Unit(java.lang.Integer,
* java.lang.String, java.lang.String)
*/
@Override
protected Long handleAddTalktime2Unit(Integer unitId, String talkTimeType, String talkTimes) throws Exception {
TalktimeHbm talktime = new TalktimeHbmImpl();
talktime.setTalkTimes(talkTimes);
talktime.setTalkTimeType(talkTimeType);
talktime = getTalktimeHbmDao().create(talktime);
UnitHbm unit = getUnitHbmDao().load(unitId);
talktime.setUnit(unit);
getUnitHbmDao().update(unit);
getTalktimeHbmDao().update(talktime);
return talktime.getTalkTimeId();
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#addTalktime2Department(java.lang.Long,
* java.lang.String, java.lang.String)
*/
@Override
protected Long handleAddTalktime2Department(Long departmentId, String talkTimeType, String talkTimes) throws Exception {
TalktimeHbm talktime = new TalktimeHbmImpl();
talktime.setTalkTimes(talkTimes);
talktime.setTalkTimeType(talkTimeType);
talktime = getTalktimeHbmDao().create(talktime);
DepartmentHbm department = getDepartmentHbmDao().load(departmentId);
department.addTalktime(talktime);
getDepartmentHbmDao().update(department);
return talktime.getTalkTimeId();
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#removeTalktime(java.lang.Long)
*/
@Override
protected void handleRemoveTalktime(Long talktimeId) throws Exception {
getTalktimeHbmDao().remove(talktimeId);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#removeUnit(java.lang.Integer)
*/
@Override
protected void handleRemoveUnit(Integer unitId) throws Exception {
getUnitHbmDao().remove(unitId);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#removeDepartment(java.lang.Long)
*/
@Override
protected void handleRemoveDepartment(Long departmentId) throws Exception {
getDepartmentHbmDao().remove(departmentId);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#removeAddress(java.lang.Long)
*/
@Override
protected void handleRemoveAddress(Long addressId) throws Exception {
getAddressHbmDao().remove(addressId);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getDepartments4Unit(java.lang.Integer)
*/
@Override
protected DepartmentValue[] handleGetDepartments4Unit(Integer unitId) throws Exception {
UnitHbm unit = getUnitHbmDao().load(unitId);
Collection<DepartmentHbm> departments = unit.getDepartments();
DepartmentValue[] departmentValues = new DepartmentValue[departments.size()];
int i = 0;
for (DepartmentHbm department : departments) {
departmentValues[i++] = department.getDao(-1);
}
return departmentValues;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getPersons4Unit(java.lang.Integer)
*/
@SuppressWarnings("unchecked")
@Override
protected PersonValue[] handleGetPersons4Unit(Integer unitId) throws Exception {
Collection<PersonHbm> persons = getPersonHbmDao().findByUnit(unitId);
PersonValue[] personValues = new PersonValue[persons.size()];
int i = 0;
for (PersonHbm person : persons) {
personValues[i++] = person.getDao(-1);
}
return personValues;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getPersons4Department(java.lang.Long)
*/
@Override
protected PersonValue[] handleGetPersons4Department(Long departmentId) throws Exception {
DepartmentHbm department = getDepartmentHbmDao().load(departmentId);
Collection<PersonHbm> persons = department.getPersons();
PersonValue[] personValues = new PersonValue[persons.size()];
int i = 0;
for (PersonHbm person : persons) {
personValues[i++] = person.getDao(-1);
}
return personValues;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getTalktimes4Person(java.lang.Long)
*/
@Override
protected TalktimeValue[] handleGetTalktimes4Person(Long personId) throws Exception {
PersonHbm person = getPersonHbmDao().load(personId);
Collection<TalktimeHbm> talktimes = person.getTalktimes();
TalktimeValue[] talktimeValues = new TalktimeValue[talktimes.size()];
int i = 0;
for (TalktimeHbm talktime : talktimes) {
talktimeValues[i++] = talktime.getData();
}
return talktimeValues;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getTalktimes4Department(java.lang.Long)
*/
@SuppressWarnings("unchecked")
@Override
protected TalktimeValue[] handleGetTalktimes4Department(Long departmentId) throws Exception {
DepartmentHbm department = getDepartmentHbmDao().load(departmentId);
Collection<TalktimeHbm> talktimes = department.getTalktimes();
TalktimeValue[] talktimeValues = new TalktimeValue[talktimes.size()];
int i = 0;
for (TalktimeHbm talktime : talktimes) {
talktimeValues[i++] = talktime.getData();
}
return talktimeValues;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getTalktimes4Unit(java.lang.Integer)
*/
@SuppressWarnings("unchecked")
@Override
protected TalktimeValue[] handleGetTalktimes4Unit(Integer unitId) throws Exception {
Collection<TalktimeHbm> talktimes = getTalktimeHbmDao().findByUnit(unitId);
TalktimeValue[] talktimeValues = new TalktimeValue[talktimes.size()];
int i = 0;
for (TalktimeHbm talktime : talktimes) {
talktimeValues[i++] = talktime.getData();
}
return talktimeValues;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getTalktime(java.lang.Long)
*/
@Override
protected TalktimeValue handleGetTalktime(Long talktimeId) throws Exception {
TalktimeHbm talktime = getTalktimeHbmDao().load(talktimeId);
if (talktime != null) {
return talktime.getData();
}
return null;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#getAddress(java.lang.Long)
*/
@Override
protected AddressValue handleGetAddress(Long addressId) throws Exception {
AddressHbm address = getAddressHbmDao().load(addressId);
if (address != null) {
return address.getData();
}
return null;
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#updatePerson(de.juwimm.cms.components.vo.PersonValue)
*/
@Override
protected void handleUpdatePerson(PersonValue personValue) throws Exception {
PersonHbm personHbm = this.createPersonHbmFromValue(personValue);
getPersonHbmDao().update(personHbm);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#updateDepartment(de.juwimm.cms.components.vo.DepartmentValue)
*/
@Override
protected void handleUpdateDepartment(DepartmentValue departmentValue) throws Exception {
DepartmentHbm department = this.createDepartmentHbmFromValue(departmentValue);
getDepartmentHbmDao().update(department);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#updateTalktime(de.juwimm.cms.components.vo.TalktimeValue)
*/
@Override
protected void handleUpdateTalktime(TalktimeValue talktimeValue) throws Exception {
TalktimeHbm talktime = null;
if (talktimeValue.getTalkTimeId() != null) {
talktime = getTalktimeHbmDao().load(talktimeValue.getTalkTimeId());
} else {
talktime = new TalktimeHbmImpl();
}
talktime.setTalkTimes(talktimeValue.getTalkTimes());
talktime.setTalkTimeType(talktimeValue.getTalkTimeType());
getTalktimeHbmDao().update(talktime);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#updateAddressData(de.juwimm.cms.components.vo.AddressValue)
*/
@Override
protected void handleUpdateAddressData(AddressValue addressValue) throws Exception {
AddressHbm address = this.createAddressHbmFromValue(addressValue);
getAddressHbmDao().update(address);
}
/**
* @see de.juwimm.cms.components.remote.ComponentsServiceSpring#setPicture4Person(java.lang.Long,
* java.lang.Integer)
*/
@Override
protected void handleSetPicture4Person(Long personId, Integer pictureId) throws Exception {
PersonHbm person = getPersonHbmDao().load(personId);
person.setImageId(pictureId);
getPersonHbmDao().update(person);
}
@Override
protected long handleCreateTalkTime(String talkTimes, String talkTimeType) throws Exception {
long id = getTalktimeHbmDao().create(talkTimeType, talkTimes);
return id;
}
}