package org.springframework.roo.classpath.details;
import org.apache.commons.lang3.Validate;
import org.springframework.roo.model.AbstractCustomDataAccessorProvider;
import org.springframework.roo.model.CustomData;
/**
* Abstract class for {@link IdentifiableJavaStructure} subclasses.
*
* @author Ben Alex
* @since 1.1
*/
public abstract class AbstractIdentifiableJavaStructureProvider extends
AbstractCustomDataAccessorProvider implements IdentifiableJavaStructure {
private final String declaredByMetadataId;
private final int modifier;
/**
* Constructor
*
* @param customData
* @param declaredByMetadataId
* @param modifier
*/
protected AbstractIdentifiableJavaStructureProvider(final CustomData customData,
final String declaredByMetadataId, final int modifier) {
super(customData);
Validate.notBlank(declaredByMetadataId, "Declared by metadata ID required");
this.declaredByMetadataId = declaredByMetadataId;
this.modifier = modifier;
}
public final String getDeclaredByMetadataId() {
return declaredByMetadataId;
}
public final int getModifier() {
return modifier;
}
}