in ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/TelexNumberSyntaxChecker.java [99:255]
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() == 0 )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
// Search for the first '$' separator
int dollar = strValue.indexOf( '$' );
// We must have one, and not on first position
if ( dollar <= 0 )
{
// No '$' => error
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
String actualNumber = strValue.substring( 0, dollar );
// The actualNumber must not be empty
if ( actualNumber.length() == 0 )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
// The actual number should be a PrintableString
if ( !Strings.isPrintableString( actualNumber ) )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
// Search for the second separator
int dollar2 = strValue.indexOf( '$', dollar + 1 );
// We must have one
if ( dollar2 == -1 )
{
// No '$' => error
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
String countryCode = strValue.substring( dollar + 1, dollar2 );
// The countryCode must not be empty
if ( countryCode.length() == 0 )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
// The country Code should be a PrintableString
if ( !Strings.isPrintableString( countryCode ) )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
// Now, check for the answerBack
if ( dollar2 + 1 == strValue.length() )
{
// The last string should not be null
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
String answerBack = strValue.substring( dollar2 + 1 );
// The answerBack should be a PrintableString
if ( !Strings.isPrintableString( answerBack ) )
{
if ( LOG.isDebugEnabled() )
{
LOG.debug( I18n.err( I18n.ERR_13210_SYNTAX_INVALID, value ) );
}
return false;
}
// Check that the mailboxType is a PrintableString
boolean result = Strings.isPrintableString( answerBack );
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;
}