All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.sisu.BeanEntry Maven / Gradle / Ivy

There is a newer version: 3.0.0-alpha-3
Show newest version
/*******************************************************************************
 * Copyright (c) 2010-present Sonatype, Inc.
 * 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:
 *   Stuart McCulloch (Sonatype, Inc.) - initial API and implementation
 *******************************************************************************/
package org.eclipse.sisu;

import java.lang.annotation.Annotation;
import java.util.Map.Entry;

import javax.inject.Provider;
import javax.inject.Qualifier;

/**
 * Describes Qualified bean implementations of T:
*
* *
 * @Inject
 * Iterable<BeanEntry<Named, Command>> commands;
 * 
* * Use this when you want to know more about available beans; especially if you want to avoid creating instances. * * @see org.eclipse.sisu.inject.BeanLocator */ public interface BeanEntry extends Entry { /** * Returns the @{@link Qualifier} annotation associated with this particular bean. * * @return Qualifier annotation */ Q getKey(); /** * Returns the associated instance of the bean; returns same instance for each call. * * @return Bean instance (lazily-created) */ T getValue(); /** * Returns the underlying {@link Provider}; may support creation of multiple instances. * * @return Bean provider */ Provider getProvider(); /** * Returns a human-readable description of the bean; see @{@link Description}. * * @return Human-readable description * @see Description */ String getDescription(); /** * Attempts to find the implementation type without creating the bean instance. * * @return Implementation type; {@code null} if the type cannot be determined */ Class getImplementationClass(); /** * Returns an arbitrary object that indicates where this bean was configured. * * @return Source location */ Object getSource(); /** * Returns the bean's rank; higher ranked beans override lower ranked beans. * * @return Assigned rank * @see Priority */ int getRank(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy