public static <T extends JApiModifierBase> JApiModifier<T> extractModifierFromBehavior(Optional<? extends CtBehavior> oldClassOptional, Optional<? extends CtBehavior> newClassOptional, ExtractModifierFromBehaviorCallback<T> callback) { if (oldClassOptional.isPresent() && newClassOptional.isPresent()) { CtBehavior oldClass = oldClassOptional.get(); CtBehavior newClass = newClassOptional.get(); T oldClassModifier = callback.getModifierForOld(oldClass); T newClassModifier = callback.getModifierForNew(newClass); if (oldClassModifier != newClassModifier) { return new JApiModifier<>(Optional.of(oldClassModifier), Optional.of(newClassModifier), JApiChangeStatus.MODIFIED); } else { return new JApiModifier<>(Optional.of(oldClassModifier), Optional.of(newClassModifier), JApiChangeStatus.UNCHANGED); } } else { if (oldClassOptional.isPresent()) { CtBehavior oldClass = oldClassOptional.get(); T oldClassModifier = callback.getModifierForOld(oldClass); return new JApiModifier<>(Optional.of(oldClassModifier), Optional.<T>absent(), JApiChangeStatus.REMOVED); } if (newClassOptional.isPresent()) { CtBehavior newClass = newClassOptional.get(); T newClassModifier = callback.getModifierForNew(newClass); return new JApiModifier<>(Optional.<T>absent(), Optional.of(newClassModifier), JApiChangeStatus.NEW); } } return new JApiModifier<>(Optional.<T>absent(), Optional.<T>absent(), JApiChangeStatus.UNCHANGED); }
public static <T extends JApiModifierBase> JApiModifier<T> extractModifierFromBehavior(Optional<? extends CtBehavior> oldClassOptional, Optional<? extends CtBehavior> newClassOptional, ExtractModifierFromBehaviorCallback<T> callback) { if (oldClassOptional.isPresent() && newClassOptional.isPresent()) { CtBehavior oldClass = oldClassOptional.get(); CtBehavior newClass = newClassOptional.get(); T oldClassModifier = callback.getModifierForOld(oldClass); T newClassModifier = callback.getModifierForNew(newClass); if (oldClassModifier != newClassModifier) { return new JApiModifier<>(Optional.of(oldClassModifier), Optional.of(newClassModifier), JApiChangeStatus.MODIFIED); } else { return new JApiModifier<>(Optional.of(oldClassModifier), Optional.of(newClassModifier), JApiChangeStatus.UNCHANGED); } } else { if (oldClassOptional.isPresent()) { CtBehavior oldClass = oldClassOptional.get(); T oldClassModifier = callback.getModifierForOld(oldClass); return new JApiModifier<>(Optional.of(oldClassModifier), Optional.<T>absent(), JApiChangeStatus.REMOVED); } if (newClassOptional.isPresent()) { CtBehavior newClass = newClassOptional.get(); T newClassModifier = callback.getModifierForNew(newClass); return new JApiModifier<>(Optional.<T>absent(), Optional.of(newClassModifier), JApiChangeStatus.NEW); } } return new JApiModifier<>(Optional.<T>absent(), Optional.<T>absent(), JApiChangeStatus.UNCHANGED); }