/******************************************************************************* * Copyright (c) 2004, 2015 IBM Corporation 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/epl-v10.html * * Contributors: * John Camelon (IBM) - Initial API and implementation * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.dom.parser.cpp; import org.eclipse.cdt.core.dom.ast.IASTAlignmentSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeclSpecifier; import org.eclipse.cdt.internal.core.model.ASTStringUtil; /** * Base for all C++ declaration specifiers. */ public abstract class CPPASTBaseDeclSpecifier extends CPPASTAttributeOwner implements ICPPASTDeclSpecifier { private boolean isConst; private boolean isConstexpr; private boolean isExplicit; private boolean isFriend; private boolean isInline; private boolean isRestrict; private boolean isThreadLocal; private boolean isVirtual; private boolean isVolatile; private int storageClass; @Override public final boolean isConst() { return isConst; } @Override public final void setConst(boolean value) { assertNotFrozen(); isConst = value; } @Override public final boolean isConstexpr() { return isConstexpr; } @Override public final void setConstexpr(boolean value) { assertNotFrozen(); isConstexpr = value; } @Override public final boolean isFriend() { return isFriend; } @Override public final void setFriend(boolean value) { assertNotFrozen(); isFriend = value; } @Override public final int getStorageClass() { return storageClass; } @Override public final void setStorageClass(int storageClass) { assertNotFrozen(); this.storageClass = storageClass; } @Override public final boolean isThreadLocal() { return isThreadLocal; } @Override public final void setThreadLocal(boolean value) { assertNotFrozen(); isThreadLocal = value; } @Override public final boolean isVolatile() { return isVolatile; } @Override public final void setVolatile(boolean value) { assertNotFrozen(); isVolatile = value; } @Override public final boolean isRestrict() { return isRestrict; } @Override public final void setRestrict(boolean value) { assertNotFrozen(); isRestrict = value; } @Override public final boolean isInline() { return isInline; } @Override public final void setInline(boolean value) { assertNotFrozen(); this.isInline = value; } @Override public final boolean isVirtual() { return isVirtual; } @Override public final void setVirtual(boolean value) { assertNotFrozen(); isVirtual = value; } @Override public final boolean isExplicit() { return isExplicit; } @Override public final void setExplicit(boolean value) { assertNotFrozen(); this.isExplicit = value; } @Deprecated @Override public IASTAlignmentSpecifier[] getAlignmentSpecifiers() { return null; } @Deprecated @Override public void setAlignmentSpecifiers(IASTAlignmentSpecifier[] alignmentSpecifiers) { } protected <T extends CPPASTBaseDeclSpecifier> T copy(T copy, CopyStyle style) { CPPASTBaseDeclSpecifier target = copy; target.isExplicit = isExplicit; target.isFriend = isFriend; target.isInline = isInline; target.isConst = isConst; target.isConstexpr = isConstexpr; target.isRestrict= isRestrict; target.isThreadLocal = isThreadLocal; target.isVolatile = isVolatile; target.storageClass = storageClass; target.isVirtual = isVirtual; return super.copy(copy, style); } /** * Provided for debugging purposes, only. */ @Override public String toString() { return ASTStringUtil.getSignatureString(this, null); } }