- final Map<?, ?> valueAsMap = (Map<?, ?>) ((List<?>) value).get(0);
- if (valueAsMap.containsKey(ToscaFunctionType.CONCAT.getName())) {
- return FilterValueType.CONCAT;
- }
- if (valueAsMap.containsKey(ToscaFunctionType.GET_ATTRIBUTE.getName())) {
- return FilterValueType.GET_ATTRIBUTE;
- }
- if (valueAsMap.containsKey(ToscaFunctionType.GET_PROPERTY.getName())) {
- return FilterValueType.GET_PROPERTY;
- }
- if (valueAsMap.containsKey(ToscaFunctionType.GET_INPUT.getName())) {
- return FilterValueType.GET_INPUT;
- }
- if (valueAsMap.containsKey("$get_input_ext") ||
- valueAsMap.containsKey("$juel") ||
- valueAsMap.containsKey("$other")) {
- return FilterValueType.CUSTOM;
+ try {
+ final Map<?, ?> valueAsMap = (Map<?, ?>) ((List<?>) value).get(0);
+ FilterValueType filterValueType = getFilterValueType(valueAsMap);
+ if (filterValueType != null) {
+ return filterValueType;
+ }
+ } catch (ClassCastException ex) {
+ return FilterValueType.SEVERAL;