package org.bundlemaker.core.internal.analysis.virtual;
import org.bundlemaker.core.analysis.IAnalysisModelVisitor;
import org.bundlemaker.core.analysis.IBundleMakerArtifact;
import org.bundlemaker.core.analysis.IModuleArtifact;
import org.bundlemaker.core.resource.IModule;
import org.bundlemaker.core.spi.analysis.AbstractArtifactContainer;
/**
* <p>
* </p>
*
* @author Gerd Wütherich (gerd@gerd-wuetherich.de)
*/
public class VirtualModule2IArtifact extends AbstractArtifactContainer implements IModuleArtifact {
/** - */
private String _fullyQualifiedName;
/**
* <p>
* Creates a new instance of type {@link VirtualModule2IArtifact}.
* </p>
*
* @param name
* @param fullyQualifiedName
* @param parent
*/
public VirtualModule2IArtifact(String name, String fullyQualifiedName, IBundleMakerArtifact parent) {
super(name);
_fullyQualifiedName = fullyQualifiedName;
// set parent/children dependency
setParent(parent);
((AbstractArtifactContainer) parent).getModifiableChildrenCollection().add(this);
}
@Override
public boolean isVirtual() {
return true;
}
@Override
public void setNameAndVersion(String name, String version) {
super.setName(name);
}
@Override
public boolean isMovable() {
return true;
}
/**
* {@inheritDoc}
*/
@Override
public IModule getAssociatedModule() {
return null;
}
@Override
public boolean isResourceModule() {
return false;
}
/**
* {@inheritDoc}
*/
@Override
public final String getQualifiedName() {
return _fullyQualifiedName;
}
@Override
public String getModuleName() {
return _fullyQualifiedName;
}
@Override
public String getModuleVersion() {
return "0.0.0";
}
@Override
protected String getArtifactType() {
return "virtualmodule";
}
@Override
public String handleCanAdd(IBundleMakerArtifact artifact) {
return "Can not artifacts to virtual modules.";
}
@Override
protected void onRemoveArtifact(IBundleMakerArtifact artifact) {
throw new UnsupportedOperationException("onRemoveArtifact");
}
/**
* {@inheritDoc}
*/
@Override
public void accept(IAnalysisModelVisitor visitor) {
//
if (visitor.visit(this)) {
//
for (IBundleMakerArtifact artifact : getChildren()) {
((IBundleMakerArtifact) artifact).accept(visitor);
}
}
}
}