DBA Data[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;