package org.molgenis.data.processor; import java.util.List; public abstract class AbstractCellProcessor implements CellProcessor { private static final long serialVersionUID = 1L; private final boolean processHeader; private final boolean processData; public AbstractCellProcessor() { this(true, true); } public AbstractCellProcessor(boolean processHeader, boolean processData) { this.processHeader = processHeader; this.processData = processData; } @Override public boolean processHeader() { return this.processHeader; } @Override public boolean processData() { return this.processData; } public static String processCell(String value, boolean isHeader, List<CellProcessor> cellProcessors) { if (cellProcessors != null) { for (CellProcessor cellProcessor : cellProcessors) { boolean process = (isHeader && cellProcessor.processHeader()) || (!isHeader && cellProcessor.processData()); if (process) value = cellProcessor.process(value); } } return value; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (processData ? 1231 : 1237); result = prime * result + (processHeader ? 1231 : 1237); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; AbstractCellProcessor other = (AbstractCellProcessor) obj; if (processData != other.processData) return false; if (processHeader != other.processHeader) return false; return true; } }