public String getExternalTypeImports() {
        StringBuilder imports = new StringBuilder();
        if(options.containsKey("externalTypes")) {
            Object externalTypes = options.get("externalTypes");
            if(externalTypes instanceof Map) {
                Map<String, Object> externalTypesMap = (Map<String, Object>) externalTypes;
                for (String mspecTypeName : externalTypesMap.keySet()) {
                    Object obj = externalTypesMap.get(mspecTypeName);
                    if(obj instanceof String) {
                        imports.append("import ").append(obj).append(";\n");
                    } else {
                        throw new IllegalArgumentException("Type definition for " + mspecTypeName + " is invalid");
                    }
                }
            }
        }
        return imports.toString();
    }
@param field               this generally only is needed in order to access field attributes such as encoding etc.
@param resultType          the type the resulting expression should have
@param term                the term representing the expression
@param serializerArguments any serializer arguments, which could be referenced in expressions (Needed for getting the type)
@return Java code which does the things defined in 'term'
code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java