All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.sarasvati.mem.MemTokenSet Maven / Gradle / Ivy

The newest version!
/*
    This file is part of Sarasvati.

    Sarasvati is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    Sarasvati is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with Sarasvati.  If not, see .

    Copyright 2009 Paul Lorenz
*/

package com.googlecode.sarasvati.mem;

import java.util.HashSet;
import java.util.Set;

import com.googlecode.sarasvati.ArcToken;
import com.googlecode.sarasvati.Engine;
import com.googlecode.sarasvati.GraphProcess;
import com.googlecode.sarasvati.NodeToken;
import com.googlecode.sarasvati.TokenSet;
import com.googlecode.sarasvati.env.Env;
import com.googlecode.sarasvati.env.TokenSetMemberEnv;
import com.googlecode.sarasvati.impl.MapEnv;

public class MemTokenSet implements TokenSet
{
  private final GraphProcess process;
  private final String name;
  private final int maxMemberIndex;
  private final int level;

  private Set activeArcTokens = new HashSet();
  private Set activeNodeTokens = new HashSet();

  private Env env = new MapEnv();
  private TokenSetMemberEnv memberEnv;

  public MemTokenSet (final GraphProcess process,
                      final String name,
                      final int maxMemberIndex,
                      final int level)
  {
    this.process = process;
    this.name = name;
    this.maxMemberIndex = maxMemberIndex;
    this.level = level;
  }

  @Override
  public String getName ()
  {
    return name;
  }

  @Override
  public GraphProcess getProcess ()
  {
    return process;
  }

  @Override
  public Set getActiveArcTokens (final Engine engine)
  {
    return activeArcTokens;
  }

  @Override
  public Set getActiveNodeTokens (final Engine engine)
  {
    return activeNodeTokens;
  }

  @Override
  public int getMaxMemberIndex()
  {
    return maxMemberIndex;
  }

  /**
   * @return the level
   */
  @Override
  public int getLevel()
  {
    return level;
  }

  @Override
  public Env getEnv ()
  {
    return env;
  }

  @Override
  public TokenSetMemberEnv getMemberEnv ()
  {
    if ( memberEnv == null )
    {
      memberEnv = new MemTokenSetMemberEnv( this );
    }
    return memberEnv;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy