package hu.sztaki.ilab.longneck.process.mapping; import hu.sztaki.ilab.longneck.process.block.BlockUtils; import java.util.ArrayList; import java.util.List; /** * * @author Molnár Péter <molnarp@sztaki.mta.hu> */ abstract public class AbstractMappingRule implements MappingRule { protected List<String> fields; public void setFields(String fields) { this.fields = BlockUtils.splitIdentifiers(fields); } public List<String> getFields() { return fields; } public void setFields(List<String> fields) { this.fields = fields; } @Override public AbstractMappingRule clone() { try { AbstractMappingRule copy = (AbstractMappingRule) super.clone(); copy.fields = new ArrayList<String>(fields.size()); for (String f : fields) { copy.fields.add(f); } return copy; } catch (CloneNotSupportedException ex) { throw new AssertionError(ex); } } @Override public int hashCode() { int hash = 5; hash = 73 * hash + (this.fields != null ? this.fields.hashCode() : 0); return hash; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final AbstractMappingRule other = (AbstractMappingRule) obj; if (this.fields != other.fields && (this.fields == null || !this.fields.equals(other.fields))) { return false; } return true; } }