View Javadoc

1   /*
2    * Copyright (C) 2006  Tom Gibara
3    *
4    * This library is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Lesser General Public
6    * License as published by the Free Software Foundation; either
7    * version 2.1 of the License, or (at your option) any later version.
8    *
9    * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   * Lesser General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this library; if not, write to the Free Software
16   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17   */
18  
19  package com.tomgibara.pronto.state.impl;
20  
21  import com.tomgibara.pronto.state.StateActivator;
22  import com.tomgibara.pronto.state.StateEngine;
23  import com.tomgibara.pronto.state.StateFactory;
24  import com.tomgibara.pronto.state.StateGraph;
25  
26  public class StateFactoryImpl extends StateFactory {
27  
28      @SuppressWarnings("unchecked")
29      private static final StateGraphImpl EMPTY_STATE_GRAPH = new StateGraphImpl();
30  
31      @SuppressWarnings("unchecked")
32      @Override
33      public <S, L> StateGraph<S, L> emptyStateGraph() {
34          return EMPTY_STATE_GRAPH;
35      }
36  
37      @Override
38      public <S, L, P> StateEngine<S, L, P> newEngine(final StateGraph<S, L> graph,
39              final StateActivator<S, L, P> activator) {
40          return new StateEngineImpl<S, L, P>(graph, activator);
41      }
42  }