package org.springframework.roo.addon.jpa.addon.dod;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.springframework.roo.classpath.details.FieldMetadata;
import org.springframework.roo.model.JavaSymbolName;
/**
* Holder for embedded id attributes
*
* @author Alan Stewart
* @author Greg Turnquist
* @since 1.1.3
*/
public class EmbeddedIdHolder {
private final FieldMetadata embeddedIdField;
private final List<FieldMetadata> idFields;
public EmbeddedIdHolder(final FieldMetadata embeddedIdField, final List<FieldMetadata> idFields) {
Validate.notNull(embeddedIdField, "Identifier type required");
Validate.notNull(idFields, "Fields for %s required", embeddedIdField.getFieldType()
.getFullyQualifiedTypeName());
this.embeddedIdField = embeddedIdField;
this.idFields = idFields;
}
public FieldMetadata getEmbeddedIdField() {
return embeddedIdField;
}
public JavaSymbolName getEmbeddedIdMutator() {
return new JavaSymbolName("set"
+ StringUtils.capitalize(embeddedIdField.getFieldName().getSymbolName()));
}
public List<FieldMetadata> getIdFields() {
return idFields;
}
}