+ protected InstanceIdentifierSpecification createEmptyDeclared(
+ final StmtContext<String, InstanceIdentifierSpecification, ?> ctx) {
+ return new EmptyIdentifierSpecification(ctx.getRawArgument());
+ }
+
+ @Override
+ protected EffectiveStatement<String, InstanceIdentifierSpecification> createEffective(
+ final Current<String, InstanceIdentifierSpecification> stmt,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ final InstanceIdentifierTypeBuilder builder = RestrictedTypes.newInstanceIdentifierBuilder(
+ BaseTypes.instanceIdentifierType(), stmt.argumentAsTypeQName());
+
+ // TODO: we could do better here for empty substatements, but its really splitting hairs
+ for (EffectiveStatement<?, ?> subStmt : substatements) {
+ if (subStmt instanceof RequireInstanceEffectiveStatement) {
+ builder.setRequireInstance(((RequireInstanceEffectiveStatement)subStmt).argument());
+ }
+ }
+
+ return new TypeEffectiveStatementImpl<>(stmt.declared(), substatements, builder);