Read from Java beans
/*
* Copyright (c) 2006-2012 North Concepts Inc. All rights reserved.
* Proprietary and Confidential. Use is subject to license terms.
*
* http://northconcepts.com/data-pipeline/licensing/
*
*/
package com.northconcepts.datapipeline.examples.cookbook;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.log4j.Logger;
import com.northconcepts.datapipeline.core.DataEndpoint;
import com.northconcepts.datapipeline.core.Record;
import com.northconcepts.datapipeline.javabean.JavaBeanReader;
public class ReadFromJavaBeans {
public static final Logger log = DataEndpoint.log;
public static void main(String[] args) {
Department department = new Department().setEmployees(new Employee(), new Manager());
JavaBeanReader reader = new JavaBeanReader("department", department);
reader.addField("id", "//id");
reader.addField("firstName", "//firstName");
reader.addField("lastName", "//lastName");
reader.addField("budget", "//budget");
reader.addRecordBreak("//Employee");
reader.addRecordBreak("//Manager");
reader.open();
try {
Record record;
while ((record = reader.read()) != null) {
log.info(record);
}
} finally {
reader.close();
}
}
//============================================
// Employee Bean
//============================================
public static class Employee {
private long id = System.nanoTime();
private String firstName = "FirstName-" + getClass().getSimpleName();
private String lastName = "LastName-" + getClass().getSimpleName();
public long getId() {
return id;
}
public Employee setId(long id) {
this.id = id;
return this;
}
public String getFirstName() {
return firstName;
}
public Employee setFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public String getLastName() {
return lastName;
}
public Employee setLastName(String lastName) {
this.lastName = lastName;
return this;
}
}
//============================================
// Manager Bean
//============================================
public static class Manager extends Employee {
private double budget = 900000.00;
public double getBudget() {
return budget;
}
public Manager setBudget(double budget) {
this.budget = budget;
return this;
}
}
//============================================
// Department Bean
//============================================
public static class Department {
private long deptId;
private Employee[] employees;
private final List<Employee> employeeList = new ArrayList<Employee>();
private final Set<Employee> employeeSet = new HashSet<Employee>();
private final Map<Long,Employee> employeeMap = new HashMap<Long, Employee>();
private int[] deptFloors = {5, 9, 17};
public long getDeptId() {
return deptId;
}
public Department setDeptId(long deptId) {
this.deptId = deptId;
return this;
}
public Employee[] getEmployees() {
return employees;
}
public Department setEmployees(Employee ... employees) {
this.employees = employees;
employeeList.addAll(Arrays.asList(employees));
employeeSet.addAll(Arrays.asList(employees));
for (Employee employee : employees) {
employeeMap.put(employee.getId(), employee);
}
return this;
}
public List<Employee> getEmployeeList() {
return employeeList;
}
public Set<Employee> getEmployeeSet() {
return employeeSet;
}
public Map<Long, Employee> getEmployeeMap() {
return employeeMap;
}
public int[] getDeptFloors() {
return deptFloors;
}
public Department setDeptFloors(int[] deptFloors) {
this.deptFloors = deptFloors;
return this;
}
}
}
back to examples index