// Path: app/models/HistoricalEvent.java
// @Entity
// public class HistoricalEvent extends AbstractModel
// {
//     @Column(nullable = false)
//     public Date creationDate;
// 
//     @Column(nullable = false)
//     public String category;
// 
//     @Column(length = 1000,
//             nullable = false)
//     public String message;
// 
//     public static final Finder<Long, HistoricalEvent> FIND = new Finder<Long, HistoricalEvent>(Long.class,
//                                                                                                HistoricalEvent.class);
// 
//     public static List<HistoricalEvent> findMostRecent(int count)
//     {
//         return FIND.where().orderBy("creationDate DESC").setMaxRows(count).findList();
//     }
// }
// 
// Path: app/utils/IOUtils.java
// public class IOUtils
// {
//     private IOUtils()
//     {
//         // no-op
//     }
// 
//     public static void close(Closeable closeable)
//     {
//         if (closeable != null)
//         {
//             try
//             {
//                 closeable.close();
//             }
//             catch (IOException e)
//             {
//                 Logger.error("Unable to close",
//                              e);
//             }
//         }
//     }
// }


import akka.actor.UntypedActor;
import com.sun.syndication.feed.synd.SyndContent;
import com.sun.syndication.feed.synd.SyndContentImpl;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndEntryImpl;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.feed.synd.SyndFeedImpl;
import com.sun.syndication.io.FeedException;
import com.sun.syndication.io.SyndFeedOutput;
import models.HistoricalEvent;
import play.Logger;
import play.Play;
import utils.IOUtils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/*
 * Copyright 2012 The Play! Framework
 *
 * 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.
 */
package actors;



/**
 * @author Steve Chaloner (steve@objectify.be)
 */
public class FeedCreationActor extends UntypedActor
{
    public final Map<String, String> feedDetails = new LinkedHashMap<String, String>();

    public FeedCreationActor()
    {
        feedDetails.put("atom_1.0",
                        "atom");
        feedDetails.put("rss_1.0",
                        "rss1");
        feedDetails.put("rss_2.0",
                        "rss2");
    }

    @Override
    public void onReceive(Object o) throws Exception
    {
// Path: app/models/HistoricalEvent.java
// @Entity
// public class HistoricalEvent extends AbstractModel
// {
//     @Column(nullable = false)
//     public Date creationDate;
// 
//     @Column(nullable = false)
//     public String category;
// 
//     @Column(length = 1000,
//             nullable = false)
//     public String message;
// 
//     public static final Finder<Long, HistoricalEvent> FIND = new Finder<Long, HistoricalEvent>(Long.class,
//                                                                                                HistoricalEvent.class);
// 
//     public static List<HistoricalEvent> findMostRecent(int count)
//     {
//         return FIND.where().orderBy("creationDate DESC").setMaxRows(count).findList();
//     }
// }
// 
// Path: app/utils/IOUtils.java
// public class IOUtils
// {
//     private IOUtils()
//     {
//         // no-op
//     }
// 
//     public static void close(Closeable closeable)
//     {
//         if (closeable != null)
//         {
//             try
//             {
//                 closeable.close();
//             }
//             catch (IOException e)
//             {
//                 Logger.error("Unable to close",
//                              e);
//             }
//         }
//     }
// }


// Path: app/actors/FeedCreationActor.java
import akka.actor.UntypedActor;
import com.sun.syndication.feed.synd.SyndContent;
import com.sun.syndication.feed.synd.SyndContentImpl;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndEntryImpl;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.feed.synd.SyndFeedImpl;
import com.sun.syndication.io.FeedException;
import com.sun.syndication.io.SyndFeedOutput;
import models.HistoricalEvent;
import play.Logger;
import play.Play;
import utils.IOUtils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/*
 * Copyright 2012 The Play! Framework
 *
 * 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.
 */
package actors;



/**
 * @author Steve Chaloner (steve@objectify.be)
 */
public class FeedCreationActor extends UntypedActor
{
    public final Map<String, String> feedDetails = new LinkedHashMap<String, String>();

    public FeedCreationActor()
    {
        feedDetails.put("atom_1.0",
                        "atom");
        feedDetails.put("rss_1.0",
                        "rss1");
        feedDetails.put("rss_2.0",
                        "rss2");
    }

    @Override
    public void onReceive(Object o) throws Exception
    {
        List<HistoricalEvent> historicalEvents = HistoricalEvent.findMostRecent(10);