package org.richfaces.cdk.model;
import java.io.Serializable;
import java.util.Collection;
import com.google.common.collect.Lists;
/**
* <p class="changed_added_4_0">
* Base class for the most JSF components taht have description attributes and support extensions in faces-config.
* </p>
*
* @author asmirnov@exadel.com
*
*/
public class ModelElementBase extends BeanModelBase implements GeneratedFacesComponent, ViewElement, Serializable {
private FacesId id;
private ClassName targetClass;
private ClassName baseClass;
private final ModelCollection<TagModel> tags = ModelSet.<TagModel>create();
private final Collection<ClassName> interfaces = Lists.newArrayList();
/**
* <p class="changed_added_4_0">
* Is that bean property generate in the class or should be generated ?
* </p>
*/
private Boolean generate;
/*
* (non-Javadoc)
*
* @see org.richfaces.cdk.model.ViewElement#getTags()
*/
@Override
public ModelCollection<TagModel> getTags() {
return this.tags;
}
/**
* <p class="changed_added_4_0">
* </p>
*
* @return the interfaces
*/
public Collection<ClassName> getInterfaces() {
return this.interfaces;
}
/*
* (non-Javadoc)
*
* @see org.richfaces.cdk.model.GeneratedFacesComponent#getId()
*/
public FacesId getId() {
return id;
}
/*
* (non-Javadoc)
*
* @see org.richfaces.cdk.model.GeneratedFacesComponent#setId(org.richfaces.cdk.model.FacesId)
*/
public void setId(FacesId id) {
this.id = id;
}
/*
* (non-Javadoc)
*
* @see org.richfaces.cdk.model.GeneratedFacesComponent#setTargetClass(org.richfaces.cdk.model.ClassName)
*/
public void setTargetClass(ClassName targetClass) {
this.targetClass = targetClass;
}
/*
* (non-Javadoc)
*
* @see org.richfaces.cdk.model.GeneratedFacesComponent#getTargetClass()
*/
public ClassName getTargetClass() {
return targetClass;
}
/**
* <p class="changed_added_4_0">
* </p>
*
* @param baseClass the baseClass to set
*/
@Override
public void setBaseClass(ClassName baseClass) {
this.baseClass = baseClass;
}
/*
* (non-Javadoc)
*
* @see org.richfaces.cdk.model.GeneratedFacesComponent#getBaseClass()
*/
public ClassName getBaseClass() {
return baseClass;
}
@Merge
public Boolean getGenerate() {
return generate;
}
public void setGenerate(Boolean generate) {
this.generate = generate;
}
}