QueryKey.java

package info.smart_tools.smartactors.plugin.compile_query;

/**
 * Utility class for IOC-strategy for resolving compiled query by connection and query type
 */
final class QueryKey {

    private final String queryType;
    private final String connectionId;

    private QueryKey(final String queryType, final String connectionId) {
        this.queryType = queryType;
        this.connectionId = connectionId;
    }

    /**
     * @param taskName name of task
     * @param connectionId string of connection id
     * @return result query key
     */
    static QueryKey create(final String taskName, final String connectionId) {
        return new QueryKey(taskName, connectionId);
    }

    @Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        QueryKey queryKey = (QueryKey) o;

        if (!queryType.equals(queryKey.queryType)) {
            return false;
        }
        return connectionId.equals(queryKey.connectionId);

    }

    @Override
    public int hashCode() {
        int result = queryType.hashCode();
        result = 31 * result + connectionId.hashCode();
        return result;
    }
}