From 1187a03f125c2c95b13bebb4afba4c90d89fc95d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 2 Jul 2020 14:19:35 +0200 Subject: [PATCH] Further optimize RevisionDateStatement implementations Revision.toString() results in the raw argument string, hence we can use that to our advantage and save a one field, dropping the instance size to 16 bytes in typical scenarios. JIRA: YANGTOOLS-1065 Change-Id: Id0f6c4a64be9ae70ecbe0917c19c9ac2b7aecd57 Signed-off-by: Robert Varga --- .../stmt/revision_date/EmptyRevisionDateStatement.java | 9 ++++----- .../stmt/revision_date/RegularRevisionDateStatement.java | 7 +++---- .../stmt/revision_date/RevisionDateStatementSupport.java | 4 ++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/EmptyRevisionDateStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/EmptyRevisionDateStatement.java index f9944baa80..ef5aded1c3 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/EmptyRevisionDateStatement.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/EmptyRevisionDateStatement.java @@ -9,11 +9,10 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision_date; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithArgument; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.ArgumentToString; -final class EmptyRevisionDateStatement extends WithArgument implements RevisionDateStatement { - EmptyRevisionDateStatement(final StmtContext context) { - super(context); +final class EmptyRevisionDateStatement extends ArgumentToString implements RevisionDateStatement { + EmptyRevisionDateStatement(final Revision argument) { + super(argument); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RegularRevisionDateStatement.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RegularRevisionDateStatement.java index f143bc4d45..55d76ca7c0 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RegularRevisionDateStatement.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RegularRevisionDateStatement.java @@ -11,12 +11,11 @@ import com.google.common.collect.ImmutableList; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithArgument.WithSubstatements; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.ArgumentToString.WithSubstatements; final class RegularRevisionDateStatement extends WithSubstatements implements RevisionDateStatement { - RegularRevisionDateStatement(final StmtContext context, + RegularRevisionDateStatement(final Revision argument, final ImmutableList> substatements) { - super(context, substatements); + super(argument, substatements); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RevisionDateStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RevisionDateStatementSupport.java index 40d413c972..26c477cd1c 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RevisionDateStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RevisionDateStatementSupport.java @@ -52,12 +52,12 @@ public final class RevisionDateStatementSupport @Override protected RevisionDateStatement createDeclared(final StmtContext ctx, final ImmutableList> substatements) { - return new RegularRevisionDateStatement(ctx, substatements); + return new RegularRevisionDateStatement(ctx.coerceStatementArgument(), substatements); } @Override protected RevisionDateStatement createEmptyDeclared(final StmtContext ctx) { - return new EmptyRevisionDateStatement(ctx); + return new EmptyRevisionDateStatement(ctx.coerceStatementArgument()); } @Override -- 2.36.6