return getStructsCache().get(cacheKey);
}
private StructureDef buildStructure() throws XSDException {
// build StructureDefinition
final StructureDef rootStruct = new StructureDef(getQualifiedName());
for (DataControlDefinitionNode defNode : defNodes) {
// try to find root data node as XSD Element or otherwise as XSD ComplexType
XSDNode rootDataNode = loadRootDataNode(defNode);
if (rootDataNode == null) {
// failure at design time has already been shown as dialog. Quit silently
return null;
}
// have StructureProvider build a StructureDef for root data node (XSD Element or ComplexType)
StructureProvider structProv = defNode.getProviderInstance(StructureProvider.class);
TypeMapper typeMapper = defNode.getProviderInstance(TypeMapper.class);
MovableStructureDefinition structDef =
structProv.buildStructure(rootDataNode, getReturnStructName(rootStruct, defNode), typeMapper);
// create MethodDef with StructureDef from StructureProvider as return value
final MethodDef method = new MethodDef(defNode.getDatacontrolOperation(), rootStruct);
rootStruct.addMethod(method);
// add parameters to method-definition if data provider has dynamic parameters
{
final Set<DynamicParameter> dynamicParams = defNode.getDynamicParams();
if (dynamicParams != null) {