| {{> header}} |
| {{#if (chip_has_client_clusters)}} |
| |
| package chip.devicecontroller; |
| |
| import chip.clusterinfo.CommandParameterInfo; |
| import chip.clusterinfo.InteractionInfo; |
| import java.util.HashMap; |
| import java.util.LinkedHashMap; |
| import java.util.Map; |
| |
| public class ClusterReadMapping { |
| |
| public Map<String, Map<String, InteractionInfo>> getReadAttributeMap() { |
| Map<String, Map<String, InteractionInfo>> readAttributeMap = new HashMap<>(); |
| {{#chip_client_clusters}} |
| Map<String, InteractionInfo> read{{asUpperCamelCase name}}InteractionInfo = new LinkedHashMap<>(); |
| {{#chip_server_cluster_attributes}} |
| {{! TODO: Add support for struct-typed attributes }} |
| {{#unless (isStrEqual chipCallback.name "Unsupported")}} |
| Map<String, CommandParameterInfo> read{{asUpperCamelCase ../name}}{{asUpperCamelCase name}}CommandParams = new LinkedHashMap<String, CommandParameterInfo>(); |
| InteractionInfo read{{asUpperCamelCase ../name}}{{asUpperCamelCase name}}AttributeInteractionInfo = new InteractionInfo( |
| (cluster, callback, commandArguments) -> { |
| ((ChipClusters.{{asUpperCamelCase ../name}}Cluster) cluster).read{{asUpperCamelCase name}}Attribute( |
| ({{#if_in_global_responses}} |
| ChipClusters.{{convertAttributeCallbackTypeToJavaName chipCallback.type}}AttributeCallback |
| {{else}} |
| ChipClusters.{{asUpperCamelCase ../name}}Cluster.{{asUpperCamelCase name}}AttributeCallback |
| {{/if_in_global_responses}}) callback |
| ); |
| }, |
| {{#if isList}} |
| () -> new ClusterInfoMapping.Delegated{{asUpperCamelCase name}}AttributeCallback(), |
| {{else}} |
| () -> new ClusterInfoMapping.Delegated{{convertAttributeCallbackTypeToJavaName chipCallback.type}}AttributeCallback(), |
| {{/if}} |
| read{{asUpperCamelCase ../name}}{{asUpperCamelCase name}}CommandParams |
| ); |
| read{{asUpperCamelCase ../name}}InteractionInfo.put("read{{asUpperCamelCase name}}Attribute", read{{asUpperCamelCase ../name}}{{asUpperCamelCase name}}AttributeInteractionInfo); |
| {{/unless}} |
| {{/chip_server_cluster_attributes}} |
| readAttributeMap.put("{{asLowerCamelCase name}}", read{{asUpperCamelCase name}}InteractionInfo); |
| {{/chip_client_clusters}} |
| return readAttributeMap; |
| } |
| } |
| |
| {{/if}} |