org.eclipse.jdt.internal.compiler.codegen.MultiCatchExceptionLabel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spotless-ext-greclipse Show documentation
Show all versions of spotless-ext-greclipse Show documentation
Groovy Eclipse's formatter bundled for Spotless
The newest version!
/*******************************************************************************
* Copyright (c) 2011, 2013 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:
* IBM Corporation - initial API and implementation
* Andy Clement (GoPivotal, Inc) [email protected] - Contributions for
* Bug 383624 - [1.8][compiler] Revive code generation support for type annotations (from Olivier's work)
* Bug 409246 - [1.8][compiler] Type annotations on catch parameters not handled properly
*******************************************************************************/
package org.eclipse.jdt.internal.compiler.codegen;
import org.eclipse.jdt.internal.compiler.ast.Annotation;
import org.eclipse.jdt.internal.compiler.ast.UnionTypeReference;
import org.eclipse.jdt.internal.compiler.ast.TypeReference;
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
public class MultiCatchExceptionLabel extends ExceptionLabel {
ExceptionLabel[] exceptionLabels;
public MultiCatchExceptionLabel(CodeStream codeStream, TypeBinding exceptionType) {
super(codeStream, exceptionType);
}
public void initialize(UnionTypeReference typeReference, Annotation [] annotations) {
TypeReference[] typeReferences = typeReference.typeReferences;
int length = typeReferences.length;
this.exceptionLabels = new ExceptionLabel[length];
for (int i = 0; i < length; i++) {
this.exceptionLabels[i] = new ExceptionLabel(this.codeStream, typeReferences[i].resolvedType, typeReferences[i], i == 0 ? annotations : null);
}
}
public void place() {
for (int i = 0, max = this.exceptionLabels.length; i < max; i++) {
this.exceptionLabels[i].place();
}
}
public void placeEnd() {
for (int i = 0, max = this.exceptionLabels.length; i < max; i++) {
this.exceptionLabels[i].placeEnd();
}
}
public void placeStart() {
for (int i = 0, max = this.exceptionLabels.length; i < max; i++) {
this.exceptionLabels[i].placeStart();
}
}
public int getCount() {
int temp = 0;
for (int i = 0, max = this.exceptionLabels.length; i < max; i++) {
temp += this.exceptionLabels[i].getCount();
}
return temp;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy