@@ -0,0 +1,1731 @@
+/*%0A * Java Genetic Algorithm Library (@__identifier__@).%0A * Copyright (c) @__year__@ Franz Wilhelmst%C3%B6tter%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A *%0A * Author:%0A *    Franz Wilhelmst%C3%B6tter (franz.wilhelmstoetter@gmx.at)%0A */%0Apackage org.jenetics.internal.util;%0A%0Aimport java.util.Optional;%0Aimport java.util.function.Predicate;%0A%0A/**%0A * @author %3Ca href=%22mailto:franz.wilhelmstoetter@gmx.at%22%3EFranz Wilhelmst%C3%B6tter%3C/a%3E%0A * @since 3.0%0A * @version 3.0 &mdash; %3Cem%3E$Date: 2014-06-28 $%3C/em%3E%0A */%0Apublic final class Equality%3CT%3E %7B%0A%09private final T _self;%0A%09private final Optional%3CT%3E _other;%0A%0A%09private Equality(final T self, final Optional%3CT%3E other) %7B%0A%09%09_self = self;%0A%09%09_other = other;%0A%09%7D%0A%0A%09public boolean test(final Predicate%3CT%3E equality) %7B%0A%09%09return _other.filter(o -%3E o == _self).isPresent() %7C%7C%0A%09%09%09_other.filter(equality).isPresent();%0A%09%7D%0A%0A%09public static %3CT%3E Equality%3CT%3E of(final T self, final Object other) %7B%0A%09%09@SuppressWarnings(%22unchecked%22)%0A%09%09final Class%3CT%3E type = (Class%3CT%3E)self.getClass();%0A%09%09return new Equality%3C%3E(self, cast(type, other));%0A%09%7D%0A%0A%09private static %3CA%3E Optional%3CA%3E cast(final Class%3CA%3E type, final Object object) %7B%0A%09%09return Optional.ofNullable(object)%0A%09%09%09.filter(o -%3E o.getClass() == type)%0A%09%09%09.map(type::cast);%0A%09%7D%0A%7D%0A

Add helper class for implementing 'equals' method.