<commit_before>/*!
 * ${copyright}
 */

// Provides control sap.ui.core.mvc.XMLView.
sap.ui.define([
	"sap/ui/thirdparty/jquery",
	"./View",
	"./XMLViewRenderer",
	"./ViewType",
	"sap/base/util/merge",
	"sap/ui/base/ManagedObject",
	"sap/ui/core/XMLTemplateProcessor",
	"sap/ui/core/Control",
	"sap/ui/core/RenderManager",
	"sap/ui/core/cache/CacheManager",
	"sap/ui/model/resource/ResourceModel",
	"sap/ui/util/XMLHelper",
	"sap/base/strings/hash",
	"sap/base/Log",
	"sap/base/util/LoaderExtensions",
	"sap/ui/performance/trace/Interaction",
	"sap/ui/core/Core" // to ensure correct behaviour of sap.ui.getCore()
],
	function(
		jQuery,
		View,
		XMLViewRenderer,
		ViewType,
		merge,
		ManagedObject,
		XMLTemplateProcessor,
		Control,
		RenderManager,
		Cache,
		ResourceModel,
		XMLHelper,
		hash,
		Log,
		LoaderExtensions,
		Interaction
	) {
	"use strict";

	// actual constants
	var RenderPrefixes = RenderManager.RenderPrefixes,
		sXMLViewCacheError = "XMLViewCacheError",
		notCacheRelevant = {};

	/**
	 * Dummy control for after rendering notification before onAfterRendering of
	 * child controls of the XMLView is called
	 *
	 * @extends sap.ui.core.Control
	 * @alias sap.ui.core.mvc.XMLAfterRenderingNotifier
	 * @private
	 */
	var XMLAfterRenderingNotifier = Control.extend("sap.ui.core.mvc.XMLAfterRenderingNotifier", {
		metadata: {
			library: "sap.ui.core"
		},
		renderer: {
			apiVersion: 2,
			render: function(oRM, oControl) {
				oRM.text(""); // onAfterRendering is only called if control produces output
			}
		}
	});

	/**
	 * Constructor for a new <code>XMLView</code>.
	 *
	 * <strong>Note:</strong> Application code shouldn't call the constructor directly, but rather use the factory
	 * {@link sap.ui.core.mvc.XMLView.create XMLView.create} or {@link sap.ui.core.mvc.View.create View.create}
	 * with type {@link sap.ui.core.mvc.ViewType.XML XML}. The factory provides more features than the
	 * constructor (e.g. caching and preprocessing) and simplifies asynchronous loading of a view.
	 * Future features might only be available when using the factory.
	 *
	 * @param {string} [sId] ID for the new view, generated automatically if no ID is given
	 * @param {object} [mSettings] Initial settings for the new view
	 *
	 * @class
	 * A View defined using XML and, optionally, pure HTML markup.
	 *
	 * <strong>Note:</strong><br>
	 * Be aware that modifications of the content aggregation of this control are not supported due to technical reasons.
	 * This includes calls to all content modifying methods like <code>addContent></code> etc., but also the implicit
	 * removal of controls contained by the content aggregation. For example the destruction of a Control via the <code>
	 * destroy</code> method. All functions can be called but may not work properly or lead to unexpected side effects.
	 *
	 * <strong>Note:</strong><br>
	 * On root level, you can only define content for the default aggregation, e.g. without adding the <code>&lt;content&gt;</code> tag. If
	 * you want to specify content for another aggregation of a view like <code>dependents</code>, place it in a child
	 * control's dependents aggregation or add it by using {@link sap.ui.core.mvc.XMLView#addDependent}.
	 *
	 * @extends sap.ui.core.mvc.View
	 * @version ${version}
	 *
	 * @public
	 * @alias sap.ui.core.mvc.XMLView
	 * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
	 */
	var XMLView = View.extend("sap.ui.core.mvc.XMLView", /** @lends sap.ui.core.mvc.XMLView.prototype */ {
		metadata : {<commit_msg>[INTERNAL] sap.ui.core.mvc.XMLView: document special treatment of element binding and style class<commit_after>/*!
 * ${copyright}
 */

// Provides control sap.ui.core.mvc.XMLView.
sap.ui.define([
	"sap/ui/thirdparty/jquery",
	"./View",
	"./XMLViewRenderer",
	"./ViewType",
	"sap/base/util/merge",
	"sap/ui/base/ManagedObject",
	"sap/ui/core/XMLTemplateProcessor",
	"sap/ui/core/Control",
	"sap/ui/core/RenderManager",
	"sap/ui/core/cache/CacheManager",
	"sap/ui/model/resource/ResourceModel",
	"sap/ui/util/XMLHelper",
	"sap/base/strings/hash",
	"sap/base/Log",
	"sap/base/util/LoaderExtensions",
	"sap/ui/performance/trace/Interaction",
	"sap/ui/core/Core" // to ensure correct behaviour of sap.ui.getCore()
],
	function(
		jQuery,
		View,
		XMLViewRenderer,
		ViewType,
		merge,
		ManagedObject,
		XMLTemplateProcessor,
		Control,
		RenderManager,
		Cache,
		ResourceModel,
		XMLHelper,
		hash,
		Log,
		LoaderExtensions,
		Interaction
	) {
	"use strict";

	// actual constants
	var RenderPrefixes = RenderManager.RenderPrefixes,
		sXMLViewCacheError = "XMLViewCacheError",
		notCacheRelevant = {};

	/**
	 * Dummy control for after rendering notification before onAfterRendering of
	 * child controls of the XMLView is called
	 *
	 * @extends sap.ui.core.Control
	 * @alias sap.ui.core.mvc.XMLAfterRenderingNotifier
	 * @private
	 */
	var XMLAfterRenderingNotifier = Control.extend("sap.ui.core.mvc.XMLAfterRenderingNotifier", {
		metadata: {
			library: "sap.ui.core"
		},
		renderer: {
			apiVersion: 2,
			render: function(oRM, oControl) {
				oRM.text(""); // onAfterRendering is only called if control produces output
			}
		}
	});

	/**
	 * Constructor for a new <code>XMLView</code>.
	 *
	 * <strong>Note:</strong> Application code shouldn't call the constructor directly, but rather use the factory
	 * {@link sap.ui.core.mvc.XMLView.create XMLView.create} or {@link sap.ui.core.mvc.View.create View.create}
	 * with type {@link sap.ui.core.mvc.ViewType.XML XML}. The factory provides more features than the
	 * constructor (e.g. caching and preprocessing) and simplifies asynchronous loading of a view.
	 * Future features might only be available when using the factory.
	 *
	 * @param {string} [sId] ID for the new view, generated automatically if no ID is given
	 * @param {object} [mSettings] Initial settings for the new view
	 *
	 * @class
	 * A View defined using XML and, optionally, pure HTML markup.
	 *
	 * <strong>Note:</strong><br>
	 * Be aware that modifications of the content aggregation of this control are not supported due to technical reasons.
	 * This includes calls to all content modifying methods like <code>addContent></code> etc., but also the implicit
	 * removal of controls contained by the content aggregation. For example the destruction of a Control via the <code>
	 * destroy</code> method. All functions can be called but may not work properly or lead to unexpected side effects.
	 *
	 * <strong>Note:</strong><br>
	 * On root level, you can only define content for the default aggregation, e.g. without adding the <code>&lt;content&gt;</code> tag. If
	 * you want to specify content for another aggregation of a view like <code>dependents</code>, place it in a child
	 * control's dependents aggregation or add it by using {@link sap.ui.core.mvc.XMLView#addDependent}.
	 *
	 * <strong>Note:</strong><br>
	 * The XML view offers special handling for context binding and style classes.
	 * You can specify them via the <code>binding</code> and <code>class</code> attributes on a control's XML node.
	 * Please be aware that these attributes are not properties of the respective controls and thus
	 * are not supported by a control's constructor.
	 * For more information, see {@link topic:91f05e8b6f4d1014b6dd926db0e91070 Context Binding (Element Binding)}
	 * and {@link topic:b564935324f449209354c7e2f9903f22 Using CSS Style Sheets in XML Views}.
	 *
	 * @extends sap.ui.core.mvc.View
	 * @version ${version}
	 *
	 * @public
	 * @alias sap.ui.core.mvc.XMLView
	 * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
	 */
	var XMLView = View.extend("sap.ui.core.mvc.XMLView", /** @lends sap.ui.core.mvc.XMLView.prototype */ {
		metadata : {
{'fraction_non_alphanumeric': 0.11734563156546246, 'fraction_numerical': 0.006789648987957981, 'mean_word_length': 3.9348925410872315, 'pattern_counts': {'":': 0, '<': 46, '<?xml version=': 0, '>': 48, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7312451', 'n_tokens_mistral': 2586, 'n_tokens_neox': 2408, 'n_words': 752}