blob: f360be605bc7da8cb8f5a41ad471b0412ad9ca01 [file] [log] [blame] [raw]
package universalelectricity.api.net;
import java.util.Set;
/**
* A network with connectors only.
*/
public interface INetwork<N extends INetwork, C extends IConnector>
{
public void addConnector(C connector);
public void removeConnector(C connector);
/**
* Gets the set of conductors that make up this network.
*
* @return conductor set
*/
public Set<C> getConnectors();
/**
* Reconstructs the network and all objects within it.
*/
public void reconstruct();
/**
* Creates a new network that makes up the current network and the network defined in the
* parameters. Be sure to refresh the new network inside this method.
*
* @param network - network to merge
* @return The new network instance.
*/
public N merge(N network);
/**
* Splits a network by removing a conductor referenced in the parameter. It will then create and
* refresh the new independent networks possibly created by this operation.
*
* @param connection
*/
public void split(C connection);
/**
* Splits the network between 2 connectors, separating their networks.
*
* @param connectorA
* @param connectorB
*/
public void split(C connectorA, C connectorB);
}