Coverage Report - org.apache.maven.artifact.repository.metadata.Metadata
 
Classes in this File Line Coverage Branch Coverage Complexity
Metadata
0%
0/92
0%
0/60
2.6
 
 1  
 /*
 2  
  * $Id$
 3  
  */
 4  
 
 5  
 package org.apache.maven.artifact.repository.metadata;
 6  
 
 7  
   //---------------------------------/
 8  
  //- Imported classes and packages -/
 9  
 //---------------------------------/
 10  
 
 11  
 import java.util.Date;
 12  
 
 13  
 /**
 14  
  * Class Metadata.
 15  
  * 
 16  
  * @version $Revision$ $Date$
 17  
  */
 18  0
 public class Metadata implements java.io.Serializable {
 19  
 
 20  
 
 21  
       //--------------------------/
 22  
      //- Class/Member Variables -/
 23  
     //--------------------------/
 24  
 
 25  
     /**
 26  
      * The groupId that this directory represents, if any.
 27  
      */
 28  
     private String groupId;
 29  
 
 30  
     /**
 31  
      * The artifactId that this directory represents, if any.
 32  
      */
 33  
     private String artifactId;
 34  
 
 35  
     /**
 36  
      * The version that this directory represents, if any.
 37  
      */
 38  
     private String version;
 39  
 
 40  
     /**
 41  
      * Versioning information for the artifact.
 42  
      */
 43  
     private Versioning versioning;
 44  
 
 45  
     /**
 46  
      * Field plugins.
 47  
      */
 48  
     private java.util.List plugins;
 49  
 
 50  
 
 51  
       //-----------/
 52  
      //- Methods -/
 53  
     //-----------/
 54  
 
 55  
     /**
 56  
      * Method addPlugin.
 57  
      * 
 58  
      * @param plugin
 59  
      */
 60  
     public void addPlugin( Plugin plugin )
 61  
     {
 62  0
         if ( !(plugin instanceof Plugin) )
 63  
         {
 64  0
             throw new ClassCastException( "Metadata.addPlugins(plugin) parameter must be instanceof " + Plugin.class.getName() );
 65  
         }
 66  0
         getPlugins().add( plugin );
 67  0
     } //-- void addPlugin( Plugin ) 
 68  
 
 69  
     /**
 70  
      * Get the artifactId that this directory represents, if any.
 71  
      * 
 72  
      * @return String
 73  
      */
 74  
     public String getArtifactId()
 75  
     {
 76  0
         return this.artifactId;
 77  
     } //-- String getArtifactId() 
 78  
 
 79  
     /**
 80  
      * Get the groupId that this directory represents, if any.
 81  
      * 
 82  
      * @return String
 83  
      */
 84  
     public String getGroupId()
 85  
     {
 86  0
         return this.groupId;
 87  
     } //-- String getGroupId() 
 88  
 
 89  
     /**
 90  
      * Method getPlugins.
 91  
      * 
 92  
      * @return java.util.List
 93  
      */
 94  
     public java.util.List getPlugins()
 95  
     {
 96  0
         if ( this.plugins == null )
 97  
         {
 98  0
             this.plugins = new java.util.ArrayList();
 99  
         }
 100  
     
 101  0
         return this.plugins;
 102  
     } //-- java.util.List getPlugins() 
 103  
 
 104  
     /**
 105  
      * Get the version that this directory represents, if any.
 106  
      * 
 107  
      * @return String
 108  
      */
 109  
     public String getVersion()
 110  
     {
 111  0
         return this.version;
 112  
     } //-- String getVersion() 
 113  
 
 114  
     /**
 115  
      * Get versioning information for the artifact.
 116  
      * 
 117  
      * @return Versioning
 118  
      */
 119  
     public Versioning getVersioning()
 120  
     {
 121  0
         return this.versioning;
 122  
     } //-- Versioning getVersioning() 
 123  
 
 124  
     /**
 125  
      * Method removePlugin.
 126  
      * 
 127  
      * @param plugin
 128  
      */
 129  
     public void removePlugin( Plugin plugin )
 130  
     {
 131  0
         if ( !(plugin instanceof Plugin) )
 132  
         {
 133  0
             throw new ClassCastException( "Metadata.removePlugins(plugin) parameter must be instanceof " + Plugin.class.getName() );
 134  
         }
 135  0
         getPlugins().remove( plugin );
 136  0
     } //-- void removePlugin( Plugin ) 
 137  
 
 138  
     /**
 139  
      * Set the artifactId that this directory represents, if any.
 140  
      * 
 141  
      * @param artifactId
 142  
      */
 143  
     public void setArtifactId( String artifactId )
 144  
     {
 145  0
         this.artifactId = artifactId;
 146  0
     } //-- void setArtifactId( String ) 
 147  
 
 148  
     /**
 149  
      * Set the groupId that this directory represents, if any.
 150  
      * 
 151  
      * @param groupId
 152  
      */
 153  
     public void setGroupId( String groupId )
 154  
     {
 155  0
         this.groupId = groupId;
 156  0
     } //-- void setGroupId( String ) 
 157  
 
 158  
     /**
 159  
      * Set the set of plugin mappings for the group.
 160  
      * 
 161  
      * @param plugins
 162  
      */
 163  
     public void setPlugins( java.util.List plugins )
 164  
     {
 165  0
         this.plugins = plugins;
 166  0
     } //-- void setPlugins( java.util.List ) 
 167  
 
 168  
     /**
 169  
      * Set the version that this directory represents, if any.
 170  
      * 
 171  
      * @param version
 172  
      */
 173  
     public void setVersion( String version )
 174  
     {
 175  0
         this.version = version;
 176  0
     } //-- void setVersion( String ) 
 177  
 
 178  
     /**
 179  
      * Set versioning information for the artifact.
 180  
      * 
 181  
      * @param versioning
 182  
      */
 183  
     public void setVersioning( Versioning versioning )
 184  
     {
 185  0
         this.versioning = versioning;
 186  0
     } //-- void setVersioning( Versioning ) 
 187  
 
 188  
 
 189  
     public boolean merge( Metadata sourceMetadata )
 190  
     {
 191  0
         boolean changed = false;
 192  
 
 193  0
         for ( java.util.Iterator i = sourceMetadata.getPlugins().iterator(); i.hasNext(); )
 194  
         {
 195  0
             Plugin plugin = (Plugin) i.next();
 196  0
             boolean found = false;
 197  
 
 198  0
             for ( java.util.Iterator it = getPlugins().iterator(); it.hasNext() && !found; )
 199  
             {
 200  0
                 Plugin preExisting = (Plugin) it.next();
 201  
 
 202  0
                 if ( preExisting.getPrefix().equals( plugin.getPrefix() ) )
 203  
                 {
 204  0
                     found = true;
 205  
                 }
 206  0
             }
 207  
 
 208  0
             if ( !found )
 209  
             {
 210  0
                 Plugin mappedPlugin = new Plugin();
 211  
 
 212  0
                 mappedPlugin.setArtifactId( plugin.getArtifactId() );
 213  
 
 214  0
                 mappedPlugin.setPrefix( plugin.getPrefix() );
 215  
 
 216  0
                 mappedPlugin.setName( plugin.getName() );
 217  
 
 218  0
                 addPlugin( mappedPlugin );
 219  
 
 220  0
                 changed = true;
 221  
             }
 222  0
         }
 223  
 
 224  0
         Versioning versioning = sourceMetadata.getVersioning();
 225  0
         if ( versioning != null )
 226  
         {
 227  0
             Versioning v = getVersioning();
 228  0
             if ( v == null )
 229  
             {
 230  0
                 v = new Versioning();
 231  0
                 setVersioning( v );
 232  0
                 changed = true;
 233  
             }
 234  
 
 235  0
             for ( java.util.Iterator i = versioning.getVersions().iterator(); i.hasNext(); )
 236  
             {
 237  0
                 String version = (String) i.next();
 238  0
                 if ( !v.getVersions().contains( version ) )
 239  
                 {
 240  0
                     changed = true;
 241  0
                     v.getVersions().add( version );
 242  
                 }
 243  0
             }
 244  
           
 245  0
             if ( "null".equals( versioning.getLastUpdated() ) )
 246  
             {
 247  0
                 versioning.setLastUpdated( null );
 248  
             }
 249  
 
 250  0
             if ( "null".equals( v.getLastUpdated() ) )
 251  
             {
 252  0
                 v.setLastUpdated( null );
 253  
             }
 254  
 
 255  0
             if ( versioning.getLastUpdated() == null || versioning.getLastUpdated().length() == 0 )
 256  
             {
 257  
                 // this should only be for historical reasons - we assume local is newer
 258  0
                 versioning.setLastUpdated( v.getLastUpdated() );
 259  
             }
 260  
 
 261  0
             if ( v.getLastUpdated() == null || v.getLastUpdated().length() == 0 ||
 262  
                  versioning.getLastUpdated().compareTo( v.getLastUpdated() ) >= 0 )
 263  
             {
 264  0
                 changed = true;
 265  0
                 v.setLastUpdated( versioning.getLastUpdated() );
 266  
 
 267  0
                 if ( versioning.getRelease() != null )
 268  
                 {
 269  0
                     changed = true;
 270  0
                     v.setRelease( versioning.getRelease() );
 271  
                 }
 272  0
                 if ( versioning.getLatest() != null )
 273  
                 {
 274  0
                     changed = true;
 275  0
                     v.setLatest( versioning.getLatest() );
 276  
                 }
 277  
 
 278  0
                 Snapshot s = v.getSnapshot();
 279  0
                 Snapshot snapshot = versioning.getSnapshot();
 280  0
                 if ( snapshot != null )
 281  
                 {
 282  0
                     if ( s == null )
 283  
                     {
 284  0
                         s = new Snapshot();
 285  0
                         v.setSnapshot( s );
 286  0
                         changed = true;
 287  
                     }
 288  
 
 289  
                     // overwrite
 290  0
                     if ( s.getTimestamp() == null ? snapshot.getTimestamp() != null
 291  
                         : !s.getTimestamp().equals( snapshot.getTimestamp() ) )
 292  
                     {
 293  0
                         s.setTimestamp( snapshot.getTimestamp() );
 294  0
                         changed = true;
 295  
                     }
 296  0
                     if ( s.getBuildNumber() != snapshot.getBuildNumber() )
 297  
                     {
 298  0
                         s.setBuildNumber( snapshot.getBuildNumber() );
 299  0
                         changed = true;
 300  
                     }
 301  0
                     if ( s.isLocalCopy() != snapshot.isLocalCopy() )
 302  
                     {
 303  0
                         s.setLocalCopy( snapshot.isLocalCopy() );
 304  0
                         changed = true;
 305  
                     }
 306  
                 }
 307  
             }
 308  
         }
 309  0
         return changed;
 310  
     }
 311  
           
 312  0
     private String modelEncoding = "UTF-8";
 313  
 
 314  
     /**
 315  
      * Set an encoding used for reading/writing the model.
 316  
      *
 317  
      * @param modelEncoding the encoding used when reading/writing the model.
 318  
      */
 319  
     public void setModelEncoding( String modelEncoding )
 320  
     {
 321  0
         this.modelEncoding = modelEncoding;
 322  0
     }
 323  
 
 324  
     /**
 325  
      * @return the current encoding used when reading/writing this model.
 326  
      */
 327  
     public String getModelEncoding()
 328  
     {
 329  0
         return modelEncoding;
 330  
     }
 331  
 }