Form linkage method, terminal equipment and storage medium

By configuring strings to realize form linkage relationships, the complexity and maintenance problems of form linkage in the existing technology are solved, flexibility and response speed are improved, and it is suitable for scenarios where form item status is dynamically adjusted.

CN119201261APending Publication Date: 2024-12-27XIAMEN MILESIGHT IOT CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411034657.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-07-30
Publication Date
2024-12-27

AI Technical Summary

Technical Problem

The existing form linkage implementation method relies on hard-coded logic, resulting in complex code, difficulty in maintaining, lack of flexibility and scalability, difficulty in dealing with complex business needs, slow response speed, affecting user experience.

Method used

By configuring strings in a specific format to achieve linkage between form items, developers only need to write and maintain parsing logic, and the conditional rules are concentrated in string configuration. When modifying and expanding, they only need to update the string configuration to simplify the implementation process. , supports complex conditional logic and real-time response.

Benefits of technology

It improves the flexibility and maintenance of forms, simplifies the configuration and expansion of form linkage, improves user experience, supports complex business needs, and achieves real-time response.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119201261A_ABST
    Figure CN119201261A_ABST
Patent Text Reader

Abstract

The invention relates to a form linkage method, terminal equipment and a storage medium. The method comprises the steps that a form component and non-forbidden conditions of all options in the form component are configured; when the form component or each option is selected, whether the form component or each option is disabled or not is determined based on the configured non-forbidden condition; in the configuration of the non-forbidden conditions of all options in the form component, the non-forbidden conditions of different options contained in the form component are separated through a first separator, and values corresponding to the options, different condition groups contained in the non-forbidden conditions corresponding to the options and logic relations between the condition groups are separated through a second separator. Different conditions contained in the condition group are separated through a logical relation; in the configuration of the non-forbidden conditions of the form component, different condition groups contained in the non-forbidden conditions and logic relations between the condition groups are separated through third separators, and different conditions contained in the condition groups are separated through logic relations. According to the invention, the linkage relationship between the form items is realized, and the flexibility and maintainability of the form are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of form applications, and in particular to a form linkage method, terminal equipment and storage medium. Background Art

[0002] In modern applications, forms are one of the main ways for users to interact with the system. The form linkage function improves the user experience by dynamically adjusting the status of form items (such as enabling, disabling, showing, hiding, etc.). However, existing form linkage implementations usually rely on hard-coded logic, resulting in complex code, difficult maintenance, and lack of flexibility and scalability.

[0003] Traditional methods require developers to write complex conditional judgment codes for each form item, which not only increases the development workload, but also easily introduces errors and reduces the maintainability and scalability of the system. In addition, in existing solutions, the configuration of form linkage usually requires modifying the underlying code, which makes maintenance and expansion difficult, and it is difficult to cope with complex business needs. The slow response speed also affects the user experience. Therefore, there is an urgent need for a more efficient, flexible and easy-to-maintain method to manage and implement linkage relationships in forms. Summary of the invention

[0004] In order to solve the above problems, the present invention proposes a form linkage method, a terminal device and a storage medium.

[0005] The specific plan is as follows:

[0006] A form linkage method comprises the following steps:

[0007] Configure the non-disable conditions of the form component and the non-disable conditions of each option in the form component; when selecting the form component, determine whether the form component is disabled based on the configured non-disable conditions of the form component; when selecting each option in the form component, determine whether each option is disabled based on the configured non-disable conditions of each option;

[0008] In the configuration of non-disabled conditions of each option in the form component, the non-disabled conditions of different options contained in the form component are separated by a first separator, the value corresponding to the option, the different condition groups contained in the non-disabled conditions corresponding to the option and the logical relationship between the condition groups are separated by a second separator, and the different conditions contained in the condition group are separated by a logical relationship symbol;

[0009] In the configuration of the non-disabled condition of the form component, different condition groups contained in the non-disabled condition and the logical relationship between the condition groups are separated by the third separator, and different conditions contained in the condition group are separated by the logical relationship symbol.

[0010] Furthermore, the first delimiter is a line feed character, the second delimiter is a symbol “$”, and the third delimiter is a line feed character.

[0011] Furthermore, the logical relationship between the condition groups includes logical AND and logical OR, and the default logical relationship is logical AND; when the logical relationship between the condition groups is the default logical relationship, the corresponding configuration content of the non-disabled condition is empty.

[0012] Furthermore, the conditions included in the condition group distinguish the dependency relationship between the dependent items and the dependent values ​​through logical symbols.

[0013] Furthermore, if the dependent value corresponding to the condition includes multiple values, different values ​​are separated by a fourth separator.

[0014] Furthermore, if the dependency corresponding to the condition is of array type, and the values ​​of a certain attribute corresponding to different objects in the array are mutually exclusive, then when configuring the condition, its dependencies include, in addition to the array name and the corresponding attribute name, an identifier for identifying this type of situation, and the dependency relationship between the dependency and the dependent value is set to not equal, and the dependent value is set to the value corresponding to the option.

[0015] A form linkage terminal device comprises a processor, a memory and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of the method described above in the embodiment of the present invention are implemented.

[0016] A computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the method described above in an embodiment of the present invention are implemented.

[0017] The present invention adopts the above technical solution, and realizes the linkage relationship between form items by parsing a string in a specific format. Developers only need to write and maintain a small amount of parsing logic, and do not need to write complex conditional judgment code for each form item. All conditional rules are concentrated in the string configuration. When modifying and expanding, only the string configuration needs to be updated, which greatly simplifies the implementation process, not only improves the flexibility of the form, but also facilitates maintenance and expansion. This embodiment is suitable for various applications that require form linkage functions, especially scenarios that require dynamic adjustment of form item status. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Figure 1 Shown is a flow chart of a method according to a first embodiment of the present invention.

[0019] Figure 2 Shown is a schematic diagram of non-disabled conditions for each option of the secondary interface attribute in this embodiment.

[0020] Figure 3 Shown is a schematic diagram of various options included in the working mode attribute in this embodiment.

[0021] Figure 4 The figure shows various options included in the primary interface and secondary interface attributes in this embodiment.

[0022] Figure 5 The figure shows the property configuration interface of the object recipient1 in this embodiment.

[0023] Figure 6 The figure shows the property configuration interface of the object recipient2 in this embodiment.

[0024] Figure 7 The figure shows the property configuration interface of the object recipient3 in this embodiment. DETAILED DESCRIPTION

[0025] To further illustrate various embodiments, the present invention provides drawings. These drawings are part of the disclosure of the present invention, which are mainly used to illustrate the embodiments and can be used in conjunction with the relevant descriptions in the specification to explain the operating principles of the embodiments. With reference to these contents, ordinary technicians in this field should be able to understand other possible implementations and advantages of the present invention.

[0026] The present invention will now be further described with reference to the accompanying drawings and specific implementation methods.

[0027] Embodiment 1:

[0028] The embodiment of the present invention provides a form linkage method, such as Figure 1 As shown, the method comprises the following steps:

[0029] S1: Configure the non-disable conditions of the form component and the non-disable conditions of each option in the form component.

[0030] (1) Non-disabled conditions for each option in the form component

[0031] Each option has one or more preconditions (i.e. non-disabled conditions). Only when all these preconditions are met will the option be enabled, otherwise it will be disabled. This mechanism ensures the linkage between form items and dynamically adjusts the availability of options, thereby improving the user experience and the intelligence level of the form.

[0032] The configuration rules of the non-disabled conditions of each option in the form component of this embodiment include:

[0033] 1) The non-disabled conditions of different options contained in the form component are separated by the first separator (such as a newline character \n) (ie, each line represents a non-disabled condition of an option).

[0034] 2) The value corresponding to the option, the different condition groups contained in the non-disabled condition corresponding to the option, and the logical relationship between the condition groups are separated by a second separator (such as a dollar sign $).

[0035] In this embodiment, the logical relationship between the condition groups is set before each condition group included in the non-disabled condition, and the value corresponding to the option is set before the logical relationship between the condition groups.

[0036] In this embodiment, the logical relationship between the condition groups includes logical AND (OR) and logical OR (AND), and the default logical relationship is logical AND; when the logical relationship between the condition groups is the default logical relationship, the corresponding configuration content of the non-disabled condition is empty.

[0037] 3) Use logical relationship symbols (such as &, ||, etc.) to separate different conditions contained in the condition group.

[0038] The conditions included in the condition group of this embodiment use logical symbols (such as "=", "!=") to distinguish the dependency relationship between the dependency item and the dependency value. If the dependency value corresponding to the condition includes multiple values, different values ​​are separated by a fourth separator (such as a comma ",").

[0039] The following example illustrates the above configuration rules:

[0040] 0$logicalRelation=OR$wlan.workMode=0,1&linkBackup.primaryLink.type=1$wlan.workMode=1&linkBackup.primaryLink.type=2

[0041] 1$logicalRelation=OR$wlan.workMode=0,1&linkBackup.primaryLink.type=0$wlan.workMode=1&linkBackup.primaryLink.type=2

[0042] 2$wlan.workMode=1&linkBackup.primaryLink.type=0,1

[0043] The semantic analysis of the above rule example 1 is as follows:

[0044] ●Option value: 0;

[0045] ●Conditional logic: OR;

[0046] ●Condition description:

[0047] This option (value 0) is enabled if any of the following conditions are met:

[0048] a. The first set of conditions:

[0049] wlan.workMode is equal to 0 or 1;

[0050] ■ And linkBackup.primaryLink.type is equal to 1.

[0051] b. The second set of conditions:

[0052] ■wlan.workMode is equal to 1.

[0053] ■And linkBackup.primaryLink.type is equal to 2.

[0054] In other words, option 0 is enabled in any of the following situations:

[0055] ●When wlan.workMode is 0 or 1 and linkBackup.primaryLink.type is 1;

[0056] ●Or when wlan.workMode is 1 and linkBackup.primaryLink.type is 2.

[0057] The parsing methods for option values ​​1 and 2 are similar. It should be noted that for option value 2, its logical relationship item is empty, which means it is the default logical relationship, that is, logical AND.

[0058] The following is a specific example to illustrate the situation of the above rule example 1. Figure 2 The following table shows the non-disabled conditions for each option of the Secondary Interface property. Figure 3 The Work Mode property is shown, which is the WLAN type. In the figure, the AP type option is selected. Figure 4 In the Main Interface properties shown, select Cellular. Figure 2 It can be obtained from the non-disabled conditions that when the WLAN type is AP and the primary interface is Cellular, the secondary interface can be WAN, and Cellular and WLAN are disabled (i.e. Figure 4 The Cellular and WLAN options in the Secondary Interfaces section are indicated by light gray as unavailable.)

[0059] Furthermore, when the dependency corresponding to the condition is of array type, and the values ​​of a certain attribute corresponding to different objects in the array are mutually exclusive, then when configuring the condition, its dependencies include, in addition to the array name and the corresponding attribute name, an identifier for identifying this type of situation, and the dependency relationship between the dependency and the dependent value is set to not equal, and the dependent value is set to the value corresponding to the option.

[0060] Mutually exclusive relationship means that when the value of a property of an object in the array is A, the value of the property of other objects cannot be A. For example, rule example 2: 3$recipient.__item.protocol! = 3, where 3 is the option value, recipient is the array name, protocol is the property name contained in the array recipient, and _item is the identifier. This rule means that when the value of the recipient property of other objects in the array except the current object cannot be 3, the option value 3 is optional and not disabled, otherwise it is disabled and cannot be selected.

[0061] The following is a specific example to illustrate the situation of the above rule example 2. Figure 5-7 The array recipient contains three objects: recipient1, recipient2, and recipient3. The BACnet option of its protocol attribute is mutually exclusive. For example, Figure 6 When the BACnet option is optional, the corresponding Figure 5 and Figure 7 The BACnet options in the table are all in an unselectable state (disabled state, indicated by light gray).

[0062] (2) Non-disable conditions for form components

[0063] Each form component has one or more preconditions. Only when all these preconditions are met will the form component be displayed, otherwise it will be hidden. This mechanism ensures the dynamic display of form components. Only when specific conditions are met will the relevant components be displayed, making the form more intelligent and user-friendly.

[0064] The configuration rules of the non-disabled conditions of the form component in this embodiment include:

[0065] 1) Different condition groups contained in non-disabled conditions and the logical relationship between condition groups are separated by a third separator (such as a newline character \n) (ie, each line represents a condition group).

[0066] In this embodiment, the logical relationship between the condition groups is set before each condition group included in the non-disabled conditions.

[0067] In this embodiment, the logical relationship between the condition groups includes logical AND (OR) and logical OR (AND), and the default logical relationship is logical AND; when the logical relationship between the condition groups is the default logical relationship, the corresponding configuration content of the non-disabled condition is empty.

[0068] 2) Use logical relationship symbols (such as &, ||, etc.) to separate different conditions contained in the condition group.

[0069] The conditions included in the condition group of this embodiment use logical symbols (such as "=", "!=") to distinguish the dependency relationship between the dependency item and the dependency value. If the dependency value corresponding to the condition includes multiple values, different values ​​are separated by a fourth separator (such as a comma ",").

[0070] The above configuration rules are explained below through rule example 3 and rule example 4.

[0071] Rule Example 3:

[0072] logicalRelation=OR

[0073] ethernet.accessInternet=1ðernet.dhcpClient.usePeerDns=0

[0074] ethernet.accessInternet=2ðernet.pppoe.usePeerDns=0

[0075] ethernet.accessInternet=0

[0076] The semantic analysis of the above rule example 3 is as follows:

[0077] Logical relationship: The top-level logical relationship is OR, which means that the relationship between the condition groups is logical OR. If any one of the condition groups is met, the overall condition is met.

[0078] Condition Groups: There are three condition groups, each of which contains one or more specific conditions.

[0079] Condition Group 1:

[0080] 1. Includes two specific conditions:

[0081] a.Condition 1:

[0082] 1. Dependency: =;

[0083] 2. Dependent fields: ethernet.accessInternet;

[0084] 3. Dependency value: 1;

[0085] 4. Explanation: The value of the ethernet.accessInternet field must be equal to 1.

[0086] b. Condition 2:

[0087] 1. Dependency: =;

[0088] 2. Dependency field: ethernet.dhcpClient.usePeerDns;

[0089] 3. Dependency value: 0;

[0090] 4. Explanation: The value of the ethernet.dhcpClient.usePeerDns field must be equal to 0.

[0091] 2. The relationship between the two conditions is logical AND, which means that both conditions must be met. Condition Group 2:

[0092] 1. Includes two specific conditions:

[0093] a.Condition 1:

[0094] 1. Dependency: =;

[0095] 2. Dependent fields: ethernet.accessInternet;

[0096] 3. Dependency value: 2;

[0097] 4. Explanation: The value of the ethernet.accessInternet field must be equal to 2.

[0098] b. Condition 2:

[0099] 1. Dependency: =;

[0100] 2. Dependency field: ethernet.pppoe.usePeerDns;

[0101] 3. Dependency value: 0;

[0102] 4. Explanation: The value of the ethernet.pppoe.usePeerDns field must be equal to 0.

[0103] 2. The relationship between the two conditions is logical AND, which means that both conditions must be met. Condition Group 3:

[0104] 1. Include a specific condition:

[0105] a.Condition 1:

[0106] 1. Dependency: =;

[0107] 2. Dependent fields: ethernet.accessInternet;

[0108] 3. Dependency value: 0;

[0109] 4. Explanation: The value of the ethernet.accessInternet field must be equal to 0. Summary: The logical relationship of the overall condition is OR, which means that any one of the following three groups of conditions is met:

[0110] 1. The value of the ethernet.accessInternet field is equal to 1 and the value of the ethernet.dhcpClient.usePeerDns field is equal to 0.

[0111] 2. The value of the ethernet.accessInternet field is equal to 2 and the value of the ethernet.pppoe.usePeerDns field is equal to 0.

[0112] 3.The value of the ethernet.accessInternet field is equal to 0.

[0113] Rule Example 4:

[0114] packetforward.enable=1

[0115] packetforward.type=1,2,3,4,5,6,7

[0116] The semantic analysis of the above rule example 4 is as follows:

[0117] Logical relationship: The top-level logical relationship is empty, indicating the default logical relationship, namely logical AND, which means the relationship between all condition groups is logical AND. If all condition groups are met, the overall condition is met.

[0118] Condition Group: There is one condition group, which contains two specific conditions.

[0119] Condition Group 1:

[0120] 1. Includes two specific conditions:

[0121] a.Condition 1:

[0122] 1. Dependency: =;

[0123] 2. Dependency field: packetforward.enable;

[0124] 3. Dependency value: 1;

[0125] 4. Explanation: The value of the packetforward.enable field must be equal to 1.

[0126] b. Condition 2:

[0127] 1. Dependency: =;

[0128] 2. Dependent field: packetforward.type;

[0129] 3. Dependency value: 1, 2, 3, 4, 5, 6, 7;

[0130] 4. Explanation: The value of the packetforward.type field must be equal to 1, 2, 3, 4, 5,

[0131] Any value between 6 and 7.

[0132] 2. The relationship between the two conditions is logical AND, which means that both conditions must be met. Summary: The logical relationship of the overall condition is AND, which means that the following two specific conditions must be met:

[0133] 1.The value of the packetforward.enable field is equal to 1.

[0134] 2.The value of the packetforward.type field is equal to any value of 1, 2, 3, 4, 5, 6, or 7.

[0135] In other words, packetforward.enable must be enabled (value 1), and packetforward.type must be any value between 1 and 7. Only when both conditions are met will the entire conditional group be true.

[0136] S2: When selecting a form component, determine whether the form component is disabled based on the configured non-disable conditions of the form component; when selecting each option in the form component, determine whether each option is disabled based on the configured non-disable conditions of each option.

[0137] By parsing the configuration content based on the above configuration rules, it can be determined whether each form component and each option can be enabled.

[0138] The embodiments of the present invention have the following beneficial effects:

[0139] (1) Simplicity of configuration

[0140] In existing solutions, the configuration of form linkage usually requires modifying the underlying code, which makes maintenance and expansion difficult. The present invention realizes the linkage relationship between form items by configuring string rules. All conditional rules are concentrated in the string configuration. When modifying and expanding, only the string configuration needs to be updated without modifying the underlying code. This method not only improves the flexibility of the system, but also facilitates maintenance and expansion.

[0141] (2) Complexity of conditional logic

[0142] In the existing solutions, the conditional logic of form linkage is usually relatively simple and difficult to cope with complex business needs. The present invention supports complex conditional logic such as nested conditions and combined conditions to meet more complex business needs. For example, it can support multi-level logical relationships and conditional combinations to adapt to more complex business scenarios.

[0143] (3) High efficiency of real-time response

[0144] In existing solutions, the response speed of form linkage is often slow, which affects the user experience. The present invention can respond to user input in real time through an efficient string parsing process to improve the user experience. The string parsing process is very fast, and the status of the form item can be updated instantly when the user operates, providing a smooth interactive experience.

[0145] Embodiment 2:

[0146] The present invention also provides a form linkage terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps in the above method embodiment of embodiment 1 of the present invention when executing the computer program.

[0147] Further, as an executable solution, the form linkage terminal device can be a computing device such as a desktop computer, a notebook, a PDA, and a cloud server. The form linkage terminal device may include, but is not limited to, a processor and a memory. Those skilled in the art can understand that the composition structure of the above-mentioned form linkage terminal device is only an example of the form linkage terminal device, and does not constitute a limitation on the form linkage terminal device. It may include more or less components than the above-mentioned, or a combination of certain components, or different components. For example, the form linkage terminal device may also include input and output devices, network access devices, buses, etc., and the embodiments of the present invention do not limit this.

[0148] Further, as an executable solution, the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. The processor is the control center of the form linkage terminal device, and uses various interfaces and lines to connect various parts of the entire form linkage terminal device.

[0149] The memory can be used to store the computer program and / or module, and the processor realizes various functions of the form linkage terminal device by running or executing the computer program and / or module stored in the memory, and calling the data stored in the memory. The memory can mainly include a program storage area and a data storage area, wherein the program storage area can store an operating system and at least one application required for a function; the data storage area can store data created according to the use of the mobile phone, etc. In addition, the memory can include a high-speed random access memory, and can also include a non-volatile memory, such as a hard disk, a memory, a plug-in hard disk, a smart memory card (Smart Media Card, SMC), a secure digital (Secure Digital, SD) card, a flash card (Flash Card), at least one disk storage device, a flash memory device, or other volatile solid-state storage devices.

[0150] The present invention also provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the above method in the embodiment of the present invention are implemented.

[0151] If the module / unit integrated in the form linkage terminal device is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present invention implements all or part of the processes in the above-mentioned embodiment method, and can also be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by the processor, the steps of the above-mentioned various method embodiments can be implemented. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may include: any entity or device that can carry the computer program code, recording medium, U disk, mobile hard disk, disk, optical disk, computer memory, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory) and software distribution medium, etc.

[0152] Although the present invention has been specifically shown and described in conjunction with the preferred embodiments, it should be understood by those skilled in the art that various changes may be made to the present invention in form and details without departing from the spirit and scope of the present invention as defined by the appended claims, all of which are within the scope of protection of the present invention.

Claims

1. A form linkage method, characterized in that: The following steps are involved: Configure the non-disable conditions of the form component and the non-disable conditions of each option in the form component; when selecting the form component, determine whether the form component is disabled based on the configured non-disable conditions of the form component; when selecting each option in the form component, determine whether each option is disabled based on the configured non-disable conditions of each option; In the configuration of non-disabled conditions of each option in the form component, the non-disabled conditions of different options contained in the form component are separated by a first separator, the value corresponding to the option, the different condition groups contained in the non-disabled conditions corresponding to the option and the logical relationship between the condition groups are separated by a second separator, and the different conditions contained in the condition group are separated by a logical relationship symbol; In the configuration of the non-disabled condition of the form component, different condition groups contained in the non-disabled condition and the logical relationship between the condition groups are separated by the third separator, and different conditions contained in the condition group are separated by the logical relationship symbol.

2. The form linkage method according to claim 1, characterized in that: The first delimiter is a newline character, the second delimiter is the "$" symbol, and the third delimiter is a newline character.

3. The form linkage method according to claim 1, characterized in that: The logical relationship between condition groups includes logical AND and logical OR. The default logical relationship is logical AND. When the logical relationship between condition groups is the default logical relationship, the corresponding configuration content of the non-disabled condition is empty.

4. The form linkage method according to claim 1, characterized in that: The conditions contained in a condition group distinguish the dependency relationship between dependent items and dependent values ​​through logical symbols.

5. The form linkage method according to claim 1, characterized in that: If the dependent value corresponding to the condition includes multiple values, different values ​​are separated by the fourth separator.

6. The form linkage method according to claim 1, characterized in that: If the dependency corresponding to the condition is of array type, and the values ​​of a property corresponding to different objects in the array are mutually exclusive, then when configuring the condition, in addition to the array name and the corresponding property name, its dependencies also include an identifier used to identify this type of situation, and the dependency relationship between the dependency and the dependent value is set to not equal, and the dependent value is set to the value corresponding to the option.

7. A form linkage terminal device, characterized in that: The method comprises a processor, a memory and a computer program stored in the memory and running on the processor, wherein the processor implements the steps of the method according to any one of claims 1 to 6 when executing the computer program.

8. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.