10.4. Interfészek

A rendszerhez a megfelelő interfészek implementálásával új modulok, szűrők és loginmodulok fejleszthetőek. Egy további megkötés, hogy az új osztályoknak regisztrálniuk kell magukat a megfelelő Manager osztályba, amelyek nyilvántartják az elérhető modulokat, szűrőket és loginmodulokat.

A szűrők interfésze és az eddig bemutatott szűrők a 12. ábrán láthatóak, az egyes szűrőkhöz szükséges beállításokat hordozó mezőkkel együtt.

12. ábra: A szűrőket tartalmazó osztálydiagram
12. ábra: A szűrőket tartalmazó osztálydiagram

A run metódus a szűrő futtatására szolgál, míg a getName metódussal lekérdezhető név a webes felületen való megjelenítéshez szükséges. A SessionIdFilter tárolja az oldalon megjelenő linkekben elhelyezett munkamenet-azonosító paraméterének nevét, a StripFilter pedig a kiszűrendő szövegrész elejét és végét azonosító karaktersorozatokat. A HashFilter nem rendelkezik egyedi beállításokkal, az osztályra csak a kivonat elkészítésének feladata hárul.

A modulok a 13. ábrán láthatóak. A run és a getName metódusok szerepe megegyezik a szűrőknél ismertetettel. Az interfész kiegészül még egy isValidUrl metódussal is, amely false-t ad vissza, ha az adott UserURL-lel (illetve az ahhoz tartozó webszervertől lekért tartalommal) az adott modul nem használható. Például nincs Last‑Modified fejléc a LastModifiedHeader modulhoz stb. Ez részben egységes hibajelzésre használható, másrészt ezáltal megoldható, hogy a rendszer fel se ajánlja egy‑egy weboldalhoz a nem használható modulokat.

13. ábra: A rendszer moduljait bemutató osztálydiagram
13. ábra: A rendszer moduljait bemutató osztálydiagram

A ParseLinks és a LastmodHeader modulhoz nincs szükség egyedi beállítások tárolására, míg a RegExpModule a reguláris kifejezést, a DiffLinesModule pedig az értesítéshez szükséges megváltozott sorok minimális számát tárolja.

14. ábra: A loginmodulok osztálydiagramja
14. ábra: A loginmodulok osztálydiagramja

A loginmodulokat ábrázoló osztálydiagram a 14. ábrán láthatóak. Az előző két ábra kapcsán említett getName metódus itt is szerepel, a run helyét pedig a login metódus veszi át. A getLoginHash metódus egy ellenőrzőösszeget számít a modul beállításaiból (például a felhasználónevet, jelszót és a modul nevét felhasználva), ami az alwaysRefresh mező kapcsán említett módon használható fel (10.2. fejezet).

Említésre méltó még a CustomForm modulhoz tartozó cachedSessionCookie tranziens mező, amely a bejelentkezéskor visszakapott cookie‑t tárolja. Így a beágyazott tartalmak figyelésekor nem szükséges minden kép letöltése előtt bejelentkezni, csupán a cookie‑t tartalmazó HTTP fejlécet kell a kéréssel elküldeni.

Tartalom átvétel