@Override
    protected void initializeNewInstance(Dissector newInstance) throws InvalidDissectorException {
        if (!(newInstance instanceof UserAgentDissector)) {
            String className = "<<<null>>>";
            if (newInstance != null) {
                className = newInstance.getClass().getCanonicalName();
            }
            throw new InvalidDissectorException("The provided instance of the dissector is a " +
                className + " which is not a UserAgentDissector");
        }
        UserAgentDissector newUserAgentDissector = (UserAgentDissector) newInstance;
        newUserAgentDissector.extraResources = new TreeSet<>(extraResources);
        newUserAgentDissector.allPossibleFieldNames = new ArrayList<>(allPossibleFieldNames);
        newUserAgentDissector.requestedFieldNames = new TreeSet<>(requestedFieldNames);
        allPossibleFieldNames.forEach(newUserAgentDissector::ensureMappingsExistForFieldName);
    }
@param rawParameter For this dissector it is a '|' separated list of resource paths.
udfs/logparser/src/main/java/nl/basjes/parse/useragent/dissector/UserAgentDissector.java