X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-model-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Frepo%2Fapi%2FYangTextSchemaSource.java;h=26884d9ff40f6e64d661571231180ca334f917a1;hb=c24d6e2f39acbb11e22b5676bb7481ed52bec461;hp=50ee12ef4d03358729456081c76216a020f5db71;hpb=06452ecebb1998538c59a0a5ed47f47034045af5;p=yangtools.git diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/repo/api/YangTextSchemaSource.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/repo/api/YangTextSchemaSource.java index 50ee12ef4d..26884d9ff4 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/repo/api/YangTextSchemaSource.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/repo/api/YangTextSchemaSource.java @@ -3,30 +3,32 @@ * * 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 + * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.yangtools.yang.model.repo.api; import static com.google.common.base.Preconditions.checkArgument; import com.google.common.annotations.Beta; -import com.google.common.base.Objects; -import com.google.common.base.Objects.ToStringHelper; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.io.ByteSource; - import java.io.IOException; import java.io.InputStream; - +import java.util.Map.Entry; +import javax.annotation.Nonnull; import org.opendaylight.yangtools.concepts.Delegator; +import org.opendaylight.yangtools.yang.common.YangConstants; +import org.opendaylight.yangtools.yang.common.YangNames; /** * YANG text schema source representation. Exposes an RFC6020 text representation * as an {@link InputStream}. */ @Beta -public abstract class YangTextSchemaSource extends ByteSource implements SchemaSourceRepresentation { +public abstract class YangTextSchemaSource extends ByteSource implements YangSchemaSourceRepresentation { private final SourceIdentifier identifier; protected YangTextSchemaSource(final SourceIdentifier identifier) { @@ -34,9 +36,12 @@ public abstract class YangTextSchemaSource extends ByteSource implements SchemaS } public static SourceIdentifier identifierFromFilename(final String name) { - checkArgument(name.endsWith(".yang"), "Filename %s does not have a .yang extension", name); - // FIXME: add revision-awareness - return SourceIdentifier.create(name.substring(0, name.length() - 5), Optional.absent()); + checkArgument(name.endsWith(YangConstants.RFC6020_YANG_FILE_EXTENSION), "Filename %s does not have a .yang extension", + name); + + final String baseName = name.substring(0, name.length() - YangConstants.RFC6020_YANG_FILE_EXTENSION.length()); + final Entry parsed = YangNames.parseFilename(baseName); + return RevisionSourceIdentifier.create(parsed.getKey(), Optional.fromNullable(parsed.getValue())); } /** @@ -50,6 +55,7 @@ public abstract class YangTextSchemaSource extends ByteSource implements SchemaS /** * {@inheritDoc} */ + @Nonnull @Override public Class getType() { return YangTextSchemaSource.class; @@ -57,7 +63,7 @@ public abstract class YangTextSchemaSource extends ByteSource implements SchemaS @Override public final String toString() { - return addToStringAttributes(Objects.toStringHelper(this).add("identifier", identifier)).toString(); + return addToStringAttributes(MoreObjects.toStringHelper(this).add("identifier", identifier)).toString(); } /** @@ -92,7 +98,7 @@ public abstract class YangTextSchemaSource extends ByteSource implements SchemaS } @Override - public final ByteSource getDelegate() { + public ByteSource getDelegate() { return delegate; }