*/
public static final Date DEFAULT_DATE_IMP;
- /**
- * {@link SimpleDateFormatUtil#DEFAULT_DATE} for belongs-to statement.
- */
- public static final Date DEFAULT_BELONGS_TO_DATE;
-
static {
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(REVISION_SIMPLE_DATE);
try {
DEFAULT_DATE_REV = simpleDateFormat.parse(DEFAULT_DATE);
DEFAULT_DATE_IMP = simpleDateFormat.parse(DEFAULT_DATE);
- DEFAULT_BELONGS_TO_DATE = simpleDateFormat.parse(DEFAULT_DATE);
} catch (final ParseException e) {
throw new ExceptionInInitializerError(e);
}
package org.opendaylight.yangtools.yang.parser.stmt.reactor;
import com.google.common.collect.ImmutableMap;
-import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
@SuppressWarnings("unchecked")
@Override
public <K, V, N extends IdentifierNamespace<K, V>> V getFromLocalStorage(final Class<N> type, final K key) {
- final Map<K, V> localNamespace = (Map<K,V>) namespaces.get(type);
+ final Map<K, V> localNamespace = (Map<K, V>) namespaces.get(type);
V potential = null;
if (localNamespace != null) {
}
if (potential == null && isModuleIdentifierWithoutSpecifiedRevision(key)) {
- potential = getRegardlessOfRevision((ModuleIdentifier)key,(Map<ModuleIdentifier,V>)localNamespace);
+ potential = getRegardlessOfRevision((ModuleIdentifier)key, (Map<ModuleIdentifier,V>)localNamespace);
}
return potential;
}
private static boolean isModuleIdentifierWithoutSpecifiedRevision(final Object obj) {
- if (!(obj instanceof ModuleIdentifier)) {
- return false;
- }
-
- final Date rev = ((ModuleIdentifier) obj).getRevision();
- return rev == SimpleDateFormatUtil.DEFAULT_DATE_IMP || rev == SimpleDateFormatUtil.DEFAULT_BELONGS_TO_DATE;
+ return obj instanceof ModuleIdentifier
+ && ((ModuleIdentifier) obj).getRevision() == SimpleDateFormatUtil.DEFAULT_DATE_IMP;
}
private static <K, V, N extends IdentifierNamespace<K, V>> V getRegardlessOfRevision(final ModuleIdentifier key,
import org.opendaylight.yangtools.yang.parser.spi.meta.StatementDefinitionNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupportBundle;
+import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToModuleContext;
-import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleIdentifier;
+import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleCtx;
import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToModuleIdentifier;
import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToNamespace;
import org.opendaylight.yangtools.yang.parser.spi.source.ImportedModuleContext;
+import org.opendaylight.yangtools.yang.parser.spi.source.ModuleCtxToModuleQName;
import org.opendaylight.yangtools.yang.parser.spi.source.ModuleIdentifierToModuleQName;
import org.opendaylight.yangtools.yang.parser.spi.source.PrefixToModule;
import org.opendaylight.yangtools.yang.parser.spi.source.PrefixToModuleMap;
}
private PrefixToModule prefixes() {
- final Map<String, ModuleIdentifier> allPrefixes = getRoot().getAllFromNamespace(
+ final Map<String, ModuleIdentifier> allImports = getRoot().getAllFromNamespace(
ImpPrefixToModuleIdentifier.class);
- final Map<String, ModuleIdentifier> belongsToPrefixes = getRoot().getAllFromNamespace(
- BelongsToPrefixToModuleIdentifier.class);
- if (belongsToPrefixes != null) {
- allPrefixes.putAll(belongsToPrefixes);
+ if (allImports != null) {
+ allImports.forEach((key, value) ->
+ prefixToModuleMap.put(key, getRoot().getFromNamespace(ModuleIdentifierToModuleQName.class, value)));
}
- allPrefixes.forEach((key, value) ->
- prefixToModuleMap.put(key, getRoot().getFromNamespace(ModuleIdentifierToModuleQName.class, value)));
+ final Map<String, StmtContext<?, ?, ?>> allBelongsTo = getRoot().getAllFromNamespace(
+ BelongsToPrefixToModuleCtx.class);
+ if (allBelongsTo != null) {
+ allBelongsTo.forEach((key, value) ->
+ prefixToModuleMap.put(key, getRoot().getFromNamespace(ModuleCtxToModuleQName.class, value)));
+ }
return prefixToModuleMap;
}
*/
package org.opendaylight.yangtools.yang.parser.stmt.rfc6020;
+import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.findFirstDeclaredSubstatement;
+
import java.util.Collection;
-import java.util.Optional;
import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.util.ModuleIdentifierImpl;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException;
import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToModuleContext;
-import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleIdentifier;
+import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleCtx;
import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNamespaceForBelongsTo;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.BelongsToEffectiveStatementImpl;
ModelActionBuilder belongsToAction = belongsToCtx.newInferenceAction(ModelProcessingPhase.SOURCE_LINKAGE);
final SourceIdentifier belongsToSourceIdentifier = getSourceIdentifier(belongsToCtx);
- final ModuleIdentifier belongsToModuleIdentifier = ModuleIdentifierImpl.create(
- belongsToCtx.getStatementArgument(), Optional.empty(),
- Optional.of(SimpleDateFormatUtil.DEFAULT_BELONGS_TO_DATE));
final Prerequisite<StmtContext<?, ?, ?>> belongsToPrereq = belongsToAction.requiresCtx(belongsToCtx,
- ModuleNamespaceForBelongsTo.class, belongsToModuleIdentifier.getName(),
+ ModuleNamespaceForBelongsTo.class, belongsToCtx.getStatementArgument(),
ModelProcessingPhase.SOURCE_LINKAGE);
belongsToAction.apply(new InferenceAction() {
StmtContext<?, ?, ?> belongsToModuleCtx = belongsToPrereq.resolve(ctx);
belongsToCtx.addToNs(BelongsToModuleContext.class, belongsToSourceIdentifier, belongsToModuleCtx);
- belongsToCtx.addToNs(BelongsToPrefixToModuleIdentifier.class,
- StmtContextUtils.findFirstDeclaredSubstatement(belongsToCtx, PrefixStatement.class)
- .getStatementArgument(), belongsToModuleIdentifier);
+ belongsToCtx.addToNs(BelongsToPrefixToModuleCtx.class,
+ findFirstDeclaredSubstatement(belongsToCtx, PrefixStatement.class).getStatementArgument(),
+ belongsToModuleCtx);
}
@Override
import org.opendaylight.yangtools.yang.parser.spi.source.AnyxmlSchemaLocationNamespace;
import org.opendaylight.yangtools.yang.parser.spi.source.AugmentToChoiceNamespace;
import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToModuleContext;
-import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleIdentifier;
+import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleCtx;
import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleName;
import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToModuleIdentifier;
import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToNamespace;
.addSupport(sourceLocal(IncludedModuleContext.class))
.addSupport(sourceLocal(IncludedSubmoduleNameToIdentifier.class))
.addSupport(sourceLocal(ImpPrefixToModuleIdentifier.class))
- .addSupport(sourceLocal(BelongsToPrefixToModuleIdentifier.class))
+ .addSupport(sourceLocal(BelongsToPrefixToModuleCtx.class))
.addSupport(sourceLocal(URIStringToImpPrefix.class))
.addSupport(sourceLocal(BelongsToModuleContext.class))
.addSupport(sourceLocal(QNameToStatementDefinition.class))
*/
package org.opendaylight.yangtools.yang.parser.spi.source;
-import org.opendaylight.yangtools.yang.model.api.ModuleIdentifier;
-import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ImportedNamespaceContext;
/**
* Source-specific mapping of belongsTo prefixes to module identifiers. This mapping allows source-specific context
* to correctly populate prefixes map for actual parsing phase and eventually, resolve QName for any valid declared
* statement.
*/
-public interface BelongsToPrefixToModuleIdentifier extends IdentifierNamespace<String, ModuleIdentifier> {
+public interface BelongsToPrefixToModuleCtx extends ImportedNamespaceContext<String> {
}