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

org.unidal.lookup.container.MyPlexusContainer Maven / Gradle / Ivy

The newest version!
package org.unidal.lookup.container;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.unidal.lookup.ComponentLookupException;
import org.unidal.lookup.PlexusContainer;
import org.unidal.lookup.container.model.entity.ComponentModel;
import org.unidal.lookup.logging.Logger;

public class MyPlexusContainer implements PlexusContainer {
	private ComponentManager m_manager;

	private Map m_context = new HashMap();

	public MyPlexusContainer() throws Exception {
		this(null);
	}

	public MyPlexusContainer(InputStream in) throws Exception {
		m_manager = new ComponentManager(this, in);
		m_context.put("plexus", this);
	}

	@Override
	public  void addComponent(T component, Class role, String roleHint) {
		m_manager.register(new ComponentKey(role, roleHint), component);
	}

	@Override
	public void addComponentModel(Object component) {
		m_manager.addComponentModel((ComponentModel) component);
	}

	@Override
	public void addContextValue(String key, Object value) {
		m_context.put(key, value);
	}

	@Override
	public void dispose() {
		m_manager.destroy();
	}

	@Override
	public Map getContext() {
		return m_context;
	}

	@Override
	public Logger getLogger() {
		return m_manager.getLoggerManager().getLoggerForComponent("");
	}

	@Override
	public boolean hasComponent(Class type) {
		return hasComponent(type.getName(), null);
	}

	@Override
	public boolean hasComponent(Class role, String roleHint) {
		return m_manager.hasComponent(new ComponentKey(role, roleHint));
	}

	public boolean hasComponent(String role) {
		return hasComponent(role, null);
	}

	public boolean hasComponent(String role, String roleHint) {
		return m_manager.hasComponent(new ComponentKey(role, roleHint));
	}

	@Override
	public  T lookup(Class type) throws ComponentLookupException {
		return m_manager.lookup(new ComponentKey(type, null));
	}

	@Override
	public  T lookup(Class type, String roleHint) throws ComponentLookupException {
		return m_manager.lookup(new ComponentKey(type, roleHint));
	}

	@Override
	public  List lookupList(Class type) throws ComponentLookupException {
		return m_manager.lookupList(type.getName());
	}

	@Override
	public  List lookupList(Class type, List roleHints) throws ComponentLookupException {
		throw new UnsupportedOperationException();
	}

	@Override
	public  Map lookupMap(Class type) throws ComponentLookupException {
		return m_manager.lookupMap(type.getName());
	}

	@Override
	public  Map lookupMap(Class type, List roleHints) throws ComponentLookupException {
		throw new UnsupportedOperationException();
	}

	@Override
	public void release(Object component) {
		m_manager.release(component);
	}

	@Override
	public String toString() {
		return getClass().getSimpleName();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy