package org.archstudio.myxgen.eclipse;
import org.archstudio.myx.fw.IMyxBrick;
import org.archstudio.myx.fw.IMyxBrickDescription;
import org.archstudio.myx.fw.IMyxBrickFactory;
import org.archstudio.myx.fw.IMyxBrickInitializationData;
import org.archstudio.myx.fw.IMyxName;
import org.archstudio.myx.fw.MyxBrickCreationException;
import org.archstudio.myx.osgi.MyxOSGiBrickFactory;
import org.archstudio.myxgen.MyxGenBrick;
import org.archstudio.myxgen.eclipse.extension.MyxGenExtensions;
public class MyxGenBrickFactory extends MyxOSGiBrickFactory implements IMyxBrickFactory {
public MyxGenBrickFactory() {
}
@Override
public IMyxBrick create(IMyxName name, IMyxBrickDescription brickDescription,
IMyxBrickInitializationData initializationData) throws MyxBrickCreationException {
MyxGenBrickDescription desc = (MyxGenBrickDescription) brickDescription;
String brickID = desc.getMyxGenBrickID();
MyxGenBrick brickExtension = MyxGenExtensions.getExtenalMyxGenBrick(brickID);
if (brickExtension == null) {
throw new MyxBrickCreationException("Can't find myxgen brick of " + brickID);
}
return create(name, brickDescription, initializationData, brickExtension.getContributor().getName(),
brickExtension.getClassName());
}
}