/* * Copyright (c) 2013, 2015 QNX Software Systems 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 */ package org.eclipse.cdt.internal.qt.core.index; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.eclipse.cdt.core.dom.ast.IEnumerator; import org.eclipse.cdt.core.dom.ast.IValue; public class QEnum implements IQEnum { private final String name; private final boolean isFlag; private final List<IQEnum.Enumerator> enumerators; public QEnum(String name, boolean isFlag, List<IEnumerator> enumerators) { this.name = name; this.isFlag = isFlag; this.enumerators = new ArrayList<IQEnum.Enumerator>(enumerators.size()); for (IEnumerator enumerator : enumerators) this.enumerators.add(new Enumerator(enumerator)); } @Override public String getName() { return name; } @Override public boolean isFlag() { return isFlag; } @Override public Collection<IQEnum.Enumerator> getEnumerators() { return enumerators; } private static class Enumerator implements IQEnum.Enumerator { private final String name; private final Long ordinal; public Enumerator(IEnumerator enumerator) { this.name = enumerator.getName(); IValue val = enumerator.getValue(); this.ordinal = val == null ? null : val.numberValue().longValue(); } @Override public String getName() { return name; } @Override public Long getOrdinal() { return ordinal; } } }