# getUnsatisfiedNonSimpleProperties method

1. @protected

Map<String, Class> getUnsatisfiedNonSimpleProperties(

1. PodDefinition root,
2. PodHolder ph

)

Gets a map of property names to their types that are not satisfied by existing property values and are not simple types.

@param root The pod definition @param ph The pod holder @return Map of property names to their class types

## Implementation

    @protected
    Map<String, Class> getUnsatisfiedNonSimpleProperties(PodDefinition root, PodHolder ph) {
      Map<String, Class> result = {};
      PropertyValues pvs = root.propertyValues;
      final fields = ph.$2.getFields();

      for (final field in fields) {
        String fieldName = field.getName();
        final clazz = field.getReturnClass();

        if (!pvs.contains(fieldName)) {
          // Skip simple properties (primitives, strings, etc.)
          if (clazz.isPrimitive()) {
            continue;
          }

          if (field.isNullable()) {
            // Skip nullable fields
            continue;
          }

          try {
            final currentValue = field.getValue(ph.$1);
            if (currentValue != null) {
              continue;
            }
          } catch (_) {}

          result[fieldName] = clazz;
        } else {
          // Skip if already has property value
        }
      }

      return result;
    }