package org.jactr.eclipse.association.ui.model; /* * default logging */ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.TreeMap; import org.antlr.runtime.tree.CommonTree; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class Association { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(Association.class); final private CommonTree _iChunk; final private CommonTree _jChunk; final private int _count; final private double _strength; private Map<String, String> _parameters; public Association(CommonTree jChunk, CommonTree iChunk, int count, double strength) { _iChunk = iChunk; _jChunk = jChunk; _count = count; _strength = strength; } public void setParameter(String name, String value) { if (_parameters == null) _parameters = new TreeMap<String, String>(); _parameters.put(name, value); } public String getParameter(String name) { if (_parameters == null) return null; return _parameters.get(name); } public Collection<String> getParameterNames() { if (_parameters == null) return Collections.EMPTY_LIST; return new ArrayList<String>(_parameters.keySet()); } public CommonTree getJChunk() { return _jChunk; } public CommonTree getIChunk() { return _iChunk; } public int getCount() { return _count; } public double getStrength() { return _strength; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (_iChunk == null ? 0 : _iChunk.hashCode()); result = prime * result + (_jChunk == null ? 0 : _jChunk.hashCode()); result = prime * result + (_parameters == null ? 0 : _parameters.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Association other = (Association) obj; if (_iChunk == null) { if (other._iChunk != null) return false; } else if (!_iChunk.equals(other._iChunk)) return false; if (_jChunk == null) { if (other._jChunk != null) return false; } else if (!_jChunk.equals(other._jChunk)) return false; if (_parameters == null) { if (other._parameters != null) return false; } else if (!_parameters.equals(other._parameters)) return false; return true; } }