Package anvil.brain

Source Code of anvil.brain.SynapseImpl

/*
* $Id: SynapseImpl.java,v 1.2 2002/09/16 08:05:02 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.brain;

import java.util.Enumeration;
import java.util.ArrayList;
import anvil.java.util.Hashlist;
import anvil.script.Namespace;
import anvil.java.util.BindingEnumeration;
import anvil.core.Any;
import anvil.server.OperationFailedException;

/**
* class SynapseImpl
*
* @author: Jani Lehtim�ki
*/
public class SynapseImpl
{

  protected Synapse _facade;
  protected Brain _brain;
  protected long _id;
  protected String _name;
  protected String _type;
  protected boolean _changed = false;
  protected Hashlist _variables = new Hashlist();
  protected Hashlist _dimensions = new Hashlist();

  public SynapseImpl(Brain brain, long id, String type, String name)
  {
    _brain = brain;
    _id = id;
    _name = name;
    _type = type;
  }


  public Synapse getFacade()
  {
    return _facade;
  }


  public void setFacade(Synapse facade)
  {
    _facade = facade;
  }


  public boolean isChanged()
  {
    return _changed;
  }
 

  public Brain getBrain()
  {
    return _brain;
  }


  public long getId()
  {
    return _id;
  }


  public String getType()
  {
    return _type;
  }
 
 
  public String getName()
  {
    return _name;
  }
 

  public void setType(String type)
  {
    _type = type;
    _changed = true;
  }
 
 
  public void setName(String name)
  {
    _name = name;
    _changed = true;
  }
 

  public BindingEnumeration getVariables()
  {
    return _variables.keysAndElements();
  }


  public Any getVariable(String name)
  {
    Any value = (Any)_variables.get(name);
    return value != null ? value : Any.UNDEFINED;
  }


  public Any setVariable(String name, Any value)
  {
    _variables.put(name, value);
    _changed = true;
    return value;
  }
 
 
  public Any checkVariable(String name)
  {
    return getVariable(name);
  }
 

  public boolean deleteVariable(String name)
  {
    if (_variables.remove(name) != null) {
      _changed = true;
      return true;
    } else {
      return false;
    }
  }
 

  public Enumeration getDimensions()
  {
    return _dimensions.elements();
  }


  public Dimension getDimension(String name)
  {
    return (Dimension)_dimensions.get(name);
  }


  public synchronized Dimension getOrCreateDimension(String name)
  {
    Dimension dim = (Dimension)_dimensions.get(name);
    if (dim == null) {
      dim = new Dimension(this, name, true);
      _dimensions.put(name, dim);
      _changed = true;
    }
    return dim;
  }


  public synchronized Dimension createDimension(String name)
  {
    Dimension dim = new Dimension(this, name, true);
    _dimensions.put(name, dim);
    _changed = true;
    return dim;
  }




  void addDimension(Dimension dimension)
  {
    _dimensions.put(dimension.getName(), dimension);
    _changed = true;
  }
 

  public synchronized Dimension removeDimension(String name)
  {
    Dimension dimension = (Dimension)_dimensions.remove(name);
    if (dimension != null) {
      _changed = true;
    }
    return dimension;
  }
 

  public synchronized void remove()
  {
    _variables.clear();
    Enumeration e = _dimensions.elements();
    while(e.hasMoreElements()) {
      Dimension dim = (Dimension)e.nextElement();
      dim.remove();
    }
  }
 
 
  public synchronized void commit() throws OperationFailedException
  {
    try {
      _brain.save(this);
      _changed = false;
    } catch (Throwable t) {
      throw new OperationFailedException(t);
    }
  }
}

/*

*/ 
TOP

Related Classes of anvil.brain.SynapseImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.