Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2008, Red Hat, Inc., and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
  * http://www.apache.org/licenses/LICENSE-2.0
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.jboss.weld.ejb;
 
 import static org.jboss.weld.util.reflection.Reflections.cast;
 
 import java.util.Map;
 import java.util.Set;
 
 
EJB descriptors by EJB implementation class or name

Author(s):
Pete Muir
 
 public class EjbDescriptors implements ServiceIterable<InternalEjbDescriptor<?>> {
     // EJB name -> EJB descriptors map
     private final Map<StringInternalEjbDescriptor<?>> ejbByName;
 
     private final SetMultimap<Class<?>, StringejbByClass;
 
     public static final EjbDescriptors EMPTY = new EjbDescriptors();

    
Constructor
 
     public EjbDescriptors() {
         this. = new HashMap<StringInternalEjbDescriptor<?>>();
         this. = Multimaps.newSetMultimap(new HashMap<Class<?>, Collection<String>>(), HashSetSupplier.<String>instance());
     }

    
Gets an iterator to the EJB descriptors for an EJB implementation class

Parameters:
beanClass The EJB class
Returns:
An iterator
 
     public <T> InternalEjbDescriptor<T> get(String beanName) {
         return cast(.get(beanName));
     }

    
Adds an EJB descriptor to the maps

Parameters:
ejbDescriptor The EJB descriptor to add
 
     public <T> void add(EjbDescriptor<T> ejbDescriptor) {
         InternalEjbDescriptor<T> internalEjbDescriptor = InternalEjbDescriptor.of(ejbDescriptor);
         .put(ejbDescriptor.getEjbName(), internalEjbDescriptor);
         .put(ejbDescriptor.getBeanClass(), internalEjbDescriptor.getEjbName());
     }

    
Indicates if there are EJB descriptors available for an EJB implementation class

Parameters:
beanClass The class to match
Returns:
True if present, otherwise false
 
     public boolean contains(String beanName) {
         return .containsKey(beanName);
     }

    
Indicates if there are EJB descriptors available for an EJB implementation class

Parameters:
beanClass The class to match
Returns:
True if present, otherwise false
 
     public boolean contains(Class<?> beanClass) {
         return .containsKey(beanClass);
     }
 
     public <T> InternalEjbDescriptor<T> getUnique(Class<T> beanClass) {
        Set<Stringejbs = .get(beanClass);
        if (ejbs.size() > 1) {
            throw ..tooManyEjbsForClass(beanClassejbs);
        } else if (ejbs.size() == 0) {
            return null;
        } else {
            return get(ejbs.iterator().next());
        }
    }

    
Adds all EJB descriptors to the maps

Parameters:
ejbDescriptors The descriptors to add
    public void addAll(Iterable<EjbDescriptor<?>> ejbDescriptors) {
        for (EjbDescriptor<?> ejbDescriptor : ejbDescriptors) {
            add(ejbDescriptor);
        }
    }

    
Clears both maps
    public void clear() {
        .clear();
    }
    public Iterator<InternalEjbDescriptor<?>> iterator() {
        return .values().iterator();
    }
    public void cleanup() {
        this..clear();
        this..clear();
    }
New to GrepCode? Check out our FAQ X