Java tutorial
/* * Thrifty * * Copyright (c) Microsoft Corporation * * All rights reserved. * * 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 * * THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING * WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, * FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. * * See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. */ package com.microsoft.thrifty.schema; import com.google.common.collect.ImmutableMap; import com.microsoft.thrifty.schema.parser.AnnotationElement; import com.microsoft.thrifty.schema.parser.TypedefElement; import java.util.Map; public final class Typedef extends Named { private final TypedefElement element; private final ImmutableMap<String, String> annotations; private ThriftType oldType; private ThriftType type; Typedef(TypedefElement element, Map<NamespaceScope, String> namespaces) { super(element.newName(), namespaces); this.element = element; ImmutableMap.Builder<String, String> annotationBuilder = ImmutableMap.builder(); AnnotationElement anno = element.annotations(); if (anno != null) { annotationBuilder.putAll(anno.values()); } this.annotations = annotationBuilder.build(); } @Override public ThriftType type() { return type; } @Override public String documentation() { return element.documentation(); } @Override public Location location() { return element.location(); } public String oldName() { return element.oldType().name(); } public ThriftType oldType() { return oldType; } public ImmutableMap<String, String> annotations() { return annotations; } public ImmutableMap<String, String> sourceTypeAnnotations() { return oldType.annotations(); } boolean link(Linker linker) { oldType = linker.resolveType(element.oldType()); type = ThriftType.typedefOf(oldType, element.newName()); return true; } }