@Override
    public Properties getOutputProperties() {
        Properties properties = new Properties();
        properties.put(NAME, getName());
        properties.put(Balances.LEFTNAME, leftName);
        properties.put(Balances.RIGHTNAME, rightName);
        properties.put(Balances.LEFTTOTALNAME, leftTotalName);
        properties.put(Balances.RIGHTTOTALNAME, rightTotalName);
        properties.put(Balances.LEFTRESULTNAME, leftResultName);
        properties.put(Balances.RIGHTRESULTNAME, rightResultName);
        ArrayList<String> leftTypesString = new ArrayList<>();
        for(AccountType type:leftTypes){
            leftTypesString.add(type.getName());
        }
        properties.put(Balances.LEFTTYPES, Utils.toString(leftTypesString));
        ArrayList<String> righttTypesString = new ArrayList<>();
        for(AccountType type:rightTypes){
            righttTypesString.add(type.getName());
        }
        properties.put(Balances.RIGHTTYPES, Utils.toString(righttTypesString));
        return properties;
    }