Вы находитесь на странице: 1из 11

1.

Definirea claselor în Caché

Cache este un sistem de gestiune a bazelor de date postrelational. Astfel, Cache


este pe de o parte un SGBD relaţional complet. Toate datele stocate în cadrul bazelor
de date Cache sunt disponibile sub forma unor tabele relaţionale, putând fi modificate
şi interogate folosind SQL. Pe de altă parte, Cache dispune de o serie de caracteristici
ce depăşesc limitele unui SGBDR (abilitatea de a modela datele sub forma obiectelor,
posibilitatea de a crea tipuri de date proprii, abilitatea de a beneficia de caracteristicile
unui SGBDOO: moştenire, polimorfism etc.)
O aplicaţie web Cache constă în:
un set de pagini web, care definesc ceea ce utilizatorul vede de fapt;
Pagini web

codul aplicaţiei, care este responsabil cu rezolvarea cererilor utilizatorului, cu


procesarea părţii logice a aplicaţiei, şi cu stocarea şi regăsirea datelor;
Cod
Datele, care sunt stocate pe server şi includ informaţii relativ statice;
Date
Codul se poate scrie direct, de mână, dar de obicei, acesta nu reprezintă
decât o mică fracţiune din totalul codului, cea mai mare parte a codului dintr-o
aplicaţie fiind generat automat, pe baza specificaţiilor programatorului, cu ajutorul
asistenţilor Caché.
Cache permite definirea claselor în două moduri:
• folosind utilitarul Cache Studio;
• utilizând limbajul Class Definition Language (CDL).

 Să se realizeze o aplicaţie în Cache care stochează informaţii despre filmele


care rulează într-un anumit oraş.
Să se definească clasă Film care conţine următoarele proprietăţi:
• titlu;
• descriere;
• numărul de bilete vândute;
• un indicator care să specifice dacă filmul se mai joacă sau nu;
• audienţa filmului;
• lungimea filmului;
• categoria filmului.

Cea mai uşoară metoda de definire a unei clase este cu ajutorul Caché
Studio. Pentru a deschide utilitarul Cache Studio, se selectează opţiunea Studio
alege din meniul Programs/Cache/Studio, după ce în prealabil aplicaţia a fost
deschisă alegând din acelaşi meniu opţiunea Start Cache.

1
Când se deschide Studio, acesta încearcă să se conecteze la ultimul proiect şi
spaţiu de lucru folosit. Pentru a schimba spaţiul de lucru în care s-a lucrat ultima
dată se foloseşte comanda Change Namespace din meniul File.
Caché Studio este o aplicaţie Windows standard, care foloseşte un număr de
ferestre pentru a afişa şi a permite editarea diferitelor aspecte. Principalele
componente ale interfeţei cu utilizatorul ale Caché Studio sunt:
1. editorul de clase/rutine/fişiere CSP;
2. vizualizarea proiectului afişează conţinutul proiectului curent în structură
arborescentă;
3. inspectorul de clasă;
4. fereastra de mesaje.
Definirea unui clase
Pentru a defini o nouă clasă, se alege comanda New din meniul File,
deschizându-se fereastra de dialog Studio's New, din care se alege opţiunea Caché
Class Definition şi se apasă pe butonul OK.

Aceasta va încărca fereastra New Class Wizard, în care trebuie să se atribuie


clasa unui pachet , să îi dea un nume şi, opţional, o descriere a clasei
respective .
Un pachet este doar o modalitate de a grupa clasele care se referă la aceeaşi
aplicaţie. Pentru a crea un nou pachet, nu trebuie decât să se scrie un nume nou în
rubrica corespunzătoare. După aceasta, de fiecare dată când se doreşte utilizarea
acestui pachet, se selectează numele dorit din lista care apare la apăsarea butonului
Browse.

2
În fereastra următoare, programatorul trebuie să indice tipul clasei pe care
doreşte să-o creeze (clasa persistentă, clasa inserabilă, înregistrată, abstractă, tip de
date, clasă CSP sau subclasă). Se alege ca tip clasa persistentă adică acea clasă care
poate fi stocată în baza de date.
Opţional, în cazul tipului de clasă persistent, programatorul poate alege alte
caracteristici pentru clasa definită, cum ar fi numele tabelului corespondent în SQL
sau faptul ca permite realizarea unui document în XML sau că permite popularea
automată cu date.

Definirea proprietăţilor
În acest moment, clasa este definită dar este goală, neavând nici o proprietate
care să definească datele ce vor fi stocate în clasa respectivă.
Adăugarea proprietăţii titlu
Pentru a defini o proprietate se alege din submeniul Add al meniului Class
opţiunea New Property activându-se New Property Wizard. În această fereastră
utilizatorul trebuie să introducă un nume pentru proprietate (Titlu) şi opţional o
descriere a acestei proprietăţi.

3
Fiecare proprietate se caracterizează printr-un tip care specifică ce date se
stochează (numerice, text, dată etc.). Proprietăţile pot fi monovaloare (literali,
referiri la obiecte persistente sau referire la obiecte inserate), vectori, liste, relaţii.
În acest caz, tipul de date este %String , unul din tipurile de date
predefinite în Cahe stocat în pachetul %Library care conţine tipuri de date şi alte
clase furnizate ca parte integrată din Caché.

În fereastra Property Characteristics se selectează opţiunile Required


(pentru a indica faptul că fiecare film are un titlu, proprietatea nu poate fi nulă) şi
Indexed (pentru a crea un index pentru această proprietate).
Un index permite Cache să realizeze căutări pe baza valorilor proprietăţii
indexate. Toate proprietăţile care sunt folosite frecvent la căutări ar trebui indexate,
dar nu trebuie abuzat pentru că fiecare index adaugă un timp suplimentar de lucru
atunci când se adaugă, modifică sau şterge un obiect.

După rularea asistentului New Property Wizard Cache Studio actualizează


conţinutul editorului de clase.

4
Adăugarea proprietăţii descriere
Pentru a adăugă proprietatea Descriere în cadrul clasei se parcurg următorii
paşi:
 se alege opţiunea New Property Wizard din submeniul Add al meniului
Class;
 se introduce numele proprietăţii (Descriere) şi eventual o descriere a
acestei proprietăţi;
 se selectează ca tip de date, tipul %String;
 nu se modifică caracteristicile proprietăţii;
 se introduc în cadrul ferestrei Property Parameters valori pentru
parametrii care au rolul să modifice comportamentul proprietăţii.

Fiecare tip de date defineşte un set de parametrii


care pot fi folosiţi pentru a particulariza proprietatea
respectivă. Între parametrii specifici tipului de date
string se pot specifica:
 CAPTION, numele folosit atunci când se
afişează această proprietate pe web;
 MINLEN şi MANLEN, lungimea minimă
respectiv maximă a valorilor acestei
proprietăţi;
 VALUELIST, lista de valori pentru această
proprietate;

Adăugarea proprietăţii Biletevandute


Proprietatea Biletevandute este de tip %Integer, are un index asociat şi ca
valoare iniţială valoarea 0.
Cache nu accepta semne de punctuaţie în cadrul numelor. În general, acest
lucru nu are importanţă pentru că utilizatorii unei aplicaţii nu văd numele
proprietăţilor.
Se poate fixa valoarea iniţială a acestei proprietăţi folosind două metode:
• se adaugă în cadrul declaraţiei proprietăţii din fereastra editorului de
clase [ InitialExpression = 0 ];
• se foloseşte fereastra Class Inspector.
În cazul în care se alege să se folosească Class Inspector trebuie să se
parcurgă următorii paşi:
• se selectează fereastra Class Inspector, implicit aceasta indică valorile
caracteristicilor clasei Film;
• se alege Property din lista derulantă aflată în partea stângă a ferestrei
Class Inspector;

5
• se selectează proprietatea Biletevandute;
• se introduce valoarea 0 în dreptul caracteristicii InitialExpression;
• se dă click în cadrul editorului şi astfel definiţia clasei va fi actualizată.

Adăugarea proprietăţii Difuzare


Proprietatea Difuzare este de tip %Boolean şi are ca valoare iniţială valoarea
1.
După definirea acestei proprietăţi editorul de clase arată astfel:

6
Clasa Film conţine 4 proprietăţi: Titlu, Descriere, Biletevandute şi Difuzare.

Compilarea clasei
Compilarea clasei Film se realizează prin selectarea comenzii Compile din
meniul Build sau alegând butonul Compile din bara de lucru.
Fereastra de mesaje oferă câteva idei asupra a ceea ce se întâmplă în timpul
compilării:

În primul rând, definiţia clasei este procesată; dacă conţine erori, fereastra de
mesaje oferă câteva informaţii despre natura acestora.
În al doilea rând, Caché crează automat un tabel corespunzător definiţiei,
făcând posibil imediat accesul SQL la datele clasei.
În al treilea rând, Caché creează o rutină şi un descriptor, care reprezintă
forma compilată a definiţiei şi unul dintre „secretele” ce stau în spatele
performanţei deosebite a aplicaţiilor Caché.

Metode
Pe lângă proprietăţi, o clasă poate să conţină şi cod. Codul corespunzător
unei clase poartă numele de metodă, ceea ce, în alte limbaje de programare, ar
corespunde aproximativ unei funcţii sau subrutine. Când o clasă este compilată,
Caché creează automat câteva metode pentru aceasta, cum ar fi, de exemplu,
metoda %Save, care salvează un obiect în baza de date.

Adăugarea unor proprietăţi suplimentare


Adăugarea proprietăţii Rata
Proprietatea Rata este o proprietate de tip %String
şi se caracterizează prin faptul că are un set de valori
limitate: Mare, Medie şi Mica. Cache impune această
restricţie prin intermediul parametrului VALUELIST al
ferestrei Property Parameters.
Atunci când se introduc valorile trebuie să se
folosească un delimitator. Se poate utiliza orice delimitator
singura condiţie este ca acesta să fie primul caracter
introdus.
Adăugarea proprietăţii Lungime

7
Proprietatea Lungime indică numărul de minute al unui film.
Pentru a stoca valoarea acestei proprietăţi in format numeric (format logic) şi
a o afişa in forma unui şir de caractere specificând numărul de ore şi de minute
(format de afişare) despre să se rescrie o metodă LogicalToDisplay().

În acest scop se pot utiliza două metode:


 se poate crea proprietatea Lungime de tip %Integer şi rescrie metoda
LogicalToDisplay;
 se poate crea un tip de date nou Durata care să ofere funcţionalitatea
dorită.

Definirea Duratei (definirea unei clase tip de dată)


O clasă poate fi definită în două moduri, fie se creează de la
zero, fie moşteneşte caracteristicile unei clase deja existente.

În acest caz, clasa copil (subclasa) Durata moşteneşte


caracteristicile clasei părinte (superclasa) Integer. Durata va fi
asemănătoare cu clasa Integer cu o singură excepţie legată de
metoda LogicalToDisplay

Pentru a defini clasa Durata se efectuează următoarele


etape:
 se alege opţiunea New din meniul File, iar in fereastra care se deschide se
introduce numele clasei şi opţional descrierea corespunzătoare acesteia;
 se selectează din fereastra Class Type opţiunea Extend pentru a specifica
faptul că se bazează pe tipul de date Integer (se poate selecta Datatype şi
specifica, ulterior, numele superclasei);

8
 se suprascrie metoda moştenită de la superclasa %Integer alegând din
meniul Class opţiunea Override, deschizându-se astfel fereastra
Override Wizard for School.Durata;

 se selectează metoda LogicalToDisplay şi se introduce în editorul de


clasă următorul cod:

O data creată clasă Durata se revine in clasa Film şi se adaugă proprietatea


Lungime al cărei tip este School.Durata.

9
Adăugarea proprietăţii categorie
Pentru a adăuga proprietatea Categorie se poate crea o proprietate în cadrul
clasei Film de tip %String care să stocheze informaţii despre genul filmului. Dăcă
vrem, însă, să modificăm aceste valori ar trebui să le căutăm şi să le modificăm pe
fiecare în parte.

O strategie alternativă constă în stocarea acestor categorii într-o clasă


diferită. După aceea, obiectele clasei Film se referă la obiectele corespunzătoare ale
clasei Categoriefilme.
Se poate observa ca fiecare obiect al clasei Film se referă la un obiect al
clasei Categoriefilme prin intermediul identificatorului unic de obiecte (OID). De
exemplu, obiectul drama are un OID egal cu 104 prin intermediul căruia două
obiecte din clasa Film se referă la obiectul corespunzător din clasa Categoriefilme.
OID nu este o dată reală, nu este o proprietate pe care proiectanţii să o
definească sau să o fixeze direct. Cache îi atribuie o valoare unică ori de câte ori se
creează un nou obiect.
Pentru a realiza acest lucru se parcurg următoarele etape:
 se creează clasa Categoriefilme alegând din meniul File opţiunea New,
urmată de Cache Class Definition;
 se precizează numele clasei, pachetul din care face parte şi opţional o
descriere a acestei clase;
 se alege tipul clasei;

10
 se adaugă proprietatea Nume de tip %String;
 se salvează şi se compilează clasa Categoriefilme;
 se adaugă în cadrul clasei Film proprietatea Categorie al cărei tip este
clasa Categoriefilme.

11

Вам также может понравиться