Ref_impl_Java mailing list archives

Hi Sebastian,

You've probably been playing around with the adl.jj file. Technically,
the solution could look something like this:

ArchetypeTerm archetype_term() :
{
Token t;
String code;
String key;
String value = null;
ArchetypeTerm term;
}
{
"["
code = local_code_value()
{ term = new ArchetypeTerm(code); }

"]" <SYM_EQ> "<"
(
<SYM_TEXT> <SYM_EQ> "<"
value = string_value() { term.addItem("text", value); }
">" [ ";" ]

<SYM_DESCRIPTION_WORD> <SYM_EQ> "<"
value = string_value() { term.addItem("description", value); }
">" [ ";" ]

<SYM_COMMENT> <SYM_EQ> "<"
value = string_value() { term.addItem("comment", value); }
">" [ ";" ]

t = <V_IDENTIFIER> <SYM_EQ> "<"
value = string_value()
{
key = t.image;
term.addItem(key, value);
}
">" [ ";" ]
)*
">"
{ return term; }
}

If you just replace the archetype-term definition code with the upper
snippet, it should work. As for the update of the central svn
repository, you should probably contact Rong Chen...

Saso

Hi Saso,

good one! Thanks
I have checked it in together with a test case.

Cheers
Sebastian

Saso Rutar wrote:

Hi Sebastian, Saso!

The underlying object model, ArchetypeTerm has a Map-based
implementation so it would be nice to allow any kind of key,value
pairs in ADL. Right now it's not very convenient modify the parser in
order to add new keys. Later on, when we move on to d-ADL for this
part of the archetypes, it will be much easier.

I am interested to know the usecase of extra keys here. Sebastian, can
you please elaborate on it?

Cheers,
Rong

Hi Rong,

Well, my reason is that the specs explicitly state that it is possible.
Apart from text, description and comment, the specs also mention provenance as another example for a key.
At least the Ocean Archetype Editor supports the input of any key here as well.

Unfortunately, the specs don’t restrict the exact nature of the key other than stating that is a string.
So, as far as I understand, it might even be a key with spaces or other undesired characters in it, which I don’t think should be allowed.
V_IDENTIFIER as Saso chose seems to be the best choice here, even if it would not work with spaces or other non V_IDENTIFIER characters.

Cheers,
Sebastian

Rong Chen wrote:

(attachments)

oceanlogo.png