package org.opendaylight.yangtools.yang.parser.spi.meta;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicates;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
import java.util.Collection;
import javax.annotation.Nonnull;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
StmtContext::buildDeclared));
}
+ /**
+ * Find first declared substatement of a particular type.
+ *
+ * @param type {@link DeclaredStatement} type
+ * @return First effective substatement, or null if no match is found.
+ * @deprecated Use {@link #findFirstDeclaredSubstatement(Class)} instead.
+ */
+ @Deprecated
protected final <S extends DeclaredStatement<?>> S firstDeclared(final Class<S> type) {
- final Optional<? extends DeclaredStatement<?>> declaredSubstmt = Iterables.tryFind(substatements,
- Predicates.instanceOf(type));
- return declaredSubstmt.isPresent() ? type.cast(declaredSubstmt.get()) : null;
+ return findFirstDeclaredSubstatement(type).orElse(null);
}
@Override
return source;
}
- @SuppressWarnings("unchecked")
+ /**
+ * Returns collection of explicitly declared child statements, while preserving its original ordering from original
+ * source.
+ *
+ * @param type {@link DeclaredStatement} type
+ * @return Collection of statements, which were explicitly declared in source of model.
+ * @throws NullPointerException if {@code type} is null
+ * @deprecated Use {@link #declaredSubstatements(Class)} instead.
+ */
+ @Deprecated
protected final <S extends DeclaredStatement<?>> Collection<? extends S> allDeclared(final Class<S> type) {
- return Collection.class.cast(Collections2.filter(substatements, Predicates.instanceOf(type)));
+ return declaredSubstatements(type);
}
}