当前位置: 首页>>代码示例>>Java>>正文


Java TypeDefinition类代码示例

本文整理汇总了Java中org.opendaylight.yangtools.yang.model.api.TypeDefinition的典型用法代码示例。如果您正苦于以下问题:Java TypeDefinition类的具体用法?Java TypeDefinition怎么用?Java TypeDefinition使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


TypeDefinition类属于org.opendaylight.yangtools.yang.model.api包,在下文中一共展示了TypeDefinition类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: deserialize

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
/**
 * De-serializes a string.
 * @param typeDefinition - Type Definition
 * @param input - Input
 * @return De-serialized JSON string
 */
private Object deserialize(final TypeDefinition<?> typeDefinition, String input) {
    TypeDefinition<?> type = resolveBaseTypeFrom(typeDefinition);

    try {
        if ((type instanceof IdentityrefTypeDefinition) || (type instanceof InstanceIdentifierTypeDefinition)) {
            return null;
        } else {
            final TypeDefinitionAwareCodec<Object, ? extends TypeDefinition<?>> typeAwarecodec = TypeDefinitionAwareCodec
                    .from(type);
            if (typeAwarecodec != null) {
                return typeAwarecodec.deserialize(input);
            } else {
                return null;
            }
        }
    } catch (final ClassCastException e) {
        LOG.error(
                "ClassCastException was thrown when codec is invoked with parameter " + String.valueOf(input),
                e);
        return null;
    }
}
 
开发者ID:opendaylight,项目名称:fpc,代码行数:29,代码来源:NameResolver.java

示例2: getOpenType

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
@Override
public OpenType<?> getOpenType() {
    final TypeDefinition<?> baseTypeDefinition = getBaseType(this.typeProviderWrapper, this.typeDefinition);
    final Type baseType = this.typeProviderWrapper.getType(baseTypeDefinition, baseTypeDefinition);

    if (isArray()) {
        return getArrayType();
    } else if (isEnum()) {
        return getEnumType(baseTypeDefinition);
    } else if (isUnion()) {
        return getCompositeTypeForUnion(baseTypeDefinition);
    } else if (isDerivedType(baseType, getType())) {
        return getCompositeType(baseType, baseTypeDefinition);
    } else if (isIdentityRef()) {
        return getCompositeTypeForIdentity();
    }

    return getSimpleType(getType());
}
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:20,代码来源:JavaAttribute.java

示例3: getCompositeType

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
private OpenType<?> getCompositeType(final Type baseType, final TypeDefinition<?> baseTypeDefinition) {

        final SimpleType<?> innerItemType = SimpleTypeResolver.getSimpleType(baseType);
        final String innerItemName = this.typeProviderWrapper.getJMXParamForBaseType(baseTypeDefinition);

        final String[] itemNames = new String[]{innerItemName};
        final String description = getNullableDescription() == null ? getAttributeYangName() : getNullableDescription();

        final OpenType<?>[] itemTypes = new OpenType[]{innerItemType};
        try {
            return new CompositeType(getUpperCaseCammelCase(), description, itemNames, itemNames, itemTypes);
        } catch (final OpenDataException e) {
            throw new RuntimeException("Unable to create " + CompositeType.class + " with inner element of type "
                    + itemTypes, e);
        }
    }
 
开发者ID:hashsdn,项目名称:hashsdn-controller,代码行数:17,代码来源:JavaAttribute.java

示例4: serialize

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
@Override
@SuppressWarnings("checkstyle:illegalCatch")
public final String serialize(final Object data) {
    for (final TypeDefinition<?> type : typeDefinition.getTypes()) {
        Codec<String, Object> codec = codecFor(type);
        if (codec == null) {
            LOG.debug("no codec found for {}", type);
            continue;
        }
        try {
            return codec.serialize(data);
        } catch (final Exception e) {
            LOG.debug("Data {} did not match for {}", data, type, e);
            // invalid - try the next union type.
        }
    }
    throw new IllegalArgumentException("Invalid data \"" + data + "\" for union type.");
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:19,代码来源:AbstractStringUnionCodec.java

示例5: createComplexUnion

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
private T createComplexUnion(final TypedDataSchemaNode schema, final UnionTypeDefinition union) {
    final List<TypeDefinition<?>> types = union.getTypes();
    final List<T> codecs = new ArrayList<>(types.size());

    for (TypeDefinition<?> type : types) {
        T codec = cache.lookupSimple(type);
        if (codec == null) {
            codec = getSimpleCodecFor(type);
            if (codec == null) {
                codec = createComplexCodecFor(schema, type);
            }
        }

        codecs.add(verifyNotNull(codec, "Schema %s subtype %s has no codec", schema, type));
    }

    return unionCodec(union, codecs);
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:19,代码来源:AbstractCodecFactory.java

示例6: findSchemaNodeWithLeafrefType

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
private LeafSchemaNode findSchemaNodeWithLeafrefType(final DataNodeContainer module, final String nodeName) {
    for (final DataSchemaNode childNode : module.getChildNodes()) {
        if (childNode instanceof DataNodeContainer) {
            LeafSchemaNode leafrefFromRecursion = findSchemaNodeWithLeafrefType((DataNodeContainer) childNode,
                    nodeName);
            if (leafrefFromRecursion != null) {
                return leafrefFromRecursion;
            }
        } else if (childNode.getQName().getLocalName().equals(nodeName) && childNode instanceof LeafSchemaNode) {
            final TypeDefinition<?> leafSchemaNodeType = ((LeafSchemaNode) childNode).getType();
            if (leafSchemaNodeType instanceof LeafrefTypeDefinition) {
                return (LeafSchemaNode) childNode;
            }
        }
    }
    return null;
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:18,代码来源:XmlStreamUtilsTest.java

示例7: testOrderingTypedef

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
@Test
public void testOrderingTypedef() throws Exception {
    final Set<TypeDefinition<?>> typedefs = bar.getTypeDefinitions();
    final String[] expectedOrder = { "int32-ext1", "int32-ext2", "string-ext1", "string-ext2", "string-ext3",
        "string-ext4", "invalid-string-pattern", "multiple-pattern-string", "my-decimal-type", "my-union",
        "my-union-ext", "nested-union2"
    };
    final String[] actualOrder = new String[typedefs.size()];

    int offset = 0;
    for (final TypeDefinition<?> type : typedefs) {
        actualOrder[offset] = type.getQName().getLocalName();
        offset++;
    }
    assertArrayEquals(expectedOrder, actualOrder);
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:17,代码来源:OrderingTest.java

示例8: testAddedByUsesLeafTypeQName

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
@Test
public void testAddedByUsesLeafTypeQName() throws Exception {
    final SchemaContext loadModules = TestUtils.loadModules(getClass().getResource("/added-by-uses-leaf-test")
            .toURI());
    assertEquals(2, loadModules.getModules().size());
    foo = TestUtils.findModule(loadModules, "foo").get();
    final Module imp = TestUtils.findModule(loadModules, "import-module").get();

    final LeafSchemaNode leaf = (LeafSchemaNode) ((ContainerSchemaNode) foo.getDataChildByName(QName.create(
            foo.getQNameModule(), "my-container")))
            .getDataChildByName(QName.create(foo.getQNameModule(), "my-leaf"));

    TypeDefinition<?> impType = null;
    final Set<TypeDefinition<?>> typeDefinitions = imp.getTypeDefinitions();
    for (final TypeDefinition<?> typeDefinition : typeDefinitions) {
        if (typeDefinition.getQName().getLocalName().equals("imp-type")) {
            impType = typeDefinition;
            break;
        }
    }

    assertNotNull(impType);
    assertEquals(leaf.getType().getQName(), impType.getQName());
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:25,代码来源:GroupingTest.java

示例9: verifySingleQuotesExpression

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
private static void verifySingleQuotesExpression(final SchemaContext schemaContext) {
    final DataSchemaNode dataNodeBar = schemaContext.getDataChildByName(QName.create("foo", "2016-07-11", "bar"));
    assertTrue(dataNodeBar instanceof ContainerSchemaNode);
    final ContainerSchemaNode bar = (ContainerSchemaNode) dataNodeBar;
    final RevisionAwareXPath whenCondition = bar.getWhenCondition().get();
    assertEquals("/foo != 'bar'", whenCondition.toString());

    final Set<TypeDefinition<?>> typeDefinitions = schemaContext.getTypeDefinitions();
    assertEquals(1, typeDefinitions.size());
    final TypeDefinition<?> type = typeDefinitions.iterator().next();
    assertTrue(type instanceof StringTypeDefinition);
    final List<PatternConstraint> patternConstraints = ((StringTypeDefinition) type).getPatternConstraints();
    assertEquals(1, patternConstraints.size());
    final PatternConstraint pattern = patternConstraints.iterator().next();
    assertEquals("^'.*'$", pattern.getJavaPatternString());
    assertTrue(Pattern.compile(pattern.getJavaPatternString()).matcher("'enclosed string in quotes'").matches());
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:18,代码来源:Bug6180Test.java

示例10: test

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
@Test
public void test() throws Exception {
    final SchemaContext schema = StmtTestUtils.parseYangSources("/bugs/bug2872");
    assertNotNull(schema);

    final QNameModule bug2872module = QNameModule.create(URI.create("bug2872"), Revision.of("2016-06-08"));
    final QName foo = QName.create(bug2872module, "bar");

    final DataSchemaNode dataSchemaNode = schema.getDataChildByName(foo);
    assertTrue(dataSchemaNode instanceof LeafSchemaNode);
    final LeafSchemaNode myLeaf = (LeafSchemaNode) dataSchemaNode;

    final TypeDefinition<?> type = myLeaf.getType();
    assertTrue(type instanceof EnumTypeDefinition);
    final EnumTypeDefinition myEnum = (EnumTypeDefinition) type;

    final List<EnumTypeDefinition.EnumPair> values = myEnum.getValues();
    assertEquals(2, values.size());

    final List<String> valueNames = new ArrayList<>();
    for (EnumTypeDefinition.EnumPair pair : values) {
        valueNames.add(pair.getName());
    }
    assertTrue(valueNames.contains("value-one"));
    assertTrue(valueNames.contains("value-two"));
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:27,代码来源:Bug2872Test.java

示例11: testDomainName

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
@Test
public void testDomainName() {
    Module tested = TestUtils.findModule(context, "ietf-inet-types").get();
    Set<TypeDefinition<?>> typedefs = tested.getTypeDefinitions();
    StringTypeDefinition type = (StringTypeDefinition) TestUtils.findTypedef(typedefs, "domain-name");
    assertNotNull(type.getBaseType());
    List<PatternConstraint> patterns = type.getPatternConstraints();
    assertEquals(1, patterns.size());
    String expectedPattern = "^((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*"
            + "([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)" + "|\\.$";
    assertEquals(expectedPattern, patterns.get(0).getJavaPatternString());

    LengthConstraint lengths = type.getLengthConstraint().get();
    assertEquals(1, lengths.getAllowedRanges().asRanges().size());
    Range<Integer> length = lengths.getAllowedRanges().span();
    assertEquals(Integer.valueOf(1), length.lowerEndpoint());
    assertEquals(Integer.valueOf(253), length.upperEndpoint());
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:19,代码来源:TypesResolutionTest.java

示例12: createComplexCodecFor

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
private T createComplexCodecFor(final TypedDataSchemaNode schema, final TypeDefinition<?> type) {
    if (type instanceof UnionTypeDefinition) {
        return createComplexUnion(schema, (UnionTypeDefinition) type);
    } else if (type instanceof LeafrefTypeDefinition) {
        final TypeDefinition<?> target = SchemaContextUtil.getBaseTypeForLeafRef((LeafrefTypeDefinition) type,
            schemaContext, schema);
        verifyNotNull(target, "Unable to find base type for leafref node %s type %s.", schema.getPath(),
                target);

        final T ret = getSimpleCodecFor(target);
        return ret != null ? ret : createComplexCodecFor(schema, target);
    } else if (type instanceof IdentityrefTypeDefinition) {
        return identityRefCodec((IdentityrefTypeDefinition) type, schema.getQName().getModule());
    } else {
        throw new IllegalArgumentException("Unsupported type " + type);
    }
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:18,代码来源:AbstractCodecFactory.java

示例13: testTypePath

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
@Test
public void testTypePath() throws ParseException {
    final Set<TypeDefinition<?>> types = bar.getTypeDefinitions();

    // int32-ext1
    final Int32TypeDefinition int32ext1 = (Int32TypeDefinition) TestUtils.findTypedef(types, "int32-ext1");
    final QName int32TypedefQName = QName.create(BAR, "int32-ext1");
    assertEquals(int32TypedefQName, int32ext1.getQName());

    final SchemaPath typeSchemaPath = int32ext1.getPath();
    final Iterable<QName> typePath = typeSchemaPath.getPathFromRoot();
    final Iterator<QName> typePathIt = typePath.iterator();
    assertEquals(int32TypedefQName, typePathIt.next());
    assertFalse(typePathIt.hasNext());

    // int32-ext1/int32
    final Int32TypeDefinition int32 = int32ext1.getBaseType();
    assertEquals(BaseTypes.int32Type(), int32);
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:20,代码来源:YangParserTest.java

示例14: testRestrictedTypeParentSchemaPathInDeviate

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
@Test
public void testRestrictedTypeParentSchemaPathInDeviate() throws Exception {
    final SchemaContext schemaContext = StmtTestUtils.parseYangSources("/bugs/bug7440");
    assertNotNull(schemaContext);

    final Revision revision = Revision.of("2016-12-23");
    final Module foo = schemaContext.findModule("foo", revision).get();
    final Module bar = schemaContext.findModule("bar", revision).get();

    final Set<Deviation> deviations = foo.getDeviations();
    assertEquals(1, deviations.size());
    final Deviation deviation = deviations.iterator().next();

    final List<DeviateDefinition> deviates = deviation.getDeviates();
    assertEquals(1, deviates.size());
    final DeviateDefinition deviateReplace = deviates.iterator().next();

    final SchemaPath deviatedTypePath = SchemaPath.create(true, QName.create(bar.getQNameModule(), "test-leaf"),
            QName.create(bar.getQNameModule(), "uint32"));

    final TypeDefinition<?> deviatedType = deviateReplace.getDeviatedType();
    assertEquals(deviatedTypePath, deviatedType.getPath());
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:24,代码来源:Bug7440Test.java

示例15: getBaseTypeForLeafRef

import org.opendaylight.yangtools.yang.model.api.TypeDefinition; //导入依赖的package包/类
/**
 * Returns base type for {@code typeDefinition} which belongs to module specified via {@code qname}. This handle
 * the case when leafref type isn't specified as type substatement of leaf or leaf-list but is defined in other
 * module as typedef which is then imported to referenced module.
 *
 * <p>
 * Because {@code typeDefinition} is definied via typedef statement, only absolute path is meaningful.
 */
public static TypeDefinition<?> getBaseTypeForLeafRef(final LeafrefTypeDefinition typeDefinition,
        final SchemaContext schemaContext, final QName qname) {
    final RevisionAwareXPath pathStatement = typeDefinition.getPathStatement();
    final RevisionAwareXPath strippedPathStatement = new RevisionAwareXPathImpl(
        stripConditionsFromXPathString(pathStatement), pathStatement.isAbsolute());
    if (!strippedPathStatement.isAbsolute()) {
        return null;
    }

    final Optional<Module> parentModule = schemaContext.findModule(qname.getModule());
    Preconditions.checkArgument(parentModule.isPresent(), "Failed to find parent module for %s", qname);

    final DataSchemaNode dataSchemaNode = (DataSchemaNode) SchemaContextUtil.findDataSchemaNode(schemaContext,
        parentModule.get(), strippedPathStatement);
    final TypeDefinition<?> targetTypeDefinition = typeDefinition(dataSchemaNode);
    if (targetTypeDefinition instanceof LeafrefTypeDefinition) {
        return getBaseTypeForLeafRef((LeafrefTypeDefinition) targetTypeDefinition, schemaContext, dataSchemaNode);
    }

    return targetTypeDefinition;
}
 
开发者ID:opendaylight,项目名称:yangtools,代码行数:30,代码来源:SchemaContextUtil.java


注:本文中的org.opendaylight.yangtools.yang.model.api.TypeDefinition类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。