Class MessageMethodBuilder


  • final class MessageMethodBuilder
    extends java.lang.Object
    Date: 29.07.2011
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Properties expressionProperties  
      private static java.lang.String MESSAGE_METHOD_SUFFIX  
      private java.util.List<javax.lang.model.element.ExecutableElement> methods  
      private javax.annotation.processing.ProcessingEnvironment processingEnv  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private MessageMethodBuilder​(javax.annotation.processing.ProcessingEnvironment processingEnv, java.util.Properties expressionProperties)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) MessageMethodBuilder add​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods)  
      (package private) java.util.Set<MessageMethod> build()  
      (package private) static MessageMethodBuilder create​(javax.annotation.processing.ProcessingEnvironment processingEnv)  
      (package private) static MessageMethodBuilder create​(javax.annotation.processing.ProcessingEnvironment processingEnv, java.util.Properties expressionProperties)  
      private java.util.Collection<javax.lang.model.element.ExecutableElement> findByName​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods, javax.lang.model.element.ExecutableElement method)  
      private java.util.Collection<javax.lang.model.element.ExecutableElement> findByName​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods, javax.lang.model.element.Name methodName)
      Returns a collection of methods with the same name.
      private MessageMethod.Message findMessage​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods, javax.lang.model.element.ExecutableElement method)  
      private int findMessageId​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods, javax.lang.model.element.ExecutableElement method)  
      private boolean hasMessageId​(Message message)  
      private boolean inheritsMessage​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods, javax.lang.model.element.ExecutableElement method)
      Checks to see if the method has or inherits a Message annotation.
      private boolean isOverloaded​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods, javax.lang.model.element.ExecutableElement method)
      Checks to see if the method is overloaded.
      private int parameterCount​(java.util.Collection<? extends javax.lang.model.element.VariableElement> params)
      Returns the number of parameters excluding the Cause parameter and any Param parameters if found.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • MESSAGE_METHOD_SUFFIX

        private static final java.lang.String MESSAGE_METHOD_SUFFIX
        See Also:
        Constant Field Values
      • methods

        private final java.util.List<javax.lang.model.element.ExecutableElement> methods
      • processingEnv

        private final javax.annotation.processing.ProcessingEnvironment processingEnv
      • expressionProperties

        private final java.util.Properties expressionProperties
    • Constructor Detail

      • MessageMethodBuilder

        private MessageMethodBuilder​(javax.annotation.processing.ProcessingEnvironment processingEnv,
                                     java.util.Properties expressionProperties)
    • Method Detail

      • add

        MessageMethodBuilder add​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods)
      • findMessage

        private MessageMethod.Message findMessage​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods,
                                                  javax.lang.model.element.ExecutableElement method)
      • findMessageId

        private int findMessageId​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods,
                                  javax.lang.model.element.ExecutableElement method)
      • hasMessageId

        private boolean hasMessageId​(Message message)
      • findByName

        private java.util.Collection<javax.lang.model.element.ExecutableElement> findByName​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods,
                                                                                            javax.lang.model.element.ExecutableElement method)
      • findByName

        private java.util.Collection<javax.lang.model.element.ExecutableElement> findByName​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods,
                                                                                            javax.lang.model.element.Name methodName)
        Returns a collection of methods with the same name.
        Parameters:
        methods - the methods to process.
        methodName - the method name to findByName.
        Returns:
        a collection of methods with the same name.
      • inheritsMessage

        private boolean inheritsMessage​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods,
                                        javax.lang.model.element.ExecutableElement method)
        Checks to see if the method has or inherits a Message annotation.
        Parameters:
        methods - the method to search.
        method - the method to check.
        Returns:
        true if the method has or inherits a message annotation, otherwise false.
      • isOverloaded

        private boolean isOverloaded​(java.util.Collection<javax.lang.model.element.ExecutableElement> methods,
                                     javax.lang.model.element.ExecutableElement method)
        Checks to see if the method is overloaded. An overloaded method has a different parameter count based on the format parameters only. Parameters annotated with Cause or Param are not counted.
        Parameters:
        methods - the method to search.
        method - the method to check.
        Returns:
        true if the method is overloaded, otherwise false.
      • parameterCount

        private int parameterCount​(java.util.Collection<? extends javax.lang.model.element.VariableElement> params)
        Returns the number of parameters excluding the Cause parameter and any Param parameters if found.
        Parameters:
        params - the parameters to get the count for.
        Returns:
        the number of parameters.
      • create

        static MessageMethodBuilder create​(javax.annotation.processing.ProcessingEnvironment processingEnv)
      • create

        static MessageMethodBuilder create​(javax.annotation.processing.ProcessingEnvironment processingEnv,
                                           java.util.Properties expressionProperties)