|
Re: Generate toString() method based on EMF [message #549506 is a reply to message #549500] |
Mon, 26 July 2010 22:35 |
Ed Merks Messages: 33140 Registered: July 2009 |
Senior Member |
|
|
This is a multi-part message in MIME format.
--------------050901020409030507050904
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Lars,
There's the following method in the template, so if you're not seeing a
toString method in a particular class' Impl, it's because the class
doesn't generate any fields deemed suitable for use. Generally we try
to use only attribute values. You'd need to be very careful with
references because you might easily end up with infinite recursion...
<%if (!genClass.hasImplementedToStringGenOperation() && isImplementation
&& !genModel.isReflectiveDelegation() && !genModel.isDynamicDelegation()
&& !genClass.getToStringGenFeatures().isEmpty()) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%if (genModel.useClassOverrideAnnotation()) {%>
@Override
<%}%>
public String toString()
{
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
<%{ boolean first = true;%>
<%for (GenFeature genFeature : genClass.getToStringGenFeatures()) {%>
<%if (first) { first = false;%>
result.append(" (<%=genFeature.getName()%>:
");<%=genModel.getNonNLS()%>
<%} else {%>
result.append(", <%=genFeature.getName()%>:
");<%=genModel.getNonNLS()%>
<%}%>
<%if (genFeature.isUnsettable() && !genFeature.isListType()) {%>
<%if (genModel.isVirtualDelegation() &&
!genFeature.isPrimitiveType()) {%>
if
(eVirtualIsSet(<%=genClass.getQualifiedFeatureID(genFeature)% ><%=positiveOffsetCorrection%>))
result.append(eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)% ><%=positiveOffsetCorrection%>));
else result.append("<unset>");<%=genModel.getNonNLS()%>
<%} else {%>
<%if (genClass.isFlag(genFeature)) {%>
<%if (genFeature.isBooleanType()) {%>
if (<%if (genClass.isESetFlag(genFeature))
{%>(<%=genClass.getESetFlagsField(genFeature)%> &
<%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
{%><%=genFeature.getUncapName()%>ESet<%}%>)
result.append((<%=genClass.getFlagsField(genFeature)%> &
<%=genFeature.getUpperName()%>_EFLAG) != 0); else
result.append("<unset>");<%=genModel.getNonNLS()%>
<%} else {%>
if (<%if (genClass.isESetFlag(genFeature))
{%>(<%=genClass.getESetFlagsField(genFeature)%> &
<%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
{%><%=genFeature.getUncapName()%>ESet<%}%>)
result.append(<%=genFeature.getUpperName()%>_EFLAG_VALUES[( <%=genClass.getFlagsField(genFeature)%>
& <%=genFeature.getUpperName()%>_EFLAG) >>>
<%=genFeature.getUpperName()%>_EFLAG_OFFSET]); else
result.append("<unset>");<%=genModel.getNonNLS()%>
<%}%>
<%} else {%>
if (<%if (genClass.isESetFlag(genFeature))
{%>(<%=genClass.getESetFlagsField(genFeature)%> &
<%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
{%><%=genFeature.getUncapName()%>ESet<%}%>)
result.append(<%=genFeature.getSafeName()%>); else
result.append("<unset>");<%=genModel.getNonNLS()%>
<%}%>
<%}%>
<%} else {%>
<%if (genModel.isVirtualDelegation() &&
!genFeature.isPrimitiveType()) {%>
result.append(eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)% ><%=positiveOffsetCorrection%><%if
(!genFeature.isListType() && !genFeature.isReferenceType()){%>,
<%=genFeature.getEDefault()%><%}%>));
<%} else {%>
<%if (genClass.isFlag(genFeature)) {%>
<%if (genFeature.isBooleanType()) {%>
result.append((<%=genClass.getFlagsField(genFeature)%> &
<%=genFeature.getUpperName()%>_EFLAG) != 0);
<%} else {%>
result.append(<%=genFeature.getUpperName()%>_EFLAG_VALUES[( <%=genClass.getFlagsField(genFeature)%>
& <%=genFeature.getUpperName()%>_EFLAG) >>>
<%=genFeature.getUpperName()%>_EFLAG_OFFSET]);
<%}%>
<%} else {%>
result.append(<%=genFeature.getSafeName()%>);
<%}%>
<%}%>
<%}%>
<%}%>
<%}%>
result.append(')');
return result.toString();
}
<%}%>
Lars Vogel wrote:
> Hi,
>
> I have a model based on EMF and generate Java Code from it. Currently
> the generated code does not include a generated toString() method. Is
> it possible to generated one via EMF?
>
> Best regards, Lars
>
--------------050901020409030507050904
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Lars,<br>
<br>
There's the following method in the template, so if you're not seeing a
toString method in a particular class' Impl, it's because the class
doesn't generate any fields deemed suitable for use. Generally we try
to use only attribute values. You'd need to be very careful with
references because you might easily end up with infinite recursion...<br>
<br>
<small><%if (!genClass.hasImplementedToStringGenOperation()
&& isImplementation &&
!genModel.isReflectiveDelegation() &&
!genModel.isDynamicDelegation() &&
!genClass.getToStringGenFeatures().isEmpty()) {%><br>
/**<br>
* <!-- begin-user-doc --><br>
* <!-- end-user-doc --><br>
* @generated<br>
*/<br>
<%if (genModel.useClassOverrideAnnotation()) {%><br>
@Override<br>
<%}%><br>
public String toString()<br>
{<br>
if (eIsProxy()) return super.toString();<br>
<br>
StringBuffer result = new StringBuffer(super.toString());<br>
<%{ boolean first = true;%><br>
<%for (GenFeature genFeature :
genClass.getToStringGenFeatures()) {%><br>
<%if (first) { first = false;%><br>
result.append(" (<%=genFeature.getName()%>:
");<%=genModel.getNonNLS()%><br>
<%} else {%><br>
result.append(", <%=genFeature.getName()%>:
");<%=genModel.getNonNLS()%><br>
<%}%><br>
<%if (genFeature.isUnsettable() &&
!genFeature.isListType()) {%><br>
<%if (genModel.isVirtualDelegation() &&
!genFeature.isPrimitiveType()) {%><br>
if
(eVirtualIsSet(<%=genClass.getQualifiedFeatureID(genF eature)%><%=positiveOffsetCorrection%>) )
result.append(eVirtualGet(<%=genClass.getQualifiedFea tureID(genFeature)%><%=positiveOffsetCorrectio n%>));
else result.append("<unset>");<%=genModel.getNonNLS()%> <br>
<%} else {%><br>
<%if (genClass.isFlag(genFeature)) {%><br>
<%if (genFeature.isBooleanType()) {%><br>
if (<%if (genClass.isESetFlag(genFeature))
{%>(<%=genClass.getESetFlagsField(genFeature)% > &
<%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
{%><%=genFeature.getUncapName()%>ESet&a mp;lt;%}%>)
result.append((<%=genClass.getFlagsField(genFeature)% > &
<%=genFeature.getUpperName()%>_EFLAG) != 0); else
result.append("<unset>");<%=genModel.getNonNLS()%> <br>
<%} else {%><br>
if (<%if (genClass.isESetFlag(genFeature))
{%>(<%=genClass.getESetFlagsField(genFeature)% > &
<%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
{%><%=genFeature.getUncapName()%>ESet&a mp;lt;%}%>)
result.append(<%=genFeature.getUpperName()%>_E FLAG_VALUES[(<%=genClass.getFlagsField(genFeature)%&a mp;gt;
& <%=genFeature.getUpperName()%>_EFLAG) >>>
<%=genFeature.getUpperName()%>_EFLAG_OFFSET]); else
result.append("<unset>");<%=genModel.getNonNLS()%> <br>
<%}%><br>
<%} else {%><br>
if (<%if (genClass.isESetFlag(genFeature))
{%>(<%=genClass.getESetFlagsField(genFeature)% > &
<%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
{%><%=genFeature.getUncapName()%>ESet&a mp;lt;%}%>)
result.append(<%=genFeature.getSafeName()%>); else
result.append("<unset>");<%=genModel.getNonNLS()%> <br>
<%}%><br>
<%}%><br>
<%} else {%><br>
<%if (genModel.isVirtualDelegation() &&
!genFeature.isPrimitiveType()) {%><br>
result.append(eVirtualGet(<%=genClass.getQualifiedFea tureID(genFeature)%><%=positiveOffsetCorrectio n%><%if
(!genFeature.isListType() &&
!genFeature.isReferenceType()){%>,
<%=genFeature.getEDefault()%><%}%&g t;)); <br>
<%} else {%><br>
<%if (genClass.isFlag(genFeature)) {%><br>
<%if (genFeature.isBooleanType()) {%><br>
result.append((<%=genClass.getFlagsField(genFeature)% >
& <%=genFeature.getUpperName()%>_EFLAG) != 0);<br>
<%} else {%><br>
result.append(<%=genFeature.getUpperName()%>_E FLAG_VALUES[(<%=genClass.getFlagsField(genFeature)%&a mp;gt;
& <%=genFeature.getUpperName()%>_EFLAG) >>>
<%=genFeature.getUpperName()%>_EFLAG_OFFSET]); <br>
<%}%><br>
<%} else {%><br>
result.append(<%=genFeature.getSafeName()%>);<br >
<%}%><br>
<%}%><br>
<%}%><br>
<%}%><br>
<%}%><br>
result.append(')');<br>
return result.toString();<br>
}<br>
<br>
<%}%></small><br>
<br>
<br>
Lars Vogel wrote:
<blockquote cite="mid:i2kuj7$dom$1@build.eclipse.org" type="cite">Hi,
<br>
<br>
I have a model based on EMF and generate Java Code from it. Currently
the generated code does not include a generated toString() method. Is
it possible to generated one via EMF?
<br>
<br>
Best regards, Lars
<br>
<br>
</blockquote>
</body>
</html>
--------------050901020409030507050904--
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Re: Generate toString() method based on EMF [message #550291 is a reply to message #549506] |
Thu, 29 July 2010 18:53 |
|
Thank you Ed for the answer.
Question is closed now.
On 27.07.2010 00:35, Ed Merks wrote:
> Lars,
>
> There's the following method in the template, so if you're not seeing a
> toString method in a particular class' Impl, it's because the class
> doesn't generate any fields deemed suitable for use. Generally we try to
> use only attribute values. You'd need to be very careful with references
> because you might easily end up with infinite recursion...
>
> <%if (!genClass.hasImplementedToStringGenOperation() && isImplementation
> && !genModel.isReflectiveDelegation() && !genModel.isDynamicDelegation()
> && !genClass.getToStringGenFeatures().isEmpty()) {%>
> /**
> * <!-- begin-user-doc -->
> * <!-- end-user-doc -->
> * @generated
> */
> <%if (genModel.useClassOverrideAnnotation()) {%>
> @Override
> <%}%>
> public String toString()
> {
> if (eIsProxy()) return super.toString();
>
> StringBuffer result = new StringBuffer(super.toString());
> <%{ boolean first = true;%>
> <%for (GenFeature genFeature : genClass.getToStringGenFeatures()) {%>
> <%if (first) { first = false;%>
> result.append(" (<%=genFeature.getName()%>: ");<%=genModel.getNonNLS()%>
> <%} else {%>
> result.append(", <%=genFeature.getName()%>: ");<%=genModel.getNonNLS()%>
> <%}%>
> <%if (genFeature.isUnsettable() && !genFeature.isListType()) {%>
> <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
> if
> (eVirtualIsSet(<%=genClass.getQualifiedFeatureID(genFeature)% ><%=positiveOffsetCorrection%>))
> result.append(eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)% ><%=positiveOffsetCorrection%>));
> else result.append("<unset>");<%=genModel.getNonNLS()%>
> <%} else {%>
> <%if (genClass.isFlag(genFeature)) {%>
> <%if (genFeature.isBooleanType()) {%>
> if (<%if (genClass.isESetFlag(genFeature))
> {%>(<%=genClass.getESetFlagsField(genFeature)%> &
> <%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
> {%><%=genFeature.getUncapName()%>ESet<%}%>)
> result.append((<%=genClass.getFlagsField(genFeature)%> &
> <%=genFeature.getUpperName()%>_EFLAG) != 0); else
> result.append("<unset>");<%=genModel.getNonNLS()%>
> <%} else {%>
> if (<%if (genClass.isESetFlag(genFeature))
> {%>(<%=genClass.getESetFlagsField(genFeature)%> &
> <%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
> {%><%=genFeature.getUncapName()%>ESet<%}%>)
> result.append(<%=genFeature.getUpperName()%>_EFLAG_VALUES[( <%=genClass.getFlagsField(genFeature)%>
> & <%=genFeature.getUpperName()%>_EFLAG) >>>
> <%=genFeature.getUpperName()%>_EFLAG_OFFSET]); else
> result.append("<unset>");<%=genModel.getNonNLS()%>
> <%}%>
> <%} else {%>
> if (<%if (genClass.isESetFlag(genFeature))
> {%>(<%=genClass.getESetFlagsField(genFeature)%> &
> <%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else
> {%><%=genFeature.getUncapName()%>ESet<%}%>)
> result.append(<%=genFeature.getSafeName()%>); else
> result.append("<unset>");<%=genModel.getNonNLS()%>
> <%}%>
> <%}%>
> <%} else {%>
> <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
> result.append(eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)% ><%=positiveOffsetCorrection%><%if
> (!genFeature.isListType() && !genFeature.isReferenceType()){%>,
> <%=genFeature.getEDefault()%><%}%>));
> <%} else {%>
> <%if (genClass.isFlag(genFeature)) {%>
> <%if (genFeature.isBooleanType()) {%>
> result.append((<%=genClass.getFlagsField(genFeature)%> &
> <%=genFeature.getUpperName()%>_EFLAG) != 0);
> <%} else {%>
> result.append(<%=genFeature.getUpperName()%>_EFLAG_VALUES[( <%=genClass.getFlagsField(genFeature)%>
> & <%=genFeature.getUpperName()%>_EFLAG) >>>
> <%=genFeature.getUpperName()%>_EFLAG_OFFSET]);
> <%}%>
> <%} else {%>
> result.append(<%=genFeature.getSafeName()%>);
> <%}%>
> <%}%>
> <%}%>
> <%}%>
> <%}%>
> result.append(')');
> return result.toString();
> }
>
> <%}%>
>
>
> Lars Vogel wrote:
>> Hi,
>>
>> I have a model based on EMF and generate Java Code from it. Currently
>> the generated code does not include a generated toString() method. Is
>> it possible to generated one via EMF?
>>
>> Best regards, Lars
>>
|
|
|
Powered by
FUDForum. Page generated in 0.03081 seconds