/*
* Copyright (c) 2014 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/eplv10.html
*/
/**
* This package introduces concepts, generic interfaces and implementations for
* creating and working with YANG Schema source repositories and working with them.
*
*
Concepts
*
* - Schema Source
* - Source of YANG Schema, which is not processed, not resolved against other schemas
* and from contents of Schema Source in combination with other Schema sources
* it is possible to create resolved YANG Schema context.
*
* - {@link org.opendaylight.yangtools.yang.model.util.repo.SourceIdentifier}
* - Identifier of Schema Source. Identifier is not tied with source or representation.
* - Schema Source Representation
* - Representation of schema source. Representation of schema source could exists in various
* formats (Java types), depending on stage of processing, but representation MUST BE
* still result of processing only single unit of schema source (e.g. file, input stream). E.g.:
*
* - {@link java.lang.String} - textual representation of source code
*
- {@link java.io.InputStream} - input stream containing source code
*
- {@link com.google.common.io.ByteSource} - source for input streams containing source code
*
- Parsed AST - abstract syntax tree, which is result of a parser, but still it is not linked
* against other schemas.
*
*
* - {@link org.opendaylight.yangtools.yang.model.util.repo.AdvancedSchemaSourceProvider}
* -
* Service which provides query API to obtain Schema Source Representation associated
* with {@link org.opendaylight.yangtools.yang.model.util.repo.SourceIdentifier}.
*
* - {@link org.opendaylight.yangtools.yang.model.util.repo.SchemaSourceTransformation}
* -
* Function (service) which provides transformation from one Schema Source Representation
* type to another.
*
*
*
*
*/
package org.opendaylight.yangtools.yang.model.util.repo;