/*
* Licensed to Jasig under one or more contributor license
* agreements. See the NOTICE file distributed with this work
* for additional information regarding copyright ownership.
* Jasig licenses this file to you 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.
*/
package edu.wisc.hr.demo;
import edu.wisc.hr.dao.person.ContactInfoDao;
import edu.wisc.hr.demo.support.RandomAddressGenerator;
import edu.wisc.hr.demo.support.RandomJobGenerator;
import edu.wisc.hr.demo.support.RandomNameGenerator;
import edu.wisc.hr.dm.person.Job;
import edu.wisc.hr.dm.person.PersonInformation;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
/**
* Random implementation of the contact info DAO API.
* This is a DAO in that it remembers the random contact information it generates, in-memory.
*/
@Repository
public class RandomContactInfoDao
implements ContactInfoDao {
/**
* Map from employee ID to PersonInformation.
*/
private Map emplIdToPersonInformation = new HashMap<String, PersonInformation>();
private static RandomNameGenerator RANDOM_NAME_GENERATOR = new RandomNameGenerator();
private static RandomJobGenerator RANDOM_JOB_GENERATOR = new RandomJobGenerator();
private static RandomAddressGenerator RANDOM_ADDRESS_GENERATOR = new RandomAddressGenerator();
private Random random = new Random();
@Override
public PersonInformation getPersonalData(String emplId) {
if (this.emplIdToPersonInformation.containsKey(emplId)) {
return (PersonInformation) this.emplIdToPersonInformation.get(emplId);
}
PersonInformation personInformation = new PersonInformation();
personInformation.setName(RANDOM_NAME_GENERATOR.randomName(emplId));
personInformation.setEmail( emplId.concat("@entropy.edu") );
Job primaryJob = RANDOM_JOB_GENERATOR.randomJob();
personInformation.setPrimaryJob( primaryJob );
personInformation.setHomeAddress( RANDOM_ADDRESS_GENERATOR.randomHomeAddress() );
String department = primaryJob.getDepartmentName();
personInformation.setOfficeAddress( RANDOM_ADDRESS_GENERATOR.randomOfficeAddress(department) );
personInformation.setMadisonEmpl( random.nextBoolean() );
personInformation.setOnVisa( random.nextBoolean() );
this.emplIdToPersonInformation.put(emplId, personInformation);
return personInformation;
}
}