@Override
	public Object getEntry( String key, ConfigurationType type,
			Object defaultValue ) {

		if ( useDefaultValues )
			return defaultValue;

		// Wenn die Konfigurationsdatei noch nicht geladen wurde, wird
		// eine Exception geworfen.
		if ( values == null )
			throw new ConfigurationNotLoadedException();

		String value = values.get( key );

		if ( value == null ) {
			// Wert existiert nicht in der HashMap
			return defaultValue;
		}
		else {

			if ( type == null )
				return value;

			Object result = cast( value, type );

			if ( result == null ) {
				// Semantischer Fehler: Typen stimmen nicht �berein.
				Logger.getInstance().log(
						LogLevel.WARNING,
						LOG_NAME,
						"Semantic error in configuration file: \"" + key
								+ "\" must have the type " + type + "." );
				return defaultValue;
			}
			else {

				return result;
			}
		}
	}