Skip to content
Snippets Groups Projects
Commit 615bb007 authored by piotr.kupczyk@id.ethz.ch's avatar piotr.kupczyk@id.ethz.ch
Browse files

BIS-757 : Write Translator to TypeScript - make TypeScript descriptor of the...

BIS-757 : Write Translator to TypeScript - make TypeScript descriptor of the JS facade have only 2 constructors (one without parameters and the other with url)
parent 26ee8796
No related branches found
No related tags found
1 merge request!40SSDM-13578 : 2PT : Database and V3 Implementation - include the new AFS "free"...
......@@ -191,36 +191,46 @@ public class OpenBISExtension extends Extension
List<TsMethodModel> tsConstructors = new ArrayList<>();
for (Constructor<?> constructor : bean.getOrigin().getDeclaredConstructors())
if (OpenBIS.class.equals(bean.getOrigin()))
{
try
tsConstructors.add(new TsMethodModel("new ", TsModifierFlags.None, Collections.emptyList(), Collections.emptyList(),
new TsType.ReferenceType(bean.getName()), null, null));
tsConstructors.add(new TsMethodModel("new ", TsModifierFlags.None, Collections.emptyList(),
Collections.singletonList(new TsParameterModel("url", TsType.String)),
new TsType.ReferenceType(bean.getName()), null, null));
} else
{
for (Constructor<?> constructor : bean.getOrigin().getDeclaredConstructors())
{
List<TsParameterModel> tsConstructorParameter = new ArrayList<>();
for (Parameter constructorParameter : constructor.getParameters())
try
{
TsType tsConstructorParameterType = resolveType(processingContext, bean, constructorParameter.getParameterizedType());
tsConstructorParameter.add(new TsParameterModel(constructorParameter.getName(), tsConstructorParameterType));
}
List<TsParameterModel> tsConstructorParameter = new ArrayList<>();
TsType tsConstructorReturnType;
for (Parameter constructorParameter : constructor.getParameters())
{
TsType tsConstructorParameterType = resolveType(processingContext, bean, constructorParameter.getParameterizedType());
tsConstructorParameter.add(new TsParameterModel(constructorParameter.getName(), tsConstructorParameterType));
}
if (tsBeanTypeParametersWithoutBounds.isEmpty())
{
tsConstructorReturnType = new TsType.ReferenceType(bean.getName());
} else
{
tsConstructorReturnType = new TsType.GenericReferenceType(bean.getName(), tsBeanTypeParametersWithoutBounds);
}
TsType tsConstructorReturnType;
tsConstructors.add(new TsMethodModel("new ", TsModifierFlags.None, tsBeanTypeParametersWithBounds, tsConstructorParameter,
tsConstructorReturnType, null, null));
if (tsBeanTypeParametersWithoutBounds.isEmpty())
{
tsConstructorReturnType = new TsType.ReferenceType(bean.getName());
} else
{
tsConstructorReturnType = new TsType.GenericReferenceType(bean.getName(), tsBeanTypeParametersWithoutBounds);
}
} catch (UnresolvedTypeException e)
{
logger.warning(
"Skipping method " + constructor.getDeclaringClass() + "." + constructor.getName()
+ " as it contains unresolved type: " + e.getType());
tsConstructors.add(new TsMethodModel("new ", TsModifierFlags.None, tsBeanTypeParametersWithBounds, tsConstructorParameter,
tsConstructorReturnType, null, null));
} catch (UnresolvedTypeException e)
{
logger.warning(
"Skipping method " + constructor.getDeclaringClass() + "." + constructor.getName()
+ " as it contains unresolved type: " + e.getType());
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment