/*
* Copyright 2016 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.robotframework.ide.eclipse.main.plugin.search;
import java.util.Arrays;
import java.util.Optional;
/**
* @author Michal Anglart
*
*/
public final class MatchesGroupingElement {
private final Object[] groupingElements;
public MatchesGroupingElement(final Object... groupingElements) {
this.groupingElements = groupingElements;
}
@Override
public boolean equals(final Object obj) {
if (obj != null && obj.getClass() == MatchesGroupingElement.class) {
final MatchesGroupingElement that = (MatchesGroupingElement) obj;
return Arrays.deepEquals(this.groupingElements, that.groupingElements);
}
return false;
}
@Override
public int hashCode() {
return Arrays.hashCode(groupingElements);
}
<T> Optional<T> getGroupingObjectOf(final Class<? extends T> clazz) {
for (final Object element : groupingElements) {
if (clazz.isInstance(element)) {
return Optional.<T> of(clazz.cast(element));
}
}
return Optional.empty();
}
}