// Propagate attributes from parent component, if any.
verified.add(component);
if (null != component.getBaseClass()) {
try {
// Step one, lookup for parent.
ComponentModel parentComponent = findParent(library.getComponents(), component);
component.setParent(parentComponent);
if (null == component.getFamily()) {
component.setFamily(parentComponent.getFamily());
}
// To be sure what all properties for parent component were propagated.
verifyComponentAttributes(library, parentComponent, verified);
for (PropertyBase parentAttribute : parentComponent.getAttributes()) {
PropertyBase attribute = component.getOrCreateAttribute(parentAttribute.getName());
attribute.merge(parentAttribute);
// already exists in parent component.
attribute.setGenerate(false);
}