View Javadoc

    1   /*
    2    *  Licensed to the Apache Software Foundation (ASF) under one
    3    *  or more contributor license agreements.  See the NOTICE file
    4    *  distributed with this work for additional information
    5    *  regarding copyright ownership.  The ASF licenses this file
    6    *  to you under the Apache License, Version 2.0 (the
    7    *  "License"); you may not use this file except in compliance
    8    *  with the License.  You may obtain a copy of the License at
    9    *
    10   *    http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   *  Unless required by applicable law or agreed to in writing,
    13   *  software distributed under the License is distributed on an
    14   *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    15   *  KIND, either express or implied.  See the License for the
    16   *  specific language governing permissions and limitations
    17   *  under the License.
    18   *
    19   */
    20  package org.apache.mina.statemachine.context;
    21
    22  /**
    23   * {@link StateContextLookup} implementation which always returns the same
    24   * {@link StateContext} instance.
    25   *
    26   * @author <a href="http://mina.apache.org">Apache MINA Project</a>
    27   */
    28  public class SingletonStateContextLookup implements StateContextLookup {
    29      private final StateContext context;
    30
    31      /**
    32       * Creates a new instance which always returns the same
    33       * {@link DefaultStateContext} instance.
    34       */
    35      public SingletonStateContextLookup() {
    36          context = new DefaultStateContext();
    37      }
    38
    39      /**
    40       * Creates a new instance which uses the specified {@link StateContextFactory}
    41       * to create the single instance.
    42       *
    43       * @param contextFactory the {@link StateContextFactory} to use to create
    44       *        the singleton instance.
    45       */
    46      public SingletonStateContextLookup(StateContextFactory contextFactory) {
    47          if (contextFactory == null) {
    48              throw new IllegalArgumentException("contextFactory");
    49          }
    50          context = contextFactory.create();
    51      }
    52
    53      public StateContext lookup(Object[] eventArgs) {
    54          return context;
    55      }
    56  }