package org.opendaylight.yangtools.yang.model.api.stmt;
import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@Beta
-public interface PositionEffectiveStatement extends EffectiveStatement<Long, PositionStatement> {
+public interface PositionEffectiveStatement extends EffectiveStatement<Uint32, PositionStatement> {
}
*/
package org.opendaylight.yangtools.yang.model.api.stmt;
+import static com.google.common.base.Verify.verifyNotNull;
+
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-public interface PositionStatement extends DeclaredStatement<Long> {
- default long getValue() {
- return argument().longValue();
+public interface PositionStatement extends DeclaredStatement<Uint32> {
+ default Uint32 getValue() {
+ // FIXME: YANGTOOLS-908: verifyNotNull() should not be needed here
+ return verifyNotNull(argument());
}
}
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.bit;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BitEffectiveStatement;
private final QName qname;
private final SchemaPath schemaPath;
- private final Long declaredPosition;
+ private final Uint32 declaredPosition;
BitEffectiveStatementImpl(final StmtContext<QName, BitStatement, ?> ctx) {
super(ctx);
qname = ctx.getStatementArgument();
schemaPath = ctx.getSchemaPath().get();
- Long declaredPositionInit = null;
+ Uint32 declaredPositionInit = null;
for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
if (effectiveStatement instanceof PositionEffectiveStatement) {
declaredPositionInit = ((PositionEffectiveStatement) effectiveStatement).argument();
declaredPosition = declaredPositionInit;
}
- public Long getDeclaredPosition() {
+ public Uint32 getDeclaredPosition() {
return declaredPosition;
}
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.position;
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.model.api.stmt.PositionEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement;
abstract class AbstractPositionEffectiveStatement
- extends AbstractDeclaredEffectiveStatement.DefaultArgument<Long, PositionStatement>
+ extends AbstractDeclaredEffectiveStatement.DefaultArgument<Uint32, PositionStatement>
implements PositionEffectiveStatement {
AbstractPositionEffectiveStatement(final PositionStatement declared) {
super(declared);
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.position;
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.ArgumentToString;
-abstract class AbstractPositionStatement extends ArgumentToString<Long> implements PositionStatement {
- AbstractPositionStatement(final Long argument) {
+abstract class AbstractPositionStatement extends ArgumentToString<Uint32> implements PositionStatement {
+ AbstractPositionStatement(final Uint32 argument) {
super(argument);
}
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.position;
+import org.opendaylight.yangtools.yang.common.Uint32;
+
final class EmptyPositionStatement extends AbstractPositionStatement {
- EmptyPositionStatement(final Long argument) {
+ EmptyPositionStatement(final Uint32 argument) {
super(argument);
}
}
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.position;
import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
public final class PositionStatementSupport
- extends BaseInternedStatementSupport<Long, PositionStatement, PositionEffectiveStatement> {
+ extends BaseInternedStatementSupport<Uint32, PositionStatement, PositionEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
YangStmtMapping.POSITION).build();
private static final PositionStatementSupport INSTANCE = new PositionStatementSupport();
}
@Override
- public Long parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
+ public Uint32 parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
try {
- return Long.parseLong(value);
- } catch (NumberFormatException e) {
+ return Uint32.valueOf(value).intern();
+ } catch (IllegalArgumentException e) {
throw new SourceException(String.format("Bit position value %s is not valid integer", value),
ctx.getStatementSourceReference(), e);
}
}
@Override
- protected PositionStatement createDeclared(final Long argument,
+ protected PositionStatement createDeclared(final Uint32 argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
return new RegularPositionStatement(argument, substatements);
}
@Override
- protected PositionStatement createEmptyDeclared(final Long argument) {
+ protected PositionStatement createEmptyDeclared(final Uint32 argument) {
return new EmptyPositionStatement(argument);
}
@Override
protected PositionEffectiveStatement createEffective(
- final StmtContext<Long, PositionStatement, PositionEffectiveStatement> ctx,
+ final StmtContext<Uint32, PositionStatement, PositionEffectiveStatement> ctx,
final PositionStatement declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
return new RegularPositionEffectiveStatement(declared, substatements);
}
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
final class RegularPositionStatement extends AbstractPositionStatement {
private final @NonNull Object substatements;
- RegularPositionStatement(final Long argument,
+ RegularPositionStatement(final Uint32 argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
super(argument);
this.substatements = maskList(substatements);
effectivePos = 0L;
}
} else {
- effectivePos = bitSubStmt.getDeclaredPosition();
+ effectivePos = bitSubStmt.getDeclaredPosition().toJava();
}
final Bit bit = EffectiveTypeUtil.buildBit(bitSubStmt, effectivePos);
if (bitSubStmt.getDeclaredPosition() == null) {
effectivePos = getBaseTypeBitPosition(bitSubStmt.getName(), baseType, ctx);
} else {
- effectivePos = bitSubStmt.getDeclaredPosition();
+ effectivePos = bitSubStmt.getDeclaredPosition().toJava();
}
builder.addBit(EffectiveTypeUtil.buildBit(bitSubStmt, effectivePos));