package org.archstudio.myx.fw;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Properties;
public interface IMyxRuntime {
public static final List<IMyxName> EMPTY_NAME_LIST = Collections.emptyList();
public void addBrickLoader(IMyxName loaderName, Class<? extends IMyxBrickLoader> brickLoaderClass,
Properties initParams) throws MyxBrickLoaderException;
public void removeBrickLoader(IMyxName loaderName);
public Collection<? extends IMyxName> getBrickLoaderNames();
public void addBrick(List<? extends IMyxName> path, IMyxName brickName, IMyxBrickDescription brickDescription,
IMyxBrickInitializationData initializationData) throws MyxBrickLoadException, MyxBrickCreationException;
public void removeBrick(List<? extends IMyxName> path, IMyxName brickName);
public Collection<? extends IMyxName> getAllBrickNames(List<? extends IMyxName> path);
public IMyxBrickDescription getBrickDescription(List<? extends IMyxName> path, IMyxName brickName);
public void addInterface(List<? extends IMyxName> path, IMyxName brickName, IMyxName interfaceName,
IMyxInterfaceDescription interfaceDescription, EMyxInterfaceDirection interfaceDirection);
public void addContainerInterface(List<? extends IMyxName> path, IMyxName brickName, IMyxName interfaceName,
IMyxInterfaceDescription interfaceDescription, EMyxInterfaceDirection interfaceDirection,
IMyxName internalBrickName, IMyxName internalBrickInterfaceName);
public void removeInterface(List<? extends IMyxName> path, IMyxName brickName, IMyxName interfaceName);
public Collection<? extends IMyxName> getAllInterfaceNames(List<? extends IMyxName> path, IMyxName brickName);
public IMyxInterfaceDescription getInterfaceDescription(List<? extends IMyxName> path, IMyxName brickName,
IMyxName interfaceName);
public EMyxInterfaceDirection getInterfaceDirection(List<? extends IMyxName> path, IMyxName brickName,
IMyxName interfaceName);
public void init(List<? extends IMyxName> path, IMyxName brickName);
public void begin(List<? extends IMyxName> path, IMyxName brickName);
public void end(List<? extends IMyxName> path, IMyxName brickName);
public void destroy(List<? extends IMyxName> path, IMyxName brickName);
public IMyxWeld createWeld(List<? extends IMyxName> requiredPath, IMyxName requiredBrickName,
IMyxName requiredInterfaceName, List<? extends IMyxName> providedPath, IMyxName providedBrickName,
IMyxName providedInterfaceName);
public void addWeld(IMyxWeld weld);
public void removeWeld(IMyxWeld weld);
public Collection<? extends IMyxWeld> getAllWelds();
}