private void parse_require( String line,
				String keyword,
				String[] split,
				int lineNumber,
				boolean strictMode ) 
	throws ParseException {
	
	// Line has the format:
	// "Require" {"Group"|"User"} [UserList|GroupList]
	if( split.length < 2 ) {
	    throw new ParseException( "Invalid '"+keyword+"' declaration at line " + lineNumber + ". Expected at least 1 argument, found " + (split.length-1) + ". Line=" + line,
				      lineNumber );
	}
	
	String affects = split[1];

	if( affects.equalsIgnoreCase("User") ) {

	    addToList( this.requiredUsers, split, 2 );

	} else if( affects.equalsIgnoreCase("Group") ) {

	    addToList( this.requiredGroups, split, 2 );

	} else if( affects.equalsIgnoreCase("valid-user") ) {

	    this.requiresValidUser = true;

	} else {

	    throw new ParseException( "Unknown '"+keyword+"' declaration argument at line " + lineNumber + ": " + affects + " (expected 'Group' or 'User'). Line=" + line,
				      lineNumber );

	}
    }