Package com.cburch.logisim.comp

Source Code of com.cburch.logisim.comp.AbstractComponent

/* Copyright (c) 2010, Carl Burch. License information is located in the
* com.cburch.logisim.Main source code and at www.cburch.com/logisim/. */

package com.cburch.logisim.comp;

import java.awt.Graphics;
import java.util.List;

import com.cburch.logisim.circuit.CircuitState;
import com.cburch.logisim.data.Bounds;
import com.cburch.logisim.data.Location;

public abstract class AbstractComponent implements Component {
  protected AbstractComponent() { }

  //
  // basic information methods
  //
  public abstract ComponentFactory getFactory();

  //
  // location/extent methods
  //
  public abstract Location getLocation();

  public abstract Bounds getBounds();

  public Bounds getBounds(Graphics g) { return getBounds(); }

  public boolean contains(Location pt) {
    Bounds bds = getBounds();
    if (bds == null) return false;
    return bds.contains(pt, 1);
  }

  public boolean contains(Location pt, Graphics g) {
    Bounds bds = getBounds(g);
    if (bds == null) return false;
    return bds.contains(pt, 1);
  }

  //
  // propagation methods
  //
  public abstract List<EndData> getEnds();

  public EndData getEnd(int index) {
    return getEnds().get(index);
  }

  public boolean endsAt(Location pt) {
    for (EndData data : getEnds()) {
      if (data.getLocation().equals(pt)) return true;
    }
    return false;
  }

  public abstract void propagate(CircuitState state);
}
TOP

Related Classes of com.cburch.logisim.comp.AbstractComponent

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.