.. java:import:: com.fasterxml.jackson.core JsonGenerator .. java:import:: com.fasterxml.jackson.databind ObjectWriter .. java:import:: com.fasterxml.jackson.databind SequenceWriter .. java:import:: com.fasterxml.jackson.dataformat.csv CsvGenerator .. java:import:: com.fasterxml.jackson.dataformat.csv CsvMapper .. java:import:: com.fasterxml.jackson.dataformat.csv CsvSchema .. java:import:: dk.magenta.datafordeler.core.database SessionManager .. java:import:: dk.magenta.datafordeler.core.user DafoUserDetails .. java:import:: dk.magenta.datafordeler.core.user DafoUserManager .. java:import:: dk.magenta.datafordeler.core.util LoggerHelper .. java:import:: dk.magenta.datafordeler.cpr CprRolesDefinition .. java:import:: dk.magenta.datafordeler.statistik StatistikRolesDefinition .. java:import:: dk.magenta.datafordeler.statistik.reportExecution ReportAssignment .. java:import:: dk.magenta.datafordeler.statistik.reportExecution ReportProgressStatus .. java:import:: dk.magenta.datafordeler.statistik.reportExecution ReportSyncHandler .. java:import:: dk.magenta.datafordeler.statistik.utils Filter .. java:import:: org.apache.commons.io IOUtils .. java:import:: org.apache.commons.lang StringUtils .. java:import:: org.apache.logging.log4j LogManager .. java:import:: org.apache.logging.log4j Logger .. java:import:: org.hibernate Session .. java:import:: org.springframework.beans.factory.annotation Autowired .. java:import:: org.springframework.beans.factory.annotation Value .. java:import:: org.springframework.http HttpStatus .. java:import:: javax.servlet.http HttpServletRequest .. java:import:: javax.servlet.http HttpServletResponse .. java:import:: java.io File .. java:import:: java.io FileOutputStream .. java:import:: java.io IOException .. java:import:: java.io OutputStream .. java:import:: java.net URLEncoder .. java:import:: java.nio.charset StandardCharsets .. java:import:: java.time.format DateTimeFormatter .. java:import:: java.util.function Consumer .. java:import:: java.util.regex Matcher .. java:import:: java.util.regex Pattern StatisticsService ================= .. java:package:: dk.magenta.datafordeler.statistik.services :noindex: .. java:type:: public abstract class StatisticsService Fields ------ ADOPTIONDTO ^^^^^^^^^^^ .. java:field:: public static final String ADOPTIONDTO :outertype: StatisticsService AFTER_DATE_PARAMETER ^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String AFTER_DATE_PARAMETER :outertype: StatisticsService AF_mynkod ^^^^^^^^^ .. java:field:: public static final String AF_mynkod :outertype: StatisticsService AM_mynkod ^^^^^^^^^ .. java:field:: public static final String AM_mynkod :outertype: StatisticsService AUTHORITY_CODE_TEXT ^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String AUTHORITY_CODE_TEXT :outertype: StatisticsService BEFORE_DATE_PARAMETER ^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String BEFORE_DATE_PARAMETER :outertype: StatisticsService BIRTHDAY_YEAR ^^^^^^^^^^^^^ .. java:field:: public static final String BIRTHDAY_YEAR :outertype: StatisticsService BIRTH_AUTHORITY ^^^^^^^^^^^^^^^ .. java:field:: public static final String BIRTH_AUTHORITY :outertype: StatisticsService BIRTH_AUTHORITY_CODE_TEXT ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String BIRTH_AUTHORITY_CODE_TEXT :outertype: StatisticsService BIRTH_AUTHORITY_TEXT ^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String BIRTH_AUTHORITY_TEXT :outertype: StatisticsService BNR ^^^ .. java:field:: public static final String BNR :outertype: StatisticsService BYGDE ^^^^^ .. java:field:: public static final String BYGDE :outertype: StatisticsService CHURCH ^^^^^^ .. java:field:: public static final String CHURCH :outertype: StatisticsService CITIZENSHIP_CODE ^^^^^^^^^^^^^^^^ .. java:field:: public static final String CITIZENSHIP_CODE :outertype: StatisticsService CIVIL_STATUS ^^^^^^^^^^^^ .. java:field:: public static final String CIVIL_STATUS :outertype: StatisticsService CIVIL_STATUS_DATE ^^^^^^^^^^^^^^^^^ .. java:field:: public static final String CIVIL_STATUS_DATE :outertype: StatisticsService CIVIL_STATUS_PROD_DATE ^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String CIVIL_STATUS_PROD_DATE :outertype: StatisticsService DEATH_DATE ^^^^^^^^^^ .. java:field:: public static final String DEATH_DATE :outertype: StatisticsService DESTINATION_BNR ^^^^^^^^^^^^^^^ .. java:field:: public static final String DESTINATION_BNR :outertype: StatisticsService DESTINATION_COUNTRY_CODE ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String DESTINATION_COUNTRY_CODE :outertype: StatisticsService DESTINATION_DOOR_NUMBER ^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String DESTINATION_DOOR_NUMBER :outertype: StatisticsService DESTINATION_FLOOR ^^^^^^^^^^^^^^^^^ .. java:field:: public static final String DESTINATION_FLOOR :outertype: StatisticsService DESTINATION_HOUSE_NUMBER ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String DESTINATION_HOUSE_NUMBER :outertype: StatisticsService DESTINATION_LOCALITY_NAME ^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String DESTINATION_LOCALITY_NAME :outertype: StatisticsService DESTINATION_MUNICIPALITY_CODE ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String DESTINATION_MUNICIPALITY_CODE :outertype: StatisticsService DESTINATION_ROAD_CODE ^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String DESTINATION_ROAD_CODE :outertype: StatisticsService DOOR_NUMBER ^^^^^^^^^^^ .. java:field:: public static final String DOOR_NUMBER :outertype: StatisticsService EFFECTIVE_PNR ^^^^^^^^^^^^^ .. java:field:: public static final String EFFECTIVE_PNR :outertype: StatisticsService EFFECT_DATE_PARAMETER ^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String EFFECT_DATE_PARAMETER :outertype: StatisticsService EVENT_NAME ^^^^^^^^^^ .. java:field:: public static final String EVENT_NAME :outertype: StatisticsService FATHER_PNR ^^^^^^^^^^ .. java:field:: public static final String FATHER_PNR :outertype: StatisticsService FATHER_PREFIX ^^^^^^^^^^^^^ .. java:field:: public static final String FATHER_PREFIX :outertype: StatisticsService FILE_DATE ^^^^^^^^^ .. java:field:: public static final String FILE_DATE :outertype: StatisticsService FIRST_NAME ^^^^^^^^^^ .. java:field:: public static final String FIRST_NAME :outertype: StatisticsService FLOOR_NUMBER ^^^^^^^^^^^^ .. java:field:: public static final String FLOOR_NUMBER :outertype: StatisticsService GUARDIAN_PNR ^^^^^^^^^^^^ .. java:field:: public static final String GUARDIAN_PNR :outertype: StatisticsService HOUSE_NUMBER ^^^^^^^^^^^^ .. java:field:: public static final String HOUSE_NUMBER :outertype: StatisticsService INCLUSION_DATE_PARAMETER ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String INCLUSION_DATE_PARAMETER :outertype: StatisticsService LAST_NAME ^^^^^^^^^ .. java:field:: public static final String LAST_NAME :outertype: StatisticsService LOCALITY_ABBREVIATION ^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String LOCALITY_ABBREVIATION :outertype: StatisticsService LOCALITY_CODE ^^^^^^^^^^^^^ .. java:field:: public static final String LOCALITY_CODE :outertype: StatisticsService LOCALITY_NAME ^^^^^^^^^^^^^ .. java:field:: public static final String LOCALITY_NAME :outertype: StatisticsService LOC_STATUS_CODE ^^^^^^^^^^^^^^^ .. java:field:: public static final String LOC_STATUS_CODE :outertype: StatisticsService LOC_STATUS_NAME ^^^^^^^^^^^^^^^ .. java:field:: public static final String LOC_STATUS_NAME :outertype: StatisticsService LOC_TYPE_CODE ^^^^^^^^^^^^^ .. java:field:: public static final String LOC_TYPE_CODE :outertype: StatisticsService LOC_TYPE_NAME ^^^^^^^^^^^^^ .. java:field:: public static final String LOC_TYPE_NAME :outertype: StatisticsService MIDDLE_NAME ^^^^^^^^^^^ .. java:field:: public static final String MIDDLE_NAME :outertype: StatisticsService MOTHER_PNR ^^^^^^^^^^ .. java:field:: public static final String MOTHER_PNR :outertype: StatisticsService MOTHER_PREFIX ^^^^^^^^^^^^^ .. java:field:: public static final String MOTHER_PREFIX :outertype: StatisticsService MOVE_DATE ^^^^^^^^^ .. java:field:: public static final String MOVE_DATE :outertype: StatisticsService MOVE_PROD_DATE ^^^^^^^^^^^^^^ .. java:field:: public static final String MOVE_PROD_DATE :outertype: StatisticsService MOVING_IN_DATE ^^^^^^^^^^^^^^ .. java:field:: public static final String MOVING_IN_DATE :outertype: StatisticsService MUNICIPALITY_CODE ^^^^^^^^^^^^^^^^^ .. java:field:: public static final String MUNICIPALITY_CODE :outertype: StatisticsService MUNICIPALITY_NAME ^^^^^^^^^^^^^^^^^ .. java:field:: public static final String MUNICIPALITY_NAME :outertype: StatisticsService MUNICIPALITY_SHORT_NAME ^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String MUNICIPALITY_SHORT_NAME :outertype: StatisticsService NO_OF_GUARDIANS ^^^^^^^^^^^^^^^ .. java:field:: public static final String NO_OF_GUARDIANS :outertype: StatisticsService ONLY_PNR ^^^^^^^^ .. java:field:: public static final String ONLY_PNR :outertype: StatisticsService ORIGIN_AFTER ^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_AFTER :outertype: StatisticsService ORIGIN_BEFORE ^^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_BEFORE :outertype: StatisticsService ORIGIN_BNR ^^^^^^^^^^ .. java:field:: public static final String ORIGIN_BNR :outertype: StatisticsService ORIGIN_COUNTRY_CODE ^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_COUNTRY_CODE :outertype: StatisticsService ORIGIN_DOOR_NUMBER ^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_DOOR_NUMBER :outertype: StatisticsService ORIGIN_FLOOR ^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_FLOOR :outertype: StatisticsService ORIGIN_HOUSE_NUMBER ^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_HOUSE_NUMBER :outertype: StatisticsService ORIGIN_LOCALITY_NAME ^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_LOCALITY_NAME :outertype: StatisticsService ORIGIN_MUNICIPALITY_CODE ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_MUNICIPALITY_CODE :outertype: StatisticsService ORIGIN_ROAD_CODE ^^^^^^^^^^^^^^^^ .. java:field:: public static final String ORIGIN_ROAD_CODE :outertype: StatisticsService PATH_FILE ^^^^^^^^^ .. java:field:: public static String PATH_FILE :outertype: StatisticsService PNR ^^^ .. java:field:: public static final String PNR :outertype: StatisticsService POST_CODE ^^^^^^^^^ .. java:field:: public static final String POST_CODE :outertype: StatisticsService POST_DISTRICT ^^^^^^^^^^^^^ .. java:field:: public static final String POST_DISTRICT :outertype: StatisticsService PROD_DATE ^^^^^^^^^ .. java:field:: public static final String PROD_DATE :outertype: StatisticsService PROTECTION_TYPE ^^^^^^^^^^^^^^^ .. java:field:: public static final String PROTECTION_TYPE :outertype: StatisticsService REGISTRATION_AFTER ^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String REGISTRATION_AFTER :outertype: StatisticsService REGISTRATION_AT ^^^^^^^^^^^^^^^ .. java:field:: public static final String REGISTRATION_AT :outertype: StatisticsService REGISTRATION_BEFORE ^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String REGISTRATION_BEFORE :outertype: StatisticsService ROAD_CODE ^^^^^^^^^ .. java:field:: public static final String ROAD_CODE :outertype: StatisticsService ROAD_NAME ^^^^^^^^^ .. java:field:: public static final String ROAD_NAME :outertype: StatisticsService SPOUSE_PNR ^^^^^^^^^^ .. java:field:: public static final String SPOUSE_PNR :outertype: StatisticsService STATUS_CODE ^^^^^^^^^^^ .. java:field:: public static final String STATUS_CODE :outertype: StatisticsService cprDataOffset ^^^^^^^^^^^^^ .. java:field:: public static final ZoneId cprDataOffset :outertype: StatisticsService dmyFormatter ^^^^^^^^^^^^ .. java:field:: protected static DateTimeFormatter dmyFormatter :outertype: StatisticsService sessionManager ^^^^^^^^^^^^^^ .. java:field:: @Autowired SessionManager sessionManager :outertype: StatisticsService statisticsEnabled ^^^^^^^^^^^^^^^^^ .. java:field:: @Value protected boolean statisticsEnabled :outertype: StatisticsService timeintervallimit ^^^^^^^^^^^^^^^^^ .. java:field:: protected boolean timeintervallimit :outertype: StatisticsService Methods ------- checkAndLogAccess ^^^^^^^^^^^^^^^^^ .. java:method:: protected void checkAndLogAccess(LoggerHelper loggerHelper) throws AccessDeniedException, AccessRequiredException :outertype: StatisticsService convertDate ^^^^^^^^^^^ .. java:method:: public static LocalDate convertDate(OffsetDateTime date) :outertype: StatisticsService formatBnr ^^^^^^^^^ .. java:method:: protected static String formatBnr(String bnr) :outertype: StatisticsService formatDoor ^^^^^^^^^^ .. java:method:: protected static String formatDoor(String door) :outertype: StatisticsService formatFloor ^^^^^^^^^^^ .. java:method:: protected static String formatFloor(String floor) :outertype: StatisticsService formatHouseNnr ^^^^^^^^^^^^^^ .. java:method:: protected static String formatHouseNnr(String houseNr) :outertype: StatisticsService formatLocalityCode ^^^^^^^^^^^^^^^^^^ .. java:method:: protected static String formatLocalityCode(int localityCode) :outertype: StatisticsService formatLocalityCode ^^^^^^^^^^^^^^^^^^ .. java:method:: protected static String formatLocalityCode(String localityCode) :outertype: StatisticsService formatMunicipalityCode ^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected static String formatMunicipalityCode(Integer municipalityCode) :outertype: StatisticsService formatPnr ^^^^^^^^^ .. java:method:: protected String formatPnr(String pnr) :outertype: StatisticsService formatRoadCode ^^^^^^^^^^^^^^ .. java:method:: protected static String formatRoadCode(Integer roadCode) :outertype: StatisticsService formatStatusCode ^^^^^^^^^^^^^^^^ .. java:method:: protected static String formatStatusCode(int statusCode) :outertype: StatisticsService formatTime ^^^^^^^^^^ .. java:method:: protected String formatTime(OffsetDateTime time) :outertype: StatisticsService formatTime ^^^^^^^^^^ .. java:method:: protected String formatTime(ZonedDateTime time) :outertype: StatisticsService formatTime ^^^^^^^^^^ .. java:method:: protected String formatTime(LocalDate time) :outertype: StatisticsService getColumnNames ^^^^^^^^^^^^^^ .. java:method:: protected abstract List getColumnNames() :outertype: StatisticsService getCsvMapper ^^^^^^^^^^^^ .. java:method:: protected abstract CsvMapper getCsvMapper() :outertype: StatisticsService getDafoUserManager ^^^^^^^^^^^^^^^^^^ .. java:method:: protected abstract DafoUserManager getDafoUserManager() :outertype: StatisticsService getFilter ^^^^^^^^^ .. java:method:: protected Filter getFilter(HttpServletRequest request) throws Exception :outertype: StatisticsService getLogger ^^^^^^^^^ .. java:method:: protected abstract Logger getLogger() :outertype: StatisticsService getSessionManager ^^^^^^^^^^^^^^^^^ .. java:method:: protected abstract SessionManager getSessionManager() :outertype: StatisticsService getUser ^^^^^^^ .. java:method:: protected DafoUserDetails getUser(HttpServletRequest request) throws InvalidTokenException, AccessDeniedException, InvalidCertificateException :outertype: StatisticsService If the request is a get-request we look for the Header "Authorization" to fund the user-rights If the request is a Post-request we look for the parameter "token" to fund the user-rights :param request: :throws InvalidTokenException: :throws AccessDeniedException: :throws InvalidCertificateException: getWriteToLocalFile ^^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean getWriteToLocalFile() :outertype: StatisticsService handleRequest ^^^^^^^^^^^^^ .. java:method:: protected void handleRequest(HttpServletRequest request, HttpServletResponse response, ServiceName serviceName) throws AccessDeniedException, AccessRequiredException, InvalidTokenException, IOException, MissingParameterException, InvalidClientInputException, HttpNotFoundException, InvalidCertificateException :outertype: StatisticsService Get is used for either returning a frontpage, og starting the generation of a report :param request: :param response: :param serviceName: :throws AccessDeniedException: :throws AccessRequiredException: :throws InvalidTokenException: :throws IOException: :throws MissingParameterException: :throws InvalidClientInputException: :throws HttpNotFoundException: :throws InvalidCertificateException: replaceMapValues ^^^^^^^^^^^^^^^^ .. java:method:: protected static void replaceMapValues(Map map, String search, String replace) :outertype: StatisticsService requireParameter ^^^^^^^^^^^^^^^^ .. java:method:: protected void requireParameter(String parameterName, String parameterValue) throws MissingParameterException :outertype: StatisticsService requiredParameters ^^^^^^^^^^^^^^^^^^ .. java:method:: protected String[] requiredParameters() :outertype: StatisticsService run ^^^ .. java:method:: public abstract int run(Filter filter, OutputStream outputStream, String reportUuid) :outertype: StatisticsService setUseTimeintervallimit ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setUseTimeintervallimit(boolean timeintervallimit) :outertype: StatisticsService setWriteToLocalFile ^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setWriteToLocalFile(boolean writeToLocalFile) :outertype: StatisticsService string ^^^^^^ .. java:method:: protected static String string(int value) :outertype: StatisticsService writeItems ^^^^^^^^^^ .. java:method:: protected int writeItems(Iterator> items, OutputStream outputStream, Consumer afterEach) throws IOException :outertype: StatisticsService