in ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/DsaQualitySyntaxSyntaxChecker.java [102:261]
public boolean isValidSyntax( Object value )
{
String strValue;
if ( value == null )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, "null" ) );
}
return false;
}
if ( value instanceof String )
{
strValue = ( String ) value;
}
else if ( value instanceof byte[] )
{
strValue = Strings.utf8ToString( ( byte[] ) value );
}
else
{
strValue = value.toString();
}
if ( strValue.length() < 7 )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
String remaining;
switch ( strValue.charAt( 0 ) )
{
case 'B':
if ( !strValue.startsWith( "BEST-EFFORT" ) )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
remaining = strValue.substring( "BEST-EFFORT".length() );
break;
case 'D':
if ( !strValue.startsWith( "DEFUNCT" ) )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
remaining = strValue.substring( "DEFUNCT".length() );
break;
case 'E':
if ( !strValue.startsWith( "EXPERIMENTAL" ) )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
remaining = strValue.substring( "EXPERIMENTAL".length() );
break;
case 'F':
if ( !strValue.startsWith( "FULL-SERVICE" ) )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
remaining = strValue.substring( "FULL-SERVICE".length() );
break;
case 'P':
if ( !strValue.startsWith( "PILOT-SERVICE" ) )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
remaining = strValue.substring( "PILOT-SERVICE".length() );
break;
default:
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
// Now, we might have a description separated from the keyword by a '#'
// but this is optional
if ( remaining.length() == 0 )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.msg( I18n.MSG_13701_SYNTAX_VALID, value ) );
}
return true;
}
if ( remaining.charAt( 0 ) != '#' )
{
// We were expecting a '#'
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
// Check that the description is a PrintableString
boolean result = Strings.isPrintableString( remaining.substring( 1 ) );
if ( LOG.isDebugEnabled() )
{
if ( result )
{
LOG.debug( I18n.msg( I18n.MSG_13701_SYNTAX_VALID, value ) );
}
else
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
}
return result;
}