001    /**
002     * Copyright 2004-2013 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.hr.time.scheduler;
017    
018    import java.io.BufferedWriter;
019    import java.io.FileNotFoundException;
020    import java.io.FileOutputStream;
021    import java.io.FileWriter;
022    import java.util.Collection;
023    import java.util.Iterator;
024    
025    import org.kuali.hr.time.timeblock.TimeBlock;
026    import org.kuali.rice.krad.service.KRADServiceLocator;
027    
028    import com.thoughtworks.xstream.XStream;
029    import com.thoughtworks.xstream.io.xml.DomDriver;
030    
031    /**
032     * A temporary Service class to serialize the Object into XML file
033     *
034     */
035    public class TimeBlockSerializerService {
036        /**
037         * This method will read all the timeBlock objects from DB and will
038         * serialize it to ObjData.xml file in user home folder
039         *
040         * @throws FileNotFoundException
041         */
042        public void serializeToXML() throws FileNotFoundException {
043            // Fetching data using BO service
044            Collection timeBlocks = KRADServiceLocator.getBusinessObjectService()
045                    .findAll(TimeBlock.class);
046            Iterator<TimeBlock> itr = timeBlocks.iterator();
047            while (itr.hasNext()) {
048                TimeBlock timeBlockObj = itr.next();
049                XStream xs = new XStream(new DomDriver());
050                FileOutputStream fos;
051                // writting it to file temporarily 'temp.xml' file will be created
052                // in user home directory
053                fos = new FileOutputStream(System.getProperty("user.home")
054                        + "\\TimeBlockData.xml", true);
055                xs.toXML(timeBlockObj, fos);
056            }
057    
058        }
059    
060        public void serializeToCSV() throws FileNotFoundException {
061            // Fetching data using BO service
062            Collection timeBlocks = KRADServiceLocator.getBusinessObjectService()
063                    .findAll(TimeBlock.class);
064            Iterator<TimeBlock> itr = timeBlocks.iterator();
065            while (itr.hasNext()) {
066    
067                TimeBlock timeBlockObj = itr.next();
068                try {
069                    // Create file
070                    FileWriter fstream = new FileWriter(System.getProperty("user.home")
071                            + "\\TimeBlockData.csv", true);
072                    BufferedWriter out = new BufferedWriter(fstream);
073                    out.write(timeBlockObj.toCSVString());
074                    // Close the output BufferedWriter
075                    out.close();
076                } catch (Exception e) {// Catch exception if any
077                    e.printStackTrace();
078                }
079            }
080    
081        }
082    
083    }