Hi all,
I am Helge, a PhD student at IT University in Copenhagen. Currently, I am
researching software projects that use a variety of domain-specific
languages. OFBiz applications are my primary case since it contains a lot
of code in XML based DSLs.
I am especially interessted in code dependencies. With code dependencies I
mean pieces of code that refer to each other, e.g., using string-based
references. Reading the 'Apache OFBiz Development' book by J.Wong and
R.Howell I could identify a few dependency generating code constructs.
First, I think that there are inner-language code dependencies. For
example, an entity in one entity model may have a relation to another
entity in a second entitymodel. Further, there are inter-language
dependencies. For example, a method call in a Java class that refers to an
entity name in an entitymodel via a string reference, or a widget-screen
that refers to an entity via its name.
I would like to kindly ask you to help me in identifying some more
dependency generating code constructs. Since you, as developers, have a lot
more insight into the domain than I have from reading the documentation. If
there are dependency generating code constructs in any of the languages
that are used in OFBiz applications that come to your mind, I would like to
ask you to fill them briefly in the following schema:
Language: NAME
Construct: CODE SNIPPET
Language: NAME2
Construct: CODE SNIPPET2
As an example of the information I am interested, the following gives the
above mentioned examples in this schema.
a)
Language: entitymodel
Construct: <entity entity-name="A"...>
...
<relation type="one" fk-name="B_NAME" rel-entity-name="B">
<key-map field-name="b"/>
</relation>
Language: entitymodel
Construct: <entity entity-name="B"...>
...
<prim-key field="b"/>
...
b)
Language: entitymodel
Construct: <entity entity-name="A"...>
<field name="a" ...></field>
...
Language: Java
Construct: .findByAnd("A" ...)
c)
Language: widget-Screen
Construct: <screen name="B">
...
<entity-one entity-name="A" ...
...
Language: entitymodel
Construct: <entity entity-name="A"...>
<field name="a" ...></field>
...
Thank you very much.
Kind regards,
Helge