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.metadata.cache;
 
 import java.util.Set;
 
 
Meta model for the merged stereotype for a bean

Author(s):
Pete Muir
 
 public class MergedStereotypes<T, E> {
     // The possible scope types
     private final ArraySet<AnnotationpossibleScopeTypes;
     // Is the bean name defaulted?
     private boolean beanNameDefaulted;
     // Are any of the stereotypes alternatives
     private boolean alternative;
 
     private Set<Class<? extends Annotation>> stereotypes;
 
     private final BeanManagerImpl manager;
 
     public static <T, E> MergedStereotypes<T, E> of(EnhancedAnnotated<T, E> annotatedBeanManagerImpl manager) {
         return of(annotated.getMetaAnnotations(Stereotype.class), manager);
     }
 
     public static <T, E> MergedStereotypes<T, E> of(Set<AnnotationstereotypeAnnotationsBeanManagerImpl manager) {
         return new MergedStereotypes<T, E>(stereotypeAnnotationsmanager);
     }

    
Constructor

Parameters:
stereotypeAnnotations The stereotypes to merge
 
     protected MergedStereotypes(Set<AnnotationstereotypeAnnotationsBeanManagerImpl manager) {
         this. = new ArraySet<Annotation>();
         this. = new ArraySet<Class<? extends Annotation>>();
         this. = manager;
         merge(stereotypeAnnotations);
         this..trimToSize();
         Reflections.<ArraySet<?>>cast(this.).trimToSize();
         this. = SharedObjectCache.instance(manager).getSharedSet();
     }

    
Perform the merge

Parameters:
stereotypeAnnotations The stereotype annotations
 
     protected void merge(Set<AnnotationstereotypeAnnotations) {
         final MetaAnnotationStore store = .getServices().get(MetaAnnotationStore.class);
         for (Annotation stereotypeAnnotation : stereotypeAnnotations) {
             // Retrieve and merge all metadata from stereotypes
             StereotypeModel<?> stereotype = store.getStereotype(stereotypeAnnotation.annotationType());
             if (stereotype == null) {
                 throw ..stereotypeNotRegistered(stereotypeAnnotation);
             }
             if (stereotype.isAlternative()) {
                  = true;
             }
             if (stereotype.getDefaultScopeType() != null) {
                 .add(stereotype.getDefaultScopeType());
             }
             if (stereotype.isBeanNameDefaulted()) {
                  = true;
             }
             this..add(stereotypeAnnotation.annotationType());
             // Merge in inherited stereotypes
             merge(stereotype.getInheritedStereotypes());
         }
     }
 
     public boolean isAlternative() {
        return ;
    }

    
Returns the possible scope types

Returns:
The scope types
    public Set<AnnotationgetPossibleScopes() {
        return ;
    }

    
Indicates if the name i defaulted

Returns:
True if defaulted, false if not
    public boolean isBeanNameDefaulted() {
        return ;
    }

    

Returns:
the stereotypes
    public Set<Class<? extends Annotation>> getStereotypes() {
        return ;
    }

    
Gets a string representation of the merged stereotypes

Returns:
The string representation
    @Override
    public String toString() {
        return "Merged stereotype model; Any of the stereotypes is an alternative: " +
                 + "; possible scopes " + ;
    }
New to GrepCode? Check out our FAQ X