Java tutorial
// Copyright (c) 2009-2010 by the projectusus.org contributors // This software is released under the terms and conditions // of the Eclipse Public License (EPL) 1.0. // See http://www.eclipse.org/legal/epl-v10.html for details. package org.projectusus.ui.internal.proportions.infopresenter.infomodel; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IMethod; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.JavaModelException; public class UsusInfoBuilder { public static IUsusInfo of(IJavaElement element) { try { IJavaElement currentElement = element; while (currentElement != null) { if (currentElement.getElementType() == IJavaElement.METHOD) { return new UsusInfoForMethod((IMethod) currentElement); } if (currentElement.getElementType() == IJavaElement.TYPE) { return new UsusInfoForClass((IType) currentElement); } if (currentElement.getElementType() == IJavaElement.COMPILATION_UNIT) { return new UsusInfoForFile(currentElement.getUnderlyingResource()); } currentElement = currentElement.getParent(); } } catch (JavaModelException e) { // do nothing } return new UnavailableUsusInfo(element); } private UsusInfoBuilder() { super(); } }