Coverage Report - pt.digitalis.dif.codegen.util.ClassMethodEnhancement
 
Classes in this File Line Coverage Branch Coverage Complexity
ClassMethodEnhancement
0%
0/26
0%
0/6
1,5
 
 1  0
 /** 2007, Digitalis Informatica. All rights reserved.
 2  
  *
 3  
  * Distribuicao e Gestao de Informatica, Lda.
 4  
  * Estrada de Paco de Arcos num.9 - Piso -1
 5  
  * 2780-666 Paco de Arcos
 6  
  * Telefone: (351) 21 4408990
 7  
  * Fax: (351) 21 4408999
 8  
  * http://www.digitalis.pt
 9  
  */
 10  
 package pt.digitalis.dif.codegen.util;
 11  
 
 12  
 import pt.digitalis.dif.utils.ObjectFormatter;
 13  
 
 14  
 /**
 15  
  * Defines a method enhancement object.
 16  
  *
 17  
  * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a>
 18  
  * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a><br/>
 19  
  * @created Dec 10, 2007
 20  
  */
 21  
 public class ClassMethodEnhancement {
 22  
 
 23  
     /** Defines if source should be appended or overwritten on each addition operation. T is for append, F for overwrite. */
 24  
     private boolean incrementalMode;
 25  
 
 26  
     /** The name of the method to enhance. */
 27  
     private String methodName;
 28  
 
 29  
     /** The method source. */
 30  0
     private StringBuilder source = new StringBuilder();
 31  
 
 32  
     /** the finalizer code if needed */
 33  0
     String terminatorSource = "";
 34  
 
 35  
     /**
 36  
      * Builds a new method enhancement object.
 37  
      *
 38  
      * @param methodName
 39  
      *            the name of the method
 40  
      * @param incrementalMode
 41  
      *            defines the incremental mode
 42  
      */
 43  0
     public ClassMethodEnhancement(String methodName, boolean incrementalMode) {
 44  0
         this.methodName = methodName;
 45  0
         this.incrementalMode = incrementalMode;
 46  0
     }
 47  
 
 48  
     /**
 49  
      * Adds source to the method. If it is a non-incremental source method it will overwrite previous source code
 50  
      *
 51  
      * @param source
 52  
      *            the source to add
 53  
      */
 54  
     public void addSource(String source) {
 55  0
         if (isIncrementalMode())
 56  0
             this.source.append(source);
 57  
         else
 58  0
             this.source = new StringBuilder(source);
 59  0
     }
 60  
 
 61  
     /**
 62  
      * Returns the method name.
 63  
      *
 64  
      * @return the method name
 65  
      */
 66  
     public String getMethodName() {
 67  0
         return methodName;
 68  
     }
 69  
 
 70  
     /**
 71  
      * Returns the source.
 72  
      *
 73  
      * @return the source
 74  
      */
 75  
     public String getSource() {
 76  0
         if (terminatorSource == null || "".equals(terminatorSource))
 77  0
             return source.toString();
 78  
         else
 79  0
             return source.toString() + "\n" + terminatorSource;
 80  
     }
 81  
 
 82  
     /**
 83  
      * Inspector for the 'incrementalMode' property.
 84  
      *
 85  
      * @return the incrementalMode property value
 86  
      */
 87  
     public boolean isIncrementalMode() {
 88  0
         return incrementalMode;
 89  
     }
 90  
 
 91  
     /**
 92  
      * Modifier for the 'source' attribute.
 93  
      *
 94  
      * @param source the new source value to set
 95  
      */
 96  
     public void setSource(StringBuilder source)
 97  
     {
 98  0
         this.source = source;
 99  0
     }
 100  
 
 101  
     /**
 102  
      * Adds source as the methods terminator (finalizer) code. it will overwrite previous source terminator code
 103  
      *
 104  
      * @param source
 105  
      *            the source to add
 106  
      */
 107  
     public void setTerminator(String source) {
 108  0
         this.terminatorSource = source;
 109  0
     }
 110  
 
 111  
 
 112  
     /**
 113  
      * @see java.lang.Object#toString()
 114  
      */
 115  
     @Override
 116  
     public String toString() {
 117  0
         ObjectFormatter formatter = new ObjectFormatter();
 118  
 
 119  0
         formatter.addItem("Method Name", this.methodName);
 120  0
         formatter.addItem("Incremental", incrementalMode);
 121  0
         formatter.addItem("Source", source);
 122  0
         formatter.addItem("Terminator Source", terminatorSource);
 123  
 
 124  0
         return formatter.getFormatedObject();
 125  
     }
 126  
 }