/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.yangtools.yang.parser.spi.meta; import javax.annotation.Nullable; public enum ModelProcessingPhase { INIT(null), /** * * Preliminary cross-source relationship resolution phase which collects * available module names and module namespaces. It is necessary in order to * correct resolution of unknown statements used in linkage phase (e.g. * semantic version of yang modules). */ SOURCE_PRE_LINKAGE(INIT), /** * * Cross-source relationship resolution phase. * <p> * In this phase of processing only statements which affects cross-source * relationship (e.g. imports / includes) are processed. * <p> * At end of this phase all source related contexts should be bind to their * imports and includes to allow visibility of custom defined statements in * following phases. */ SOURCE_LINKAGE(SOURCE_PRE_LINKAGE), STATEMENT_DEFINITION(SOURCE_LINKAGE), FULL_DECLARATION(STATEMENT_DEFINITION), EFFECTIVE_MODEL(FULL_DECLARATION); private final ModelProcessingPhase previousPhase; ModelProcessingPhase(@Nullable ModelProcessingPhase previous) { this.previousPhase = previous; } public ModelProcessingPhase getPreviousPhase() { return previousPhase; } }