Request for OO ABL code examples

Posted by Phillip Magnay on 26-Jun-2008 08:04

I am currently updating to OpenEdge 10.1C OO ABL the UML model-to-code forward engineering / code-to-model reverse engineering / code-to-model synchronization templates for Enterprise Architect . I've been moving along steadily, conducting a lot of testing, and it's starting to come together. Hopefully, by the time I'm done, we will have a lot more complete solution especially on the reverse engineering / code-to-model synchronization side. To date, the RE / C-to-M sync covered only the basics and tended to fail on more interesting syntax variants and corner cases. There are also couple of niggles with the RE grammar that are proving problematic to solve: 1) fully qualified types before a period at the end of a statement, and 2) the different "END" variations. But I am hopeful I can resolve these in time.

In order to test as many syntax variations as possible, I am putting out a general request for OO ABL code examples from any interested people. Like many of you, I have my own coding style and approach which is in all likelihood too narrow for thorough testing, and try as I might, I know I am not going to come up with all of the variations and corner cases. So if you would like to help me out and you have some OO ABL code examples that you would like to send me, let me know via reply to this thread.

Thanks in advance.

Phil

All Replies

Posted by Admin on 26-Jun-2008 16:03

Phil, we are interested.

Where should we send some of our OO ABL code?

Thanks,

Ariel.

Posted by Phillip Magnay on 26-Jun-2008 16:29

Ariel,

Do you have the right to "Attach Files" when you post messages to this forum? If so, then just attach the OO ABL code examples to this thread.

Or if you want to keep the code examples private, then just send it to my email address: pmagnay@progress.com

Phil

Posted by Thomas Mercer-Hursh on 26-Jun-2008 17:58

I am presuming that you have already collected my published examples? Is that fair or do I need to give you links?

Posted by Phillip Magnay on 26-Jun-2008 18:30

A little unfair. I don't know much about your examples other than you probably have some on your site. Help me out by posting the links or attaching the files to this thread. I am looking for OO ABL examples either 10.1B and/or 10.1C.

Phil

Posted by Thomas Mercer-Hursh on 26-Jun-2008 18:44

Exception and Condition Handling Classes http://www.oehive.org/ExceptionClass

Collection and Map Classes http://www.oehive.org/CollectionClasses

Should give you a start.

Posted by Admin on 27-Jun-2008 12:51

Hi, here I attach some of our codebase,

actually it's very little but the more representative of the coding style.

Probably there are some missing classes or include files, tell me if that is a problem.

David (I'm writing on behalf of Ariel).

Mensaje editado por:

David Abdala

Sorry, I've removed the attached file, because I was supouse to send it by mail.

Posted by Phillip Magnay on 27-Jun-2008 13:57

Thanks David (and Ariel). I quickly reviewed the code and this is definitely the kind of thing that I am looking for. I also performed an initial reverse engineer on the code and it appears that I still have some work to do to cover the OE 10.1C syntax items but I don't see any big problems getting this done in short order . I'll work on this over the next couple days and send you the result.

Phil Magnay

Posted by Admin on 27-Jun-2008 14:01

Hi Phil,

did you already test the sample code from my last years Exchange Session: http://www.psdn.com/library/entry!default.jspa?categoryID=1379&externalID=3279&fromSearchPage=true

It's 10.1B - but that should also be some kind of a test.

Mike

Posted by Phillip Magnay on 27-Jun-2008 15:13

Posted by Phillip Magnay on 27-Jun-2008 15:16

Posted by jmls on 30-Jun-2008 03:51

there are some classes using sockets at http://www.oehive.org/node/1205. Good luck understanding them

Posted by jtownsen on 30-Jun-2008 11:43

Oh he doesn't have to understand the code... he just has to be able to round-trip engineer it

Posted by Phillip Magnay on 30-Jun-2008 12:21

Thanks Julian. I'll download your code now. Jamie is correct - I don't need to understand your code per se. It's the reverse engineering grammar that needs to understand your code and as many other code syntax variations as possible. Making that happen is not easy but certainly doable.

Phil

Posted by jmls on 01-Jul-2008 15:47

Hell, even I don't understand my code half the time

Posted by Phillip Magnay on 10-Jul-2008 08:53

I just wanted to give you guys a quick update.

First of all, thanks very much for the code examples. They were very helpful in finding and addressing additional ABL syntax variations that I had not thought of.

Currently, I still have a handful of syntax variations which I have yet to address and which I am currently working with Sparx to resolve. A couple of these issues relate to statements which are at the file root level such as include files and ROUTINE-LEVEL error handling. A couple more have to do with the accessors and how they're defined in ABL (ie, part of property definition) as opposed to how they are modeled in a UML class (ie, stereotyped methods detached from the property definition).

Another issue which I am steadily taking care of is the multiple syntax variations of "END." statement on the various block types. And yet another is how to treat proprocessor definitions - within the class block (but outside method blocks) I'm modeling them as constants at the moment, but outside the class block it's not so clear as to where they should be placed inside the model. And there are still some questions as to how these resulting constants should be subsequently substituted at the time of forward code engineering.

Then there is the issue of what to do with include files and their arguments both inside and outside the class block. Everything inside method blocks is reasonably straight forward, this code is just captured as part of the releveant method.

Anyway, I just wanted to keep you posted. More come to come soon.

Phil

Posted by ijazbof on 05-Feb-2009 11:11

Dear Phillip Magnay:

I am sending you a class for your testing.

Regards

Hugo Alberto

Posted by Admin on 05-Feb-2009 11:23

Hi Phil,

any news on this? Recently we fell accross the fact that the EA templates are 10.1B, so STATIC members for instance were not present at that time.

It would be very helpfull, to receive an updated version of the templates some time.

Mike

Posted by Phillip Magnay on 28-Feb-2009 16:25

Hi Mike,

I apologize for taking so long to get back to you. I've been crazy busy lately and missed your post.

Yes, there has been some movement on this front. I would like to get a 10.2 version of the code generation/reverse engineering templates posted to PSDN in the next month or so. The new templates would definitely include STATICS. The hold up has not been technical - it has been been more of a bureaucratic obstacle. Sparx released EA 7.5 a few weeks ago and we were hoping to have Sparx include some additional support for OpenEdge in EA 7.5/MDG for Eclipse. But some paperwork took longer than it shoud have, and the additional OpenEdge support didn't make it in. That's been resolved now and we should see the extra OpenEdge stuff in an impending EA 7.5/MDG for Eclipse build. After that, I need to re-test all of the code generation templates and the reverse engineering/code synchronization scripts. Once that is done, the OpenEdge templates/scripts will be posted to PSDN.

Regards,

Phil

Hi Phil,

any news on this? Recently we fell accross the fact

that the EA templates are 10.1B, so STATIC members

for instance were not present at that time.

It would be very helpfull, to receive an updated

version of the templates some time.

Mike

Hi

Posted by Phillip Magnay on 28-Feb-2009 16:26

Thanks Hugo. I will use the code that you submitted in some testing I will be doing soon.

Phil

Posted by Admin on 01-Mar-2009 03:15

Hey Phil,

That's good news!

Do you know if that will include a model template including OpenEdge built in and .NET base types like Progress.Lang.Object, Progress.Lang.Error or Progress.Data.BindingSource?

I appreciate you afford in this matter!

Mike

This thread is closed