JVMField with primitive type [message #894994] |
Wed, 11 July 2012 11:10 |
|
Hi,
i am trying to create a JVMField with a JVMTypeReference to a primitive boolean type.
Did many approaches, but all ended in exceptions due to not resolvable types.
I tried the following with different types of JVMTypeReference:
JvmPrimitiveType primitiveType = typesFactory.createJvmPrimitiveType();
primitiveType.setSimpleName("boolean");
JvmParameterizedTypeReference primitiveReference = typesFactory
.createJvmParameterizedTypeReference();
primitiveReference.setType(primitiveType);
JvmField field = typesFactory.createJvmField();
field.setSimpleName(name);
field.setVisibility(JvmVisibility.PRIVATE);
field.setType(primitiveReference);
I also inspected the created type reference from domainModel-example. But got no results.
Can anybody point me to an example or something else that i could browser deeper in that topic?
Btw. creating fields with Object-Types is really easy and straight forward.
Thanks a lot,
Florian
|
|
|
|
Re: JVMField with primitive type [message #895002 is a reply to message #894996] |
Wed, 11 July 2012 11:32 |
|
org.eclipse.xtext.common.types.util.Primitives solves the Problem:
JvmTypeReference typeRef = newTypeRef(sourceElement, primitiveType,
(JvmTypeReference[]) null);
JvmField result = typesFactory.createJvmField();
result.setSimpleName(name);
result.setVisibility(JvmVisibility.PRIVATE);
result.setType(cloneWithProxies(primitives
.asPrimitiveIfWrapperType(typeRef)));
|
|
|
|
Re: JVMField with primitive type [message #895009 is a reply to message #895002] |
Wed, 11 July 2012 11:49 |
|
Hi Sebastian,
thanks.
Now my result looks like this and works fine:
Class<?> primitiveType = Boolean.TYPE;
JvmTypeReference typeRef = newTypeRef(sourceElement, primitiveType,
(JvmTypeReference[]) null);
JvmField result = typesFactory.createJvmField();
result.setSimpleName(name);
result.setVisibility(JvmVisibility.PRIVATE);
result.setType(cloneWithProxies(typeRef));
associate(sourceElement, result);
return initializeSafely(result, initializer);
The class Primitives is not required anymore.
Thanks,
Florian
|
|
|
Powered by
FUDForum. Page generated in 0.03014 seconds