public static <T extends JApiModifierBase> JApiModifier<T> extractModifierFromClass(Optional<CtClass> oldClassOptional, Optional<CtClass> newClassOptional, ExtractModifierFromClassCallback<T> callback) { if (oldClassOptional.isPresent() && newClassOptional.isPresent()) { CtClass oldClass = oldClassOptional.get(); CtClass 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()) { CtClass oldClass = oldClassOptional.get(); T oldClassModifier = callback.getModifierForOld(oldClass); return new JApiModifier<>(Optional.of(oldClassModifier), Optional.<T>absent(), JApiChangeStatus.REMOVED); } if (newClassOptional.isPresent()) { CtClass 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> extractModifierFromClass(Optional<CtClass> oldClassOptional, Optional<CtClass> newClassOptional, ExtractModifierFromClassCallback<T> callback) { if (oldClassOptional.isPresent() && newClassOptional.isPresent()) { CtClass oldClass = oldClassOptional.get(); CtClass 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()) { CtClass oldClass = oldClassOptional.get(); T oldClassModifier = callback.getModifierForOld(oldClass); return new JApiModifier<>(Optional.of(oldClassModifier), Optional.<T>absent(), JApiChangeStatus.REMOVED); } if (newClassOptional.isPresent()) { CtClass 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); }