Hi Lofi, Thanks! I'll add this for now, however I do like the second option you mentioned so that stereotypes/tagged values can be configurable everywhere from one place. I'll be doing that soon.
Chad ----- Original Message ----- From: "Lofi Dewanto" <[EMAIL PROTECTED]> To: "Chad Brandon" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Saturday, July 03, 2004 8:05 PM Subject: Re: [Andromda-user] Using other naming convension for the stereotypes? > Hi Chad, > > the first easy step is to make the Metafacade more configurable. > > Just by adding the property file to the UMLProfile > (UMLProfile.properties) and change the UMLProfile.java a > litte bit (so it will read the data from the property file), > it will be very easy for everyone (including me ;-)) to > change the name of the stereotypes, taggedvalues, etc. > without having to rewrite the whole Entity*.java within > the Metafacade (like EntityFacadeLogicImpl, > EntityAttributeFacadeLogicImpl, etc.) and without > recompiling the whole AndroMDA (IMO, it is easier just > to edit the property file instead of editing the Java file > and recompiling the whole Metafacade). Besides this has > to be done everytime after updating the CVS... > > It would be very nice if you can update these two files > in AndroMDA CVS. I already tested those files and they > worked smoothly. > > I attach the 2 files. Just copy these two files into: > andromda-all\metafacades\uml\common\src\java\org\andromda\metafacades\uml\ > > And after this everyone can use their own convention > in their own cartridge ;-) > > Thanks! > -- > --------------------------------------------------- > Blasius Lofi Dewanto > --------------------------------------------------- > OpenUSS - Open University Support System > http://openuss.sourceforge.net > --------------------------------------------------- > E-Mail : [EMAIL PROTECTED] > ICQ : 39343280 > --------------------------------------------------- > > Chad Brandon schrieb: > > Sounds like a good idea...I had been thinking of similar implementation. > > I'll see if I can add something like this soon. > > > > > > ----- Original Message ----- > > From: "Lofi Dewanto" <[EMAIL PROTECTED]> > > To: "Chad Brandon" <[EMAIL PROTECTED]> > > Cc: <[EMAIL PROTECTED]>; > > <[EMAIL PROTECTED]> > > Sent: Saturday, July 03, 2004 8:41 AM > > Subject: Re: [Andromda-user] Using other naming convension for the > > stereotypes? > > > > > > > >>Hi Chad, > >> > >>thanks for your reply. > >> > >><chad> > >>Oh I agree...I think we need to come up with a way to > >>easily configure stereotypes and tagged values. > >>Ideas? > >></chad> > >> > >>1. The easiest thing is to use one centralized property file > >>like "UMLProfile.property". > >> > >>2. The UMLProfile.java should read all its constants from > >>this property file, so that you can change the string values easier, > >>without recompiling Metafacade cartridge. > >> > >>UMLProfile.java > >>--------------- > >>Instead of: > >>public static final String STEREOTYPE_ENTITY = "Entity"; > >> > >>you can use: > >>public static final String STEREOTYPE_ENTITY = > >> ResourceBundle.getString("Entity"); > >> > >>or so. > >> > >>And you have: > >> > >>UMLProfile.property > >>------------------- > >>Entity=Entity > >> > >> > >>IMO, this only has to be done at the Metafacade cartridge, > >>because this should be the foundation of all other cartridges. > >> > >>It doesn't mattter to other cartridges, since they depend on > >>the developers of those cartridges. > >> > >> > >>The !best! if we can centralized the constants (stereotypes, > >>taggedvalues, constants, etc.) in one place, which we can > >>refer from the: > >>1. Implementation Code in Java (from Metafacade), > >>2. andromda-metafacades.xml, > >>3. andromda-cartridge.xml, > >>4. Templates files, > >> > >>The cleanest solution would be: > >> > >>1. Add a new property in andromda-cartridge.xml, something like: > >> > >><constants> > >> <name="STEREOTYPE_EXCEPTION" value="Exception"> > >> <name="STEREOTYPE_SERVICE" value="Service"> > >> <name="STEREOTYPE_ENTITY" value="Entity"> > >> <name="STEREOTYPE_FINDER_METHOD" value="FinderMethod"> > >> <name="TAGGEDVALUE_PERSISTENCE_COLUMN" value=""@persistence.column"> > >> ... > >></constants> > >> > >>2. To access this values from our Java impl., we need a utility class, > >>something like: > >> > >>String service = CartridgeUtil.getString("STEREOTYPE_SERVICE"); > >> > >>3. To access this values from our Templates: > >> > >>#set ($service = cartridgeUtil.getString("STEREOTYPE_SERVICE")) > >> > >>Before, we need to add this "CartidgeUtil" into our andromda-cartridge > >>something like: > >> > >><templateObject name="cartridgeUtil" > >> className="org.andromda.core.common.CartridgeUtil"/> > >> > >>4. In andromda-cartridge.xml and andromda-metafacades.xml > >>we need to use the constant name and not the real name, > >>something like: > >> > >> <!-- Stereotype: entity --> > >> <template > >> sheet="templates/HibernateEntityAbstract.vsl" > >> outputPattern="{0}/{1}Abstract.java" > >> outlet="entities" > >> overWrite="true"> > >> <modelElements variable="class"> > >> <modelElement stereotype="STEREOTYPE_ENTITY"/> > >> </modelElements> > >> </template> > >> > >>and > >> > >> <metafacade > >>metaobjectClass="org.omg.uml.foundation.core.Operation$Impl" > >> metafacadeClass="org.andromda.cartridges.ejosa. > >> businessejbhibernate.metafacades.BusinessEjbHibernateFinder > >> MethodFacadeLogicImpl"> > >><stereotype>STEREOTYPE_FINDER_METHOD</stereotype> > >> </metafacade> > >> > >> > >>Surely, all the cartidge developers must be very strict to this > >>convention: never use a string like "Entity" directly in Java, > >>Templates and everywhere else. Always use the constant defined > >>in the andromda-cartridge.xml. In this way, it would be very > >>easy to rename those stereotypes, taggedvalues, constants, etc. > >> > >>IMO, this would be really cool! > >> > >>Cheers, > >> > >>Writing the CartridgeUtil class is not a problem at all, I think. > >>Just need to read andromda-cartridge.xml (and AndroMDA team has > >>done this in AndroMDA a lot of time, right ;-))? > >> > >>-- > >>--------------------------------------------------- > >>Blasius Lofi Dewanto > >>--------------------------------------------------- > >>OpenUSS - Open University Support System > >>http://openuss.sourceforge.net > >>--------------------------------------------------- > >>E-Mail : [EMAIL PROTECTED] > >>ICQ : 39343280 > >>--------------------------------------------------- > >> > >>Chad Brandon schrieb: > >> > Hi Lofi, > >> > > >> > It would be great if it was that > >> > simple...unfortunately some of the cartridges use the > >> > hard coded values of stereotypes. I'd really like to > >> > do something clean with the stereotype names. So that > >> > its easy for people to configure them. > >> > > >> > Chad > >> > > >> > --- Lofi Dewanto <[EMAIL PROTECTED]> wrote: > >> > > >> >>Hi Community, > >> >> > >> >>I would like to whether it is possible to "rename" > >> >>those Stereotypes, TaggedValues constants in the > >> >>UMLProfile.java > >> >>in my own cartridge? > >> >> > >> >>Example: > >> >> > >> >>In UMLProfile.java the STEREOTYPE_IDENTIFIER is > >> >>defined > >> >>as "PrimaryKey". I would like to use another name > >> >>for > >> >>this, like for example "primaryKey". Is this > >> >>possible without > >> >>modifying the Metafacade itself? > >> >> > >> >>Thanks! > >> >>-- > >> >>--------------------------------------------------- > >> >>Blasius Lofi Dewanto > >> >>--------------------------------------------------- > >> >>OpenUSS - Open University Support System > >> >>http://openuss.sourceforge.net > >> >>--------------------------------------------------- > >> >>E-Mail : [EMAIL PROTECTED] > >> >>ICQ : 39343280 > >> >>--------------------------------------------------- > >> >> > >> >> > >> >> > >> >> > >> >> > >> > > >> > ------------------------------------------------------- > >> > > >> >>This SF.Net email sponsored by Black Hat Briefings & > >> >>Training. > >> >>Attend Black Hat Briefings & Training, Las Vegas > >> >>July 24-29 - > >> >>digital self defense, top technical experts, no > >> >>vendor pitches, > >> >>unmatched networking opportunities. Visit > >> >>www.blackhat.com > >> >>_______________________________________________ > >> >>Andromda-user mailing list > >> >>[EMAIL PROTECTED] > >> >> > >> > > >> > https://lists.sourceforge.net/lists/listinfo/andromda-user > >> > > >> > > >> > > >> > >> > > > > > > > > ---------------------------------------------------------------------------- ---- > package org.andromda.metafacades.uml; > > import java.util.ResourceBundle; > > /** > * Contains the common UML AndroMDA profile. That is, it contains elements > * "common" to all AndroMDA components (tagged values, and stereotypes). > * > * @author Chad Brandon > */ > public class UMLProfile { > > // Get the resource > static ResourceBundle umlProfile = ResourceBundle > .getBundle("org.andromda.metafacades.uml.UMLProfile"); > > /* ----------------- Stereotypes -------------------- */ > > /** > * Represents a persistent entity. > */ > public static final String STEREOTYPE_ENTITY = umlProfile > .getString("STEREOTYPE_ENTITY"); > > /** > * Represents a finder method on an entity. > */ > public static final String STEREOTYPE_FINDER_METHOD = umlProfile > .getString("STEREOTYPE_FINDER_METHOD"); > > /** > * Represents the primary key of an entity. > */ > public static final String STEREOTYPE_IDENTIFIER = umlProfile > .getString("STEREOTYPE_IDENTIFIER"); > > /** > * Represents a service. > */ > public static final String STEREOTYPE_SERVICE = umlProfile > .getString("STEREOTYPE_SERVICE"); > > /** > * The base exception stereotype. If a model element is stereotyped with > * this (or one of its sub stereotypes), then it is excepted that a > * cartridge will generate an exception > */ > public static final String STEREOTYPE_EXCEPTION = umlProfile > .getString("STEREOTYPE_EXCEPTION"); > > /** > * Represents exceptions thrown during normal application processing (such > * as business exceptions). It extends the base exception stereotype. > */ > public static final String STEREOTYPE_APPLICATION_EXCEPTION = umlProfile > .getString("STEREOTYPE_APPLICATION_EXCEPTION"); > > /** > * Represents unexpected exceptions that can occur during application > * processing. This that a caller isn't expected to handle. > */ > public static final String STEREOTYPE_UNEXPECTED_EXCEPTION = umlProfile > .getString("STEREOTYPE_UNEXPECTED_EXCEPTION"); > > /** > * Represents a reference to an exception model element. Model dependencies > * to unstereotyped exception model elements can be stereotyped with this. > * This allows the user to create a custom exception class since the > * exception itself will not be generated but the references to it will be > * (i.e. the throws clause within an operation). > */ > public static final String STEREOTYPE_EXCEPTION_REF = umlProfile > .getString("STEREOTYPE_EXCEPTION_REF"); > > /* ----------------- Tagged Values -------------------- */ > > /** > * Represents documentation stored as a tagged value > */ > public static final String TAGGEDVALUE_DOCUMENTATION = umlProfile > .getString("TAGGEDVALUE_DOCUMENTATION"); > > /** > * Represents a SQL table name for entity persistence. > */ > public static final String TAGGEDVALUE_PERSISTENCE_TABLE = umlProfile > .getString("TAGGEDVALUE_PERSISTENCE_TABLE"); > > /** > * Represents a SQL table column name for entity persistence. > */ > public static final String TAGGEDVALUE_PERSISTENCE_COLUMN = umlProfile > .getString("TAGGEDVALUE_PERSISTENCE_COLUMN"); > > /** > * Represents a SQL table column length > */ > public static final String TAGGEDVALUE_PERSISTENCE_COLUMN_LENGTH = umlProfile > .getString("TAGGEDVALUE_PERSISTENCE_COLUMN_LENGTH"); > > } > ---------------------------------------------------------------------------- ---- > # UMLProfile > > # Stereotypes > STEREOTYPE_ENTITY=Entity > STEREOTYPE_FINDER_METHOD=FinderMethod > STEREOTYPE_IDENTIFIER=PrimaryKey > STEREOTYPE_SERVICE=Service > STEREOTYPE_EXCEPTION=Exception > STEREOTYPE_APPLICATION_EXCEPTION=ApplicationException > STEREOTYPE_UNEXPECTED_EXCEPTION=UnexpectedException > STEREOTYPE_EXCEPTION_REF=ExceptionRef > > # Taggedvalues > TAGGEDVALUE_DOCUMENTATION=documentation > [EMAIL PROTECTED] > [EMAIL PROTECTED] > [EMAIL PROTECTED] > ------------------------------------------------------- This SF.Net email sponsored by Black Hat Briefings & Training. Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com _______________________________________________ Andromda-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/andromda-user