Commit 83d4ed59 by Tuukka Kivilahti

test data generation

1 parent 7b1373fa
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.view;
import fi.insomnia.bortal.facade.EventFacade;
import fi.insomnia.bortal.facade.EventMapFacade;
import fi.insomnia.bortal.facade.PlaceFacade;
import fi.insomnia.bortal.model.Event;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.Place;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
/**
*
* @author tuukka
*/
@ManagedBean(name = "TestDataView")
@RequestScoped
public class TestDataView {
public static final String TEST_MAP_IMAGE_NAME = "testmap.png";
@EJB
private EventMapFacade eventMapFacade;
@EJB
private EventFacade eventFacade;
private PlaceFacade placeFacade;
public void generateData() {
Event event = generateMetaData();
EventMap map = generateTestMap(event);
generateTestPlaces(map);
}
private EventMap generateTestMap(Event event) {
try {
EventMap map = new EventMap();
map.setEvent(event);
InputStream stream = getClass().getResourceAsStream(TEST_MAP_IMAGE_NAME);
File file = new File(getClass().getResource(TEST_MAP_IMAGE_NAME).toURI());
long length = file.length();
// Create the byte array to hold the data
byte[] bytes = new byte[(int) length];
// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset < bytes.length
&& (numRead = stream.read(bytes, offset, bytes.length - offset)) >= 0) {
offset += numRead;
}
// Ensure all the bytes have been read in
if (offset < bytes.length) {
throw new IOException("Could not completely read file " + file.getName());
}
stream.close();
map.setMapData(bytes);
eventMapFacade.create(map);
return map;
} catch (URISyntaxException ex) {
Logger.getLogger(TestDataView.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(TestDataView.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
/**
* Generate all metashit, ex. events.
*/
private Event generateMetaData() {
Event event = new Event();
event.setName("testEvent");
eventFacade.create(event);
return event;
}
private void generateTestPlaces(EventMap map) {
for (int x = 5; x < 400; x += 50) {
for (int y = 5; y < 150; y += 50) {
Place place = new Place();
place.setMap(map);
place.setMapX(x);
place.setMapY(y);
placeFacade.create(place);
}
}
}
/** Creates a new instance of TestDataView */
public TestDataView() {
}
/**
* @return the eventMapFacade
*/
public EventMapFacade getEventMapFacade() {
return eventMapFacade;
}
/**
* @param eventMapFacade the eventMapFacade to set
*/
public void setEventMapFacade(EventMapFacade eventMapFacade) {
this.eventMapFacade = eventMapFacade;
}
/**
* @return the eventFacade
*/
public EventFacade getEventFacade() {
return eventFacade;
}
/**
* @param eventFacade the eventFacade to set
*/
public void setEventFacade(EventFacade eventFacade) {
this.eventFacade = eventFacade;
}
/**
* @return the placeFacade
*/
public PlaceFacade getPlaceFacade() {
return placeFacade;
}
/**
* @param placeFacade the placeFacade to set
*/
public void setPlaceFacade(PlaceFacade placeFacade) {
this.placeFacade = placeFacade;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!