All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.onosproject.yangutils.datamodel.YangBase Maven / Gradle / Ivy

/*
 * Copyright 2016-present Open Networking Laboratory
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.onosproject.yangutils.datamodel;

import java.io.Serializable;

import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.datamodel.utils.ResolvableStatus;

/**
 * Reference RFC 6020.
 *
 * Represents data model node to maintain information defined in YANG base.
 *  The "base" statement, which is optional, takes as an argument a
 * string that is the name of an existing identity, from which the new
 * identity is derived.  If no "base" statement is present, the identity
 * is defined from scratch.
 *
 * If a prefix is present on the base name, it refers to an identity
 * defined in the module that was imported with that prefix, or the
 * local module if the prefix matches the local module's prefix.
 * Otherwise, an identity with the matching name MUST be defined in the
 * current module or an included submodule.
 */

/**
 * Represents data model node to maintain information defined in YANG base.
 */
public class YangBase extends DefaultLocationInfo implements Resolvable, Serializable {

    private static final long serialVersionUID = 806201693L;

    // YANG node identifier.
    private YangNodeIdentifier baseIdentifier;

    // Referred identity parent information.
    private YangIdentity referredIdentity;

     /**
     * Status of resolution. If completely resolved enum value is "RESOLVED",
     * if not enum value is "UNRESOLVED", in case reference of grouping/typedef/base/identityref
     * is added to uses/type/base/identityref but it's not resolved value of enum should be
     * "INTRA_FILE_RESOLVED".
     */
    private ResolvableStatus resolvableStatus;

    // Creates a base type of node.
    public YangBase() {
        resolvableStatus = ResolvableStatus.UNRESOLVED;
    }

    /**
     * Returns the YANG node identifier.
     *
     * @return the YANG node identifier
     */
    public YangNodeIdentifier getBaseIdentifier() {
        return baseIdentifier;
    }

    /**
     * Sets the YANG node identifier.
     *
     * @param baseIdentifier the YANG node identifier to set
     */
    public void setBaseIdentifier(YangNodeIdentifier baseIdentifier) {
        this.baseIdentifier = baseIdentifier;
    }

    /**
     * Returns the parent identity node.
     *
     * @return the parent identity node
     */
    public YangIdentity getReferredIdentity() {
        return referredIdentity;
    }

    /**
     * Sets the parent identity node.
     *
     * @param referredIdentity the parent identity node to set
     */
    public void setReferredIdentity(YangIdentity referredIdentity) {
        this.referredIdentity = referredIdentity;
    }

    @Override
    public ResolvableStatus getResolvableStatus() {
        return resolvableStatus;
    }

    @Override
    public void setResolvableStatus(ResolvableStatus resolvableStatus) {
        this.resolvableStatus = resolvableStatus;
    }

    @Override
    public Object resolve() throws DataModelException {
        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy