/******************************************************************************* * Copyright (c) 2012, 2014 Institute for Software, HSR Hochschule fuer Technik * Rapperswil, University of applied sciences. * 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/epl-v10.html * * Contributors: * Thomas Corbat (IFS) - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.core.dom.ast.cpp; import org.eclipse.cdt.core.dom.ast.ASTNodeProperty; import org.eclipse.cdt.core.dom.ast.IASTAttributeOwner; import org.eclipse.cdt.core.dom.ast.IASTDeclaration; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNameOwner; /** * Represents a C++ alias declaration. * e.g. struct Type {}; using Alias = Type; * @since 5.5 * * @noextend This interface is not intended to be extended by clients. * @noimplement This interface is not intended to be implemented by clients. */ public interface ICPPASTAliasDeclaration extends IASTDeclaration, IASTNameOwner, IASTAttributeOwner { public static final ICPPASTAliasDeclaration[] EMPTY_ALIAS_DECLARATION_ARRAY = {}; /** * <code>ALIAS_NAME</code> is the name that is brought into the local scope. */ public static final ASTNodeProperty ALIAS_NAME = new ASTNodeProperty( "ICPPASTAliasDeclaration.ALIAS_NAME - Introduced alias name"); //$NON-NLS-1$ /** * <code>MAPPING_TYPE<ID/code> represents the pre-existing type id which * the new symbol aliases. */ public static final ASTNodeProperty TARGET_TYPEID = new ASTNodeProperty( "ICPPASTAliasDeclaration.TARGET_TYPEID - Pre-existing type ID the new symbol aliases"); //$NON-NLS-1$ /** * Returns the alias name. * * @return <code>IASTName</code> */ public IASTName getAlias(); /** * Sets the alias name. * * @param aliasName <code>IASTName</code> */ public void setAlias(IASTName aliasName); /** * Returns the mapping type id. * * @return <code>ICPPASTTypeId</code> */ public ICPPASTTypeId getMappingTypeId(); /** * Sets the mapping type id. * * @param mappingTypeId <code>ICPPASTTypeId</code> */ public void setMappingTypeId(ICPPASTTypeId mappingTypeId); @Override public ICPPASTAliasDeclaration copy(); @Override public ICPPASTAliasDeclaration copy(CopyStyle style); }