class SpreadsheetGeneralConfiguration {

    protected final Map<String, Class> columnsClasses = new LinkedHashMap<>();
    protected Mode mode = Mode.NODES_TABLE;
    protected TimeRepresentation timeRepresentation = TimeRepresentation.INTERVAL;
    protected DateTimeZone timeZone = DateTimeZone.UTC;

    public Mode getMode() {
        return mode;
    }

    public void setTable(Mode table) {
        this.mode = table;
    }

    public TimeRepresentation getTimeRepresentation() {
        return timeRepresentation;
    }

    public void setTimeRepresentation(TimeRepresentation timeRepresentation) {
        this.timeRepresentation = timeRepresentation;
    }

    public DateTimeZone getTimeZone() {
        return timeZone;
    }

    public void setTimeZone(DateTimeZone timeZone) {
        this.timeZone = timeZone;
    }

    public Map<String, Class> getColumnsClasses() {
        return new LinkedHashMap<>(columnsClasses);
    }

    public void setColumnsClasses(Map<String, Class> columnsClasses) {<FILL_FUNCTION_BODY>}

    public Class getColumnClass(String column) {
        return columnsClasses.get(column);
    }

    public void setColumnClass(String column, Class clazz) {
        columnsClasses.put(column.trim(), clazz);
    }

    public enum Mode {
        NODES_TABLE(Arrays.asList(
            ImportNodesProcess.NODE_ID,
            ImportNodesProcess.NODE_LABEL
        )),
        EDGES_TABLE(Arrays.asList(
            ImportEdgesProcess.EDGE_ID,
            ImportEdgesProcess.EDGE_KIND,
            ImportEdgesProcess.EDGE_LABEL,
            ImportEdgesProcess.EDGE_SOURCE,
            ImportEdgesProcess.EDGE_TARGET,
            ImportEdgesProcess.EDGE_TYPE
        )),
        ADJACENCY_LIST,
        MATRIX;

        private final Set<String> specialColumnNames;

        Mode() {
            this.specialColumnNames = Collections.emptySet();
        }

        Mode(List<String> specialColumnNames) {
            this.specialColumnNames = Collections.unmodifiableSet(new HashSet<>(specialColumnNames));
        }

        public Set<String> getSpecialColumnNames() {
            return specialColumnNames;
        }

        public boolean isSpecialColumn(String column) {
            return specialColumnNames.contains(column.trim().toLowerCase());
        }
    }
}

        this.columnsClasses.clear();
        if (columnsClasses != null) {
            for (String column : columnsClasses.keySet()) {
                setColumnClass(column, columnsClasses.get(column));
            }
        }
    
<no_super_class>