this.propertyName = propertyName;
this.baseProperty = baseProperty;
try
{
final Type typeAnnotation = getAnnotation( Type.class );
if( typeAnnotation == null )
{
if( this instanceof ValueProperty )
{
this.typeClass = String.class;
}
else
{
final String message
= "Property \"" + propertyName + "\" of " + this.modelElementType.getModelElementClass().getClass()
+ " is missing the required Type annotation.";
throw new IllegalStateException( message );
}
}
else
{
this.typeClass = typeAnnotation.base();
}
}
catch( RuntimeException e )
{
Sapphire.service( LoggingService.class ).log( e );