Changeset: 5 Changeset: 5 Arreglo métodos PROTECTED/HIDDEN

This commit is contained in:
fernando
2013-11-22 20:55:09 +01:00
parent d5794373a6
commit f63997121b

View File

@@ -167,7 +167,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
lFileMode = .F. lFileMode = .F.
nClassTimeStamp = '' nClassTimeStamp = ''
o_Conversor = NULL o_Conversor = NULL
n_FB2PRG_Version = 1.0 n_FB2PRG_Version = 1.2
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE INIT PROCEDURE INIT
@@ -940,9 +940,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
#ENDIF #ENDIF
_MEMBERDATA = [<VFPData>] ; _MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="analizarbloque_foxbin2prg" type="method" display="analizarBloque_FoxBin2Prg"/>] ; + [<memberdata name="analizarbloque_foxbin2prg" type="method" display="analizarBloque_FoxBin2Prg"/>] ;
+ [<memberdata name="classmethodcomment" type="method" display="classMethodComment"/>] ; + [<memberdata name="getclassmethodcomment" type="method" display="getClassMethodComment"/>] ;
+ [<memberdata name="classmethods2memo" type="method" display="classMethods2Memo"/>] ; + [<memberdata name="classmethods2memo" type="method" display="classMethods2Memo"/>] ;
+ [<memberdata name="classpropertycomment" type="method" display="classPropertyComment"/>] ; + [<memberdata name="getclasspropertycomment" type="method" display="getClassPropertyComment"/>] ;
+ [<memberdata name="classprops2memo" type="method" display="classProps2Memo"/>] ; + [<memberdata name="classprops2memo" type="method" display="classProps2Memo"/>] ;
+ [<memberdata name="createform" type="method" display="createForm"/>] ; + [<memberdata name="createform" type="method" display="createForm"/>] ;
+ [<memberdata name="createclasslib" type="method" display="createClasslib"/>] ; + [<memberdata name="createclasslib" type="method" display="createClasslib"/>] ;
@@ -1199,7 +1199,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE classPropertyComment PROCEDURE getClassPropertyComment
LPARAMETERS tcPropName AS STRING, toClase LPARAMETERS tcPropName AS STRING, toClase
#IF .F. #IF .F.
@@ -1221,7 +1221,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE classMethodComment PROCEDURE getClassMethodComment
LPARAMETERS tcMethodName AS STRING, toClase LPARAMETERS tcMethodName AS STRING, toClase
#IF .F. #IF .F.
@@ -1263,10 +1263,10 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
IF LEFT( lcPEM, 1 ) == '*' IF LEFT( lcPEM, 1 ) == '*'
*-- M<>todo *-- M<>todo
lcComentario = THIS.classMethodComment( SUBSTR(lcPEM,2), toClase ) lcComentario = THIS.getClassMethodComment( SUBSTR(lcPEM,2), toClase )
ELSE ELSE
*-- Propiedad *-- Propiedad
lcComentario = THIS.classPropertyComment( lcPEM, toClase ) lcComentario = THIS.getClassPropertyComment( lcPEM, toClase )
ENDIF ENDIF
TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
@@ -1429,7 +1429,11 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
STORE '' TO lc_Comentario, lcProp, lcAddobjectAbierto STORE '' TO lc_Comentario, lcProp, lcAddobjectAbierto
STORE 0 TO lnPropsObj STORE 0 TO lnPropsObj
IF THIS.lineaExcluida( I, lnBloquesExclusion, @ta_Pos_BloquesExclusion ) lcLine = LTRIM( ta_Lineas(I), 0, ' ', CHR(9) )
IF THIS.lineaExcluida( I, lnBloquesExclusion, @ta_Pos_BloquesExclusion ) ;
OR .lineIsOnlyComment( @lcLine, @lc_Comentario ) && Excluida, vac<61>a o solo Comentarios
IF NOT EMPTY(lcProcedureAbierto) && L<>neas del PROCEDURE (de Clase u Objeto) IF NOT EMPTY(lcProcedureAbierto) && L<>neas del PROCEDURE (de Clase u Objeto)
IF '.' $ lcProcedureAbierto AND loObjeto._Procedure_Count > 0 IF '.' $ lcProcedureAbierto AND loObjeto._Procedure_Count > 0
.evaluarLineaDeProcedure( @lcLine, ta_Lineas(I), loObjeto._Procedures(loObjeto._Procedure_Count), @lcProcedureAbierto ) .evaluarLineaDeProcedure( @lcLine, ta_Lineas(I), loObjeto._Procedures(loObjeto._Procedure_Count), @lcProcedureAbierto )
@@ -1441,12 +1445,6 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
LOOP LOOP
ENDIF ENDIF
lcLine = LTRIM( ta_Lineas(I), 0, ' ', CHR(9) )
IF .lineIsOnlyComment( @lcLine, @lc_Comentario ) && Vac<61>a o solo Comentarios
LOOP
ENDIF
lnPrimerID = 0 lnPrimerID = 0
DO CASE DO CASE
@@ -1521,11 +1519,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
lc_Comentario = '' lc_Comentario = ''
lcLine = LTRIM( ta_Lineas(I), 0, ' ', CHR(9) ) lcLine = LTRIM( ta_Lineas(I), 0, ' ', CHR(9) )
IF THIS.lineaExcluida( I, lnBloquesExclusion, @ta_Pos_BloquesExclusion ) IF THIS.lineaExcluida( I, lnBloquesExclusion, @ta_Pos_BloquesExclusion ) ;
LOOP OR .lineIsOnlyComment( @lcLine, @lc_Comentario ) && Excluida, vac<61>a o solo Comentarios
ENDIF
IF .lineIsOnlyComment( @lcLine, @lc_Comentario ) && Excluida, vac<61>a o solo Comentarios
IF NOT EMPTY(lcProcedureAbierto) && L<>neas del PROCEDURE IF NOT EMPTY(lcProcedureAbierto) && L<>neas del PROCEDURE
IF '.' $ lcProcName AND VARTYPE(loObjeto) = 'O' AND loObjeto._Procedure_Count > 0 IF '.' $ lcProcName AND VARTYPE(loObjeto) = 'O' AND loObjeto._Procedure_Count > 0
@@ -3102,7 +3097,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE
SET ORDER TO 0 IN TABLABIN SET ORDER TO 0 IN TABLABIN
THIS.PROGRAM_HEADER() THIS.write_PROGRAM_HEADER()
THIS.obtenerNombresObjetosOLEPublic( @la_NombresObjsOle ) THIS.obtenerNombresObjetosOLEPublic( @la_NombresObjsOle )
@@ -3133,7 +3128,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
THIS.INCLUDES( @loRegClass ) THIS.INCLUDES( @loRegClass )
THIS.CLASS_PROPERTIES( @loRegClass, @laProps, @laPropsWithComments ) THIS.CLASS_PROPERTIES( @loRegClass, @laProps, @laPropsWithComments, @laProtected )
*------------------------------------------------------------------------------- *-------------------------------------------------------------------------------
@@ -3240,7 +3235,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE
SET ORDER TO 0 IN TABLABIN SET ORDER TO 0 IN TABLABIN
THIS.PROGRAM_HEADER() THIS.write_PROGRAM_HEADER()
THIS.obtenerNombresObjetosOLEPublic( @la_NombresObjsOle ) THIS.obtenerNombresObjetosOLEPublic( @la_NombresObjsOle )
@@ -3285,7 +3280,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
THIS.INCLUDES( @loRegClass ) THIS.INCLUDES( @loRegClass )
THIS.CLASS_PROPERTIES( @loRegClass, @laProps, @laPropsWithComments ) THIS.CLASS_PROPERTIES( @loRegClass, @laProps, @laPropsWithComments, @laProtected )
*------------------------------------------------------------------------------- *-------------------------------------------------------------------------------
@@ -3360,8 +3355,8 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
LOCAL THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG' LOCAL THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG'
#ENDIF #ENDIF
*_MEMBERDATA = [<VFPData>] ; *_MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="convertir" type="method" display="Convertir"/>] ; * + [<memberdata name="write_program_header" type="method" display="write_PROGRAM_HEADER"/>] ;
+ [</VFPData>] * + [</VFPData>]
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE INIT PROCEDURE INIT
@@ -3375,6 +3370,20 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
ENDPROC ENDPROC
*******************************************************************************************************************
PROCEDURE write_PROGRAM_HEADER
*-- Cabecera del PRG e inicio de DEF_CLASS
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - PARA MANTENER INFORMACI<43>N DE SERVIDORES DLL USAR "FOXBIN2PRG", SI NO IMPORTAN, EJECUTAR DIRECTAMENTE PARA REGENERAR EL PROYECTO.
* (EN) AUTOGENERATED - TO KEEP DLL SERVER INFORMATION USE "FOXBIN2PRG", OTHERWISE YOU CAN EXECUTE DIRECTLY TO REGENERATE PROJECT.
*--------------------------------------------------------------------------------------------------------------------------------------------------------
<<C_FB2PRG_META_I>> Version = "<<TRANSFORM(THIS.n_FB2PRG_Version)>>", SourceFile = "<<THIS.c_InputFile>>" <<C_FB2PRG_META_F>>
*
ENDTEXT
ENDPROC
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE Convertir PROCEDURE Convertir
TRY TRY
@@ -3435,15 +3444,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
ENDSCAN ENDSCAN
*-- Cabecera del PRG e inicio de DEF_CLASS THIS.write_PROGRAM_HEADER()
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - PARA MANTENER INFORMACI<43>N DE SERVIDORES DLL USAR "FOXBIN2PRG", SI NO IMPORTAN, EJECUTAR DIRECTAMENTE PARA REGENERAR EL PROYECTO.
* (EN) AUTOGENERATED - TO KEEP DLL SERVER INFORMATION USE "FOXBIN2PRG", OTHERWISE YOU CAN EXECUTE DIRECTLY TO REGENERATE PROJECT.
*--------------------------------------------------------------------------------------------------------------------------------------------------------
<<C_FB2PRG_META_I>> Version = "<<TRANSFORM(THIS.n_FB2PRG_Version, '##.##')>>", SourceFile = "<<THIS.c_InputFile>>" <<C_FB2PRG_META_F>>
*
ENDTEXT
*-- Directorio de inicio *-- Directorio de inicio
@@ -3652,7 +3653,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
+ [<memberdata name="includes" type="method" display="INCLUDES"/>] ; + [<memberdata name="includes" type="method" display="INCLUDES"/>] ;
+ [<memberdata name="obj_zorder_list" type="method" display="OBJ_ZORDER_List"/>] ; + [<memberdata name="obj_zorder_list" type="method" display="OBJ_ZORDER_List"/>] ;
+ [<memberdata name="class_properties" type="method" display="CLASS_PROPERTIES"/>] ; + [<memberdata name="class_properties" type="method" display="CLASS_PROPERTIES"/>] ;
+ [<memberdata name="program_header" type="method" display="PROGRAM_HEADER"/>] ; + [<memberdata name="write_program_header" type="method" display="write_PROGRAM_HEADER"/>] ;
+ [<memberdata name="exception2str" type="method" display="Exception2Str"/>] ; + [<memberdata name="exception2str" type="method" display="Exception2Str"/>] ;
+ [<memberdata name="get_propswithcomments" type="method" display="Get_PropsWithComments"/>] ; + [<memberdata name="get_propswithcomments" type="method" display="Get_PropsWithComments"/>] ;
+ [<memberdata name="indentarmemo" type="method" display="IndentarMemo"/>] ; + [<memberdata name="indentarmemo" type="method" display="IndentarMemo"/>] ;
@@ -3896,14 +3897,14 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE PROGRAM_HEADER PROCEDURE write_PROGRAM_HEADER
*-- Cabecera del PRG e inicio de DEF_CLASS *-- Cabecera del PRG e inicio de DEF_CLASS
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
*-------------------------------------------------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! * (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! * (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*-------------------------------------------------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------------------------------------------------
<<C_FB2PRG_META_I>> Version = "<<TRANSFORM(THIS.n_FB2PRG_Version, '##.##')>>", SourceFile = "<<THIS.c_InputFile>>" <<C_FB2PRG_META_F>> <<C_FB2PRG_META_I>> Version = "<<TRANSFORM(THIS.n_FB2PRG_Version)>>", SourceFile = "<<THIS.c_InputFile>>" <<C_FB2PRG_META_F>>
* *
ENDTEXT ENDTEXT
ENDPROC ENDPROC
@@ -3911,26 +3912,27 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE CLASS_PROPERTIES PROCEDURE CLASS_PROPERTIES
LPARAMETERS toRegClass, taProps, taPropsWithComments LPARAMETERS toRegClass, taProps, taPropsWithComments, taProtected
EXTERNAL ARRAY taProps, taPropsWithComments EXTERNAL ARRAY taProps, taPropsWithComments
TRY TRY
LOCAL lnLineCount, lcHiddenProp, lcProtectedProp, lcPropsMethodsDefd, lnComments, I ; LOCAL lnLineCount, lcHiddenProp, lcProtectedProp, lcPropsMethodsDefd, lnComments, I ;
, laProtected(1), lcPropName, lnProtectedItem, lcComentarios , lcPropName, lnProtectedItem, lcComentarios
WITH THIS WITH THIS
*-- DEFINIR PROPIEDADES ( HIDDEN, PROTECTED, *DEFINED_PEM ) *-- DEFINIR PROPIEDADES ( HIDDEN, PROTECTED, *DEFINED_PEM )
DIMENSION taProtected(1)
THIS.SortNames( toRegClass.PROPERTIES, @taProps, @lnLineCount, '' ) THIS.SortNames( toRegClass.PROPERTIES, @taProps, @lnLineCount, '' )
STORE '' TO lcHiddenProp, lcProtectedProp, lcPropsMethodsDefd STORE '' TO lcHiddenProp, lcProtectedProp, lcPropsMethodsDefd
THIS.Get_PropsWithComments( @taPropsWithComments, @lnComments, toRegClass.RESERVED3 ) THIS.Get_PropsWithComments( @taPropsWithComments, @lnComments, toRegClass.RESERVED3 )
=ALINES(laProtected, toRegClass.PROTECTED) =ALINES(taProtected, toRegClass.PROTECTED)
IF lnLineCount > 0 THEN IF lnLineCount > 0 THEN
*-- Recorro las propiedades (campo Properties) *-- Recorro las propiedades (campo Properties)
FOR I = 1 TO lnLineCount FOR I = 1 TO lnLineCount
lcPropName = RTRIM( GETWORDNUM( taProps(I), 1, '=' ) ) lcPropName = RTRIM( GETWORDNUM( taProps(I), 1, '=' ) )
lnProtectedItem = ASCAN(laProtected, lcPropName, 1, 0, 0, 0) lnProtectedItem = ASCAN(taProtected, lcPropName, 1, 0, 0, 0)
*-- Ajustes de algunos casos especiales *-- Ajustes de algunos casos especiales
taProps(I) = THIS.normalizarAsignacion( taProps(I), @lcComentarios ) taProps(I) = THIS.normalizarAsignacion( taProps(I), @lcComentarios )
@@ -3944,11 +3946,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
CASE lnProtectedItem = 0 CASE lnProtectedItem = 0
*-- Propiedad com<6F>n *-- Propiedad com<6F>n
CASE laProtected(lnProtectedItem) == lcPropName CASE taProtected(lnProtectedItem) == lcPropName
*-- Propiedad protegida *-- Propiedad protegida
lcProtectedProp = lcProtectedProp + ',' + lcPropName lcProtectedProp = lcProtectedProp + ',' + lcPropName
CASE laProtected(lnProtectedItem) == lcPropName + '^' CASE taProtected(lnProtectedItem) == lcPropName + '^'
*-- Propiedad oculta *-- Propiedad oculta
lcHiddenProp = lcHiddenProp + ',' + lcPropName lcHiddenProp = lcHiddenProp + ',' + lcPropName