[Home] [Help]
TYPE BODY: MDSYS.ST_ANNOTATION_TEXT
Source
1 TYPE BODY ST_ANNOTATION_TEXT IS
2 CONSTRUCTOR FUNCTION ST_ANNOTATION_TEXT(anTextArray
3 ST_ANNOTATIONTEXTELEMENT_ARRAY ) RETURN SELF AS RESULT IS
4 mbr SDO_GEOMETRY;
5 geom SDO_GEOMETRY;
6 idx number;
7 anText ST_ANNOTATIONTEXTELEMENT;
8 BEGIN
9 geom := null;
10 FOR idx in 1 .. anTextArray.PRIVATEARRAY.count LOOP
11 anText := anTextArray.ElementN(idx);
12 IF (anText.PRIVATELEADERLINE is NULL) THEN
13 mbr := sdo_3gl.sdo_mbr(anText.PRIVATELOCATION,anText.PRIVATELOCATION);
14 ELSE
15 mbr := sdo_3gl.sdo_mbr(anText.PRIVATELOCATION, anText.PRIVATELEADERLINE);
16 END IF;
17 geom := sdo_util.append(geom, mbr);
18 END LOOP;
19 -- PRIVATEENVELOPE := sdo_geom.sdo_mbr(geom);
20 -- EXECUTE IMMEDIATE 'select sdo_geom_mbr(:1) from dual'
21 -- into PRIVATEENVELOPE using geom;
22 select sdo_geom_mbr(geom) into PRIVATEENVELOPE from dual;
23 PRIVATEELEMENT_ARRAY := anTextArray;
24 RETURN;
25 END;
26
27 MEMBER FUNCTION CONCAT (anText ST_ANNOTATION_TEXT)
28 RETURN ST_ANNOTATION_TEXT IS
29 prvArray ST_ANNOT_TEXTELEMENT_ARRAY;
30 BEGIN
31 prvArray := ST_ANNOT_TEXTELEMENT_ARRAY();
32 prvArray.extend(anText.PRIVATEELEMENT_ARRAY.PRIVATEARRAY.count+
33 SELF.PRIVATEELEMENT_ARRAY.PRIVATEARRAY.count);
34 FOR idx in 1 .. SELF.PRIVATEELEMENT_ARRAY.PRIVATEARRAY.count LOOP
35 prvArray(idx) := SELF.PRIVATEELEMENT_ARRAY.PRIVATEARRAY(idx);
36 END LOOP;
37 FOR idx in 1 .. anText.PRIVATEELEMENT_ARRAY.PRIVATEARRAY.count LOOP
38 prvArray(idx+anText.PRIVATEELEMENT_ARRAY.PRIVATEARRAY.count) :=
39 anText.PRIVATEELEMENT_ARRAY.PRIVATEARRAY(idx);
40 END LOOP;
41 RETURN ST_ANNOTATION_TEXT(ST_ANNOTATIONTEXTELEMENT_ARRAY(prvArray));
42 END;
43 MEMBER FUNCTION Envelope RETURN SDO_GEOMETRY IS
44 BEGIN
45 RETURN PRIVATEENVELOPE;
46 END;
47 MEMBER FUNCTION Element_Array RETURN ST_ANNOTATIONTEXTELEMENT_ARRAY IS
48 BEGIN
49 RETURN PRIVATEELEMENT_ARRAY;
50 END;
51 END;