Mơ hình mt workspace ca mt repository

Một phần của tài liệu xay dung cms module cho he thong intranet cua cong ty tma-lu (Trang 72 - 76)

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

Trong bi u đ trên, root có 3 node con là a,b và c. M i node con có nhi u node con hay nhi u Property, ch ng h n node a có 2 con là d và e, node e có 2 property là j và k, Property j ch a m t hình nh và Property k ch a m t s th c.

B t k item nào trong c u trúc trên đ u có th đ c xác đnh b ng m t đ ng d n tuy t đ i. Ví d đ ng d n / ch đ n root, đ ng d n /a/d/i ch đ n 1 Property có giá tr là true. ng d n tuy t đ i luôn b t đ u v i / .

ng d n t ng đ i ch ra m t node hay m t property t m t node đã đ c xác đ nh tr c. Ví d : v i node /a trong bi u đ trên thì đ ng d n t ng đ i đ n property v i giá tr true là d/i, đ n property có giá tr -25 là ../c/h.

3. M t s API c b n

Toàn b Repository đ c đ i di n b i m t đ i t ng Repository. M t Client k t n i t i m t Repository b ng cách cung c p m t đ i t ng Credentials và xác đnh m t Workspace c th bên trong m t Repository. N u Credentials đ c thơng qua thì Client có th truy c p đ n m t Workspace đã xác đnh, sau đó Client s nh n m t Ticket.

Ví d :

// L y đ i t ng Repository

Repository repository = (Repository)java.rmi.Naming.lookup("MyRepo");

// L y đ i t ng Credentials

Credentials credentials = new SimpleCredentials("MyName", "MyPassword".toCharArray());

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

// L y m t Ticket

Ticket myTicket = repository.login(credentials, "MyWorkspace");

V i đ i t ng Ticket, Client có th truy c p đ n b t k m t Node hay Property nào trong cây c a Workspace đang truy c p :

// L y Node Root

Node root = myTicket.getRootNode();

// L y m t Node b t k v i đ ng d n tuy t đ i Node myNode = root.getNode("a/e");

// L y m t Property c a myNode

Property myProperty = myNode.getProperty("k");

// L y ra giá tr c a m t Property

Value myValue = m Poperty.getValue();

// Chuy n đ i m t Value v m t ki u nào đó double myDouble = myValue.getDouble();

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

3.1 Thao tác trên repository

Sau khi có m t Ticket, Client có th thao tác vào Repository b ng cách thêm hay xoá các node, property và thay đ i các giá tr c a các Property

Ví d :

Sau khi có m t node, Client có th thêm vào m t node con và thêm m t Property vào node con đó.

//Thêm m t Node con

Node newNode = myNode.addNode(“n”);

//Thêm m t Property

newNode.setProperty(“x”,”Hello”);

S thay đ i b i các ph ng th c c a Node và Property không tác đ ng ngay vào Workspace c a Repository. Các s thay đ i đó đ c l u gi t m th i cùng v i đ i t ng Ticket cho đ n khi ph ng th c Ticket.save ho c Node.save đ c g i

Ticket.save s c p nh t t t c s thay đ i t l n save tr c đó.

Ph ng th c Node.save(boolean shallow) l u toàn b cây con c a đ i t ng node (khi shallow = false) ho c ch l u các property c a node đó (khi shallow = true)

V m t t ng quát, Ticket là m t kho l u tr t m th i, t t c nh ng s thay đ i đ c th c hi n thông qua nh ng ph ng th c c a Ticket ho c gián ti p thông qua các ph ng th c c a Node và Property.

Phát tri n CMS module cho h th ng Intranet cu Công ty TMA

4. S liên h gi a Node, Property và Item

Do các Node và các Property có m t s ch c n ng chung nên các ph ng th c chung đ c đnh ngh a trong Interface Item.

Một phần của tài liệu xay dung cms module cho he thong intranet cua cong ty tma-lu (Trang 72 - 76)

Tải bản đầy đủ (PDF)

(167 trang)