You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Kelvin Goodson (JIRA)" <tu...@ws.apache.org> on 2007/10/23 15:40:51 UTC

[jira] Updated: (TUSCANY-1780) [JAVA-SDO] Incorrect generation of class with default value for a list

     [ https://issues.apache.org/jira/browse/TUSCANY-1780?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kelvin Goodson updated TUSCANY-1780:
------------------------------------

    Attachment: SDOClass.java

As a checkpoint in investigating this issue I'm attaching a sanitised version of SDOClass.java  for debug purposes which is logically equivalent to the status quo.

Here's where I've got to --- At line 530 of this file we create the static defaults of variables,  be they single instance or list type.  So the one call to 
	stringBuffer.append(genFeature.getStaticDefaultValue());
is used to handle thing like

protected static final String VALUE_DEFAULT_ = null;
protected static final boolean DISPLAYABLE_DEFAULT_ = false;

as well as the case in hand.

The differential logic for creating the string is found in guarded code portions of GenDataTypeImpl#getStaticValue (as reached from GenFeatureImpl#getStaticDefaultValue()) and it is there that the "createFromString" code that is in error is generated.

The problem as I see it at the moment is that all that logic is bound up in one single EMF method, containing some code that I want,  and some that I don't.

It's not clear to me at the moment whether I need to add guards into SDOClass which replicate the fairly detailed logic in the calling stack  to avoid the call to getFeature.getStaticDefaultValue() in the circumstances when it produces the erroneous code (providing an alternative generation in those circumstances),  or whether there is some better means of influencing the output.

> [JAVA-SDO] Incorrect generation of class with default value for a list
> ----------------------------------------------------------------------
>
>                 Key: TUSCANY-1780
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1780
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SDO Tools
>    Affects Versions: Java-SDO-1.0, Java-SDO-Next
>         Environment: Windows XP, JRE 1.4.2 and JRE 1.5
>            Reporter: Chris Mildebrandt
>            Priority: Critical
>             Fix For: Java-SDO-Next
>
>         Attachments: Address.xsd, Address2.xsd, SDOClass.java
>
>
> Hello,
> There seems to be a problem when generating static classes when lists are involved. I have the following lines in my schema:
> <xsd:attribute name="categoryType" type="address:CategoryType" use="required" default="myCat"/>
> <simpleType name="CategoryType">
>     <list itemType="category" />
> </simpleType>
> This generates the following line in the impl class:
> protected static final Object CATEGORY_TYPE_DEFAULT_ = ((EFactory)ModelFactory.INSTANCE).createFromString(ModelPackageImpl.eINSTANCE.getObject(), "myCat");
> The class ModelPackageImpl doesn't exist.
> I've tried this with the 1.0 version of SDO and a version I built today.
> Let me know if you need any more information. Thanks,
> -Chris

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org