/*****************************************************************************
* Copyright (c) 2006-2013, Cloudsmith Inc.
* The code, documentation and other materials contained herein have been
* licensed under the Eclipse Public License - v 1.0 by the copyright holder
* listed above, as the Initial Contributor under such license. The text of
* such license is available at www.eclipse.org.
*****************************************************************************/
package org.eclipse.buckminster.core.cspec.builder;
import java.util.Collections;
import java.util.List;
import org.eclipse.buckminster.core.common.model.Documentation;
import org.eclipse.buckminster.core.cspec.IAttribute;
import org.eclipse.buckminster.core.cspec.IPrerequisite;
import org.eclipse.buckminster.core.cspec.model.Attribute;
import org.eclipse.buckminster.osgi.filter.Filter;
import org.eclipse.core.runtime.IPath;
/**
* @author Thomas Hallgren
*/
public class AttributeBuilder extends CSpecElementBuilder implements IAttribute {
private Documentation documentation;
private Filter filter = null;
AttributeBuilder(CSpecBuilder cspecBuilder) {
super(cspecBuilder);
}
@Override
public void clear() {
super.clear();
documentation = null;
filter = null;
}
public Attribute createAttribute() {
return new Attribute(this);
}
@Override
public AttributeBuilder getAttributeBuilder(CSpecBuilder specBuilder) {
return specBuilder == getCSpecBuilder() ? this : new AttributeBuilder(specBuilder);
}
@Override
public Documentation getDocumentation() {
return documentation;
}
@Override
public Filter getFilter() {
return filter;
}
public IPath getPrerequisiteRebase() {
return null;
}
@Override
public List<? extends IPrerequisite> getPrerequisites() {
return Collections.emptyList();
}
@Override
public String getQualifiedName() {
return getCSpecBuilder().getComponentIdentifier().toString() + '#' + getName();
}
public void initFrom(IAttribute attribute) {
super.initFrom(attribute.getName());
documentation = attribute.getDocumentation();
filter = attribute.getFilter();
}
@Override
public boolean isPublic() {
return true;
}
public void setDocumentation(Documentation documentation) {
this.documentation = documentation;
}
public void setFilter(Filter filter) {
this.filter = filter;
}
}