package rocks.inspectit.shared.cs.ci.assignment.impl; import javax.xml.bind.annotation.XmlTransient; import rocks.inspectit.shared.cs.ci.sensor.method.special.AbstractSpecialMethodSensorConfig; /** * Special {@link MethodSensorAssignment} that server for defining special instrumentation points * with the already existing assignment approach. * * @see AbstractSpecialMethodSensorConfig * @author Ivan Senic * */ @XmlTransient public class SpecialMethodSensorAssignment extends MethodSensorAssignment { /** * {@link AbstractSpecialMethodSensorConfig}. */ private AbstractSpecialMethodSensorConfig specialMethodSensorConfig; /** * No-arg constructor. */ protected SpecialMethodSensorAssignment() { } /** * Default constructor. * * @param specialMethodSensorConfig * {@link AbstractSpecialMethodSensorConfig}. */ public SpecialMethodSensorAssignment(AbstractSpecialMethodSensorConfig specialMethodSensorConfig) { super(specialMethodSensorConfig.getClass()); this.specialMethodSensorConfig = specialMethodSensorConfig; } /** * Gets {@link #specialMethodSensorConfig}. * * @return {@link #specialMethodSensorConfig} */ public AbstractSpecialMethodSensorConfig getSpecialMethodSensorConfig() { return this.specialMethodSensorConfig; } /** * Sets {@link #specialMethodSensorConfig}. * * @param specialMethodSensorConfig * New value for {@link #specialMethodSensorConfig} */ public void setSpecialMethodSensorConfig(AbstractSpecialMethodSensorConfig specialMethodSensorConfig) { this.specialMethodSensorConfig = specialMethodSensorConfig; } /** * {@inheritDoc} */ @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = (prime * result) + ((this.specialMethodSensorConfig == null) ? 0 : this.specialMethodSensorConfig.hashCode()); return result; } /** * {@inheritDoc} */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!super.equals(obj)) { return false; } if (getClass() != obj.getClass()) { return false; } SpecialMethodSensorAssignment other = (SpecialMethodSensorAssignment) obj; if (this.specialMethodSensorConfig == null) { if (other.specialMethodSensorConfig != null) { return false; } } else if (!this.specialMethodSensorConfig.equals(other.specialMethodSensorConfig)) { return false; } return true; } }