Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2010, 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.bootstrap.api.helpers;
 
 import java.util.Map;
 import java.util.Set;
 
A registry for services

Author(s):
Pete Muir
 
 public class SimpleServiceRegistry implements ServiceRegistry {
 
     private final Map<Class<? extends Service>, Serviceservices;
     private final Set<BootstrapServicebootstrapServices;
 
     public SimpleServiceRegistry() {
         this. = new HashMap<Class<? extends Service>, Service>();
         this. = new HashSet<BootstrapService>();
     }
 
     public <S extends Servicevoid add(java.lang.Class<S> type, S service) {
         .put(typeservice);
         if (service instanceof BootstrapService) {
             .add((BootstrapServiceservice);
         }
     }
 
     @SuppressWarnings("unchecked")
     public void addAll(Collection<Entry<Class<? extends Service>, Service>> services) {
         for (Entry<Class<? extends Service>, Serviceentry : services) {
             add((Class<Service>) entry.getKey(), entry.getValue());
         }
     }
 
     public Set<Entry<Class<? extends Service>, Service>> entrySet() {
         return .entrySet();
     }
 
     protected Map<Class<? extends Service>, Serviceget() {
         return ;
     }
 
     @SuppressWarnings("unchecked")
     public <S extends Service> S get(Class<S> type) {
         return (S) .get(type);
     }
 
     public <S extends Serviceboolean contains(Class<S> type) {
         return .containsKey(type);
     }
 
     public void cleanup() {
         for (Service service : .values()) {
             service.cleanup();
         }
     }
 
     @Override
     public void cleanupAfterBoot() {
         for (BootstrapService service : ) {
             service.cleanupAfterBoot();
         }
     }
 
     @Override
     public String toString() {
         return .toString();
     }
 
     @Override
     public int hashCode() {
         return .hashCode();
     }
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Map<?, ?>) {
            return .equals(obj);
        } else {
            return false;
        }
    }
    public Iterator<Serviceiterator() {
        return new ValueIterator<Class<? extends Service>, Service>() {
            @Override
            protected Iterator<Entry<Class<? extends Service>, Service>> delegate() {
                return .entrySet().iterator();
            }
        };
    }
    private abstract static class ValueIterator<K, V> implements Iterator<V> {
        protected abstract Iterator<Entry<K, V>> delegate();
        public boolean hasNext() {
            return delegate().hasNext();
        }
        public V next() {
            return delegate().next().getValue();
        }
        public void remove() {
            delegate().remove();
        }
    }
New to GrepCode? Check out our FAQ X