PageRenderTime 41ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/src/jade/extract/Application.cpp

https://gitlab.com/jadelab/jadegit
C++ | 139 lines | 124 code | 12 blank | 3 comment | 2 complexity | f330ac7e2d2c4c0f60c8563fe0d5f150 MD5 | raw file
  1. #include "Schema.h"
  2. #include "DataMapper.h"
  3. #include "EntityRegistration.h"
  4. #include <jadegit/data/JadeWebServiceManager.h>
  5. #include <jadegit/data/RootSchema/ApplicationMeta.h>
  6. #include <jadegit/data/RootSchema/JadeWebServiceManagerMeta.h>
  7. using namespace JadeGit::Data;
  8. namespace JadeGit::Extract
  9. {
  10. static DataMapper<ApplicationMeta> applicationMapper(DSKAPPLICATION, &RootSchema::application, {
  11. {PRP_Application___overridePatchNumber, nullptr},
  12. {PRP_Application__aboutFormName, new DataProperty(&ApplicationMeta::aboutFormName)},
  13. {PRP_Application__consoleMemRefs, nullptr},
  14. {PRP_Application__defaultLocaleId, new DataProperty(&ApplicationMeta::defaultLocaleId)},
  15. {PRP_Application__internetPipe, nullptr},
  16. {PRP_Application__internetPipeName, new DataProperty(&ApplicationMeta::internetPipeName)},
  17. {PRP_Application__numberOfPipes, new DataProperty(&ApplicationMeta::numberOfPipes)},
  18. {PRP_Application__propertyBag, nullptr},
  19. {PRP_Application__restServicesOptions, nullptr},
  20. {PRP_Application__startupFormName, new DataProperty(&ApplicationMeta::startupFormName)},
  21. {PRP_Application__useXMLConfigFile, nullptr},
  22. {PRP_Application__useXMLDocumentParser, nullptr},
  23. {PRP_Application__webAppDirectory, new DataProperty(&ApplicationMeta::webAppDirectory)},
  24. {PRP_Application__webBaseURL, new DataProperty(&ApplicationMeta::webBaseURL)},
  25. {PRP_Application__webDelayBetweenApps, nullptr},
  26. {PRP_Application__webDisplayMessages, new DataProperty(&ApplicationMeta::webDisplayMessages)},
  27. {PRP_Application__webDisplayPreference, new DataProperty(&ApplicationMeta::webDisplayPreference)},
  28. {PRP_Application__webEnabled, nullptr},
  29. {PRP_Application__webEventClasses, nullptr},
  30. {PRP_Application__webFinalizeMethod, nullptr},
  31. {PRP_Application__webInitializeMethod, nullptr},
  32. {PRP_Application__webIsSecure, nullptr},
  33. {PRP_Application__webHomePage, new DataProperty(&ApplicationMeta::webHomePage)},
  34. {PRP_Application__webLogFile, nullptr},
  35. {PRP_Application__webMachineName, new DataProperty(&ApplicationMeta::webMachineName)},
  36. {PRP_Application__webMaxHTMLSize, new DataProperty(&ApplicationMeta::webMaxHTMLSize)},
  37. {PRP_Application__webMessage, nullptr},
  38. {PRP_Application__webMethodExecutionPrefix, nullptr},
  39. {PRP_Application__webQueue, nullptr},
  40. {PRP_Application__webServiceClasses, new DataProperty(&ApplicationMeta::webServiceClasses)},
  41. {PRP_Application__webSession, nullptr},
  42. {PRP_Application__webSessionManager, nullptr},
  43. {PRP_Application__webSessionTimeout, new DataProperty(&ApplicationMeta::webSessionTimeout)},
  44. {PRP_Application__webShowModal, new DataProperty(&ApplicationMeta::webShowModal)},
  45. {PRP_Application__webStartupForm, nullptr},
  46. {PRP_Application__webStartupFormName, nullptr},
  47. {PRP_Application__webStatusLineDisplay, new DataProperty(&ApplicationMeta::webStatusLineDisplay)},
  48. {PRP_Application__webUseHTML32, new DataProperty(&ApplicationMeta::webUseHTML32)},
  49. {PRP_Application__webUseSessionHandling, nullptr},
  50. {PRP_Application__webVirtualDirectory, new DataProperty(&ApplicationMeta::webVirtualDirectory)},
  51. {PRP_Application__webWaitForReply, nullptr},
  52. {PRP_Application_aboutForm, nullptr}, // Don't extract (covered by aboutFormName)
  53. {PRP_Application_appVersion, new DataProperty(&ApplicationMeta::appVersion)},
  54. {PRP_Application_applicationType, new DataProperty(&ApplicationMeta::applicationType)},
  55. {PRP_Application_controlSpacing, new DataProperty(&ApplicationMeta::controlSpacing)},
  56. {PRP_Application_currentLocale, nullptr}, // Don't extract (runtime)
  57. {PRP_Application_currentLocaleInfo, nullptr}, // Don't extract (runtime)
  58. {PRP_Application_defaultApp, nullptr},
  59. {PRP_Application_defaultMdi, new DataProperty(&ApplicationMeta::defaultMdi)},
  60. {PRP_Application_exportedPackages, nullptr},
  61. {PRP_Application_finalizeMethod, new DataProperty(&ApplicationMeta::finalizeMethod)},
  62. {PRP_Application_fontBold, new DataProperty(&ApplicationMeta::fontBold)},
  63. {PRP_Application_fontName, new DataProperty(&ApplicationMeta::fontName)},
  64. {PRP_Application_fontSize, new DataProperty(&ApplicationMeta::fontSize)},
  65. {PRP_Application_formMargin, new DataProperty(&ApplicationMeta::formMargin)},
  66. {PRP_Application_heightSingleLineControl, new DataProperty(&ApplicationMeta::heightSingleLineControl)},
  67. {PRP_Application_helpFile, new DataProperty(&ApplicationMeta::helpFile)},
  68. {PRP_Application_icon, new DataProperty(&ApplicationMeta::icon)},
  69. {PRP_Application_initializeMethod, new DataProperty(&ApplicationMeta::initializeMethod)},
  70. {PRP_Application_jadeWebServiceManager, new DataProperty<ApplicationMeta>(nullptr)},
  71. {PRP_Application_name, nullptr}, // Named on creation
  72. {PRP_Application_printer, nullptr}, // Don't extract (runtime)
  73. {PRP_Application_showBubbleHelp, nullptr}, // Don't extract (runtime)
  74. {PRP_Application_startupForm, nullptr}, // Don't extract (covered by startupFormName)
  75. {PRP_Application_threeDControls, new DataProperty(&ApplicationMeta::threeDControls)},
  76. {PRP_Application_useBorderStyleOnly, new DataProperty(&ApplicationMeta::useBorderStyleOnly)},
  77. {PRP_Application_uuid, nullptr},
  78. {PRP_Application_webMinimumResponseTime, new DataProperty(&ApplicationMeta::webMinimumResponseTime)},
  79. });
  80. static DataMapper<JadeWebServiceManagerMeta> jadeWebServiceManagerMapper(DSKJADEWEBSERVICEMANAGER, &RootSchema::jadeWebServiceManager, {
  81. {PRP_JadeWebServiceManager__allowedSchemes, new DataProperty(&JadeWebServiceManagerMeta::allowedSchemes)},
  82. {PRP_JadeWebServiceManager_name, nullptr}, // Don't extract (not used)
  83. {PRP_JadeWebServiceManager_provider, new DataProperty(&JadeWebServiceManagerMeta::provider)},
  84. {PRP_JadeWebServiceManager_supportLibrary, new DataProperty(&JadeWebServiceManagerMeta::supportLibrary)}
  85. });
  86. class Application : public Entity
  87. {
  88. public:
  89. using Entity::Entity;
  90. void GetDependents(std::set<DskObjectId>& dependents) const override
  91. {
  92. Entity::GetDependents(dependents);
  93. // Direct dependencies
  94. getProperty(PRP_Application_exportedPackages, dependents);
  95. }
  96. std::string getName() const override
  97. {
  98. return getProperty<std::string>(PRP_Application_name);
  99. }
  100. protected:
  101. bool lookup(const Entity* ancestor, const QualifiedName& path) override
  102. {
  103. return Entity::lookup<Schema>(ancestor, path, PRP_Schema__applications);
  104. }
  105. DskObjectId GetParentId() const override
  106. {
  107. return getProperty<DskObjectId>(PRP_Application_schema);
  108. }
  109. };
  110. static EntityRegistration<Application> application(DSKAPPLICATION);
  111. class JadeWebServiceManager : public Object
  112. {
  113. public:
  114. using Object::Object;
  115. protected:
  116. Data::Object* resolve(Data::Assembly& assembly, Data::Component* parent, bool shallow) const override
  117. {
  118. // Resolve existing web service manager
  119. if (auto application = dynamic_cast<Data::Application*>(parent))
  120. if (application->jadeWebServiceManager)
  121. return application->jadeWebServiceManager;
  122. // Default to creating new instance
  123. return Object::resolve(assembly, parent, shallow);
  124. }
  125. };
  126. static ObjectRegistration<JadeWebServiceManager> jadeWebServiceManager(DSKJADEWEBSERVICEMANAGER);
  127. }