in plugins/openldap.config.editor/src/main/java/org/apache/directory/studio/openldap/config/editor/wrappers/TimeLimitWrapper.java [162:332]
private static boolean parseLimit( TimeLimitWrapper tlw, String limitStr )
{
int pos = 0;
// The timelimit always starts with a "time"
if ( limitStr.startsWith( "time" ) )
{
pos += 4;
// A global or hard/soft ?
if ( limitStr.startsWith( "=", pos ) )
{
// Global : get the limit
pos++;
if ( limitStr.startsWith( UNLIMITED_STR, pos ) )
{
pos += 9;
tlw.globalLimit = UNLIMITED;
}
else if ( limitStr.startsWith( NONE_STR, pos ) )
{
pos += 4;
tlw.globalLimit = UNLIMITED;
}
else
{
String integer = getInteger( limitStr, pos );
if ( integer != null )
{
pos += integer.length();
try
{
Integer value = Integer.valueOf( integer );
if ( value > UNLIMITED )
{
tlw.globalLimit = value;
}
else
{
return false;
}
}
catch ( NumberFormatException nfe )
{
return false;
}
}
else
{
return false;
}
}
}
else if ( limitStr.startsWith( ".hard=", pos ) )
{
// Hard limit : get the hard limit
pos += 6;
if ( limitStr.startsWith( UNLIMITED_STR, pos ) )
{
pos += 9;
tlw.hardLimit = UNLIMITED;
}
else if ( limitStr.startsWith( NONE_STR, pos ) )
{
pos += 4;
tlw.hardLimit = UNLIMITED;
}
else if ( limitStr.startsWith( SOFT_STR, pos ) )
{
pos += 4;
tlw.globalLimit = HARD_SOFT;
}
else
{
String integer = getInteger( limitStr, pos );
if ( integer != null )
{
pos += integer.length();
try
{
Integer value = Integer.valueOf( integer );
if ( value >= UNLIMITED )
{
tlw.hardLimit = value;
}
}
catch ( NumberFormatException nfe )
{
return false;
}
}
else
{
return false;
}
}
}
else if ( limitStr.startsWith( ".soft=", pos ) )
{
// Soft limit : get the limit
pos += 6;
if ( limitStr.startsWith( UNLIMITED_STR, pos ) )
{
pos += 9;
tlw.softLimit = UNLIMITED;
}
else if ( limitStr.startsWith( NONE_STR, pos ) )
{
pos += 4;
tlw.softLimit = UNLIMITED;
}
else
{
String integer = getInteger( limitStr, pos );
if ( integer != null )
{
pos += integer.length();
try
{
Integer value = Integer.valueOf( integer );
if ( value > UNLIMITED )
{
tlw.softLimit = value;
}
else
{
return false;
}
}
catch ( NumberFormatException nfe )
{
return false;
}
}
else
{
return false;
}
}
}
else
{
// This is wrong
return false;
}
}
else
{
// This is wrong
return false;
}
// last check : the pos should be equal to the limitStr length
return ( pos == limitStr.length() );
}