Coverage Report - org.apache.maven.plugin.eclipse.writers.EclipseWriterConfig
 
Classes in this File Line Coverage Branch Coverage Complexity
EclipseWriterConfig
57%
43/75
50%
1/2
1.174
EclipseWriterConfig$1
31%
4/13
10%
1/10
1.174
 
 1  
 /*
 2  
  * Licensed to the Apache Software Foundation (ASF) under one
 3  
  * or more contributor license agreements.  See the NOTICE file
 4  
  * distributed with this work for additional information
 5  
  * regarding copyright ownership.  The ASF licenses this file
 6  
  * to you under the Apache License, Version 2.0 (the
 7  
  * "License"); you may not use this file except in compliance
 8  
  * with the License.  You may obtain a copy of the License at
 9  
  *
 10  
  *   http://www.apache.org/licenses/LICENSE-2.0
 11  
  *
 12  
  * Unless required by applicable law or agreed to in writing,
 13  
  * software distributed under the License is distributed on an
 14  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 15  
  * KIND, either express or implied.  See the License for the
 16  
  * specific language governing permissions and limitations
 17  
  * under the License.
 18  
  */
 19  
 package org.apache.maven.plugin.eclipse.writers;
 20  
 
 21  
 import java.io.File;
 22  
 import java.util.Arrays;
 23  
 import java.util.Comparator;
 24  
 import java.util.List;
 25  
 import java.util.Map;
 26  
 
 27  
 import org.apache.maven.artifact.repository.ArtifactRepository;
 28  
 import org.apache.maven.plugin.eclipse.EclipsePlugin;
 29  
 import org.apache.maven.plugin.eclipse.EclipseSourceDir;
 30  
 import org.apache.maven.plugin.eclipse.WorkspaceConfiguration;
 31  
 import org.apache.maven.plugin.ide.IdeDependency;
 32  
 import org.apache.maven.project.MavenProject;
 33  
 
 34  
 /**
 35  
  * @author Fabrizio Giustina
 36  
  * @version $Id: EclipseWriterConfig.java 691404 2008-09-02 21:57:19Z aheritier $
 37  
  */
 38  3
 public class EclipseWriterConfig
 39  
 {
 40  
     /**
 41  
      * The maven project.
 42  
      */
 43  
     private MavenProject project;
 44  
 
 45  
     /**
 46  
      * The maven project packaging.
 47  
      */
 48  
     private String packaging;
 49  
 
 50  
     /**
 51  
      * Eclipse project dir.
 52  
      */
 53  
     private File eclipseProjectDirectory;
 54  
 
 55  
     /**
 56  
      * The name of the project in eclipse.
 57  
      */
 58  
     private String eclipseProjectName;
 59  
 
 60  
     /**
 61  
      * Base project dir.
 62  
      */
 63  
     private File projectBaseDir;
 64  
 
 65  
     /**
 66  
      * List of IDE dependencies.
 67  
      */
 68  3
     private IdeDependency[] deps = new IdeDependency[0];
 69  
 
 70  
     /**
 71  
      * List of IDE dependencies ordered.
 72  
      */
 73  3
     private IdeDependency[] orderedDeps = new IdeDependency[0];
 74  
 
 75  
     /**
 76  
      * Source directories.
 77  
      */
 78  
     private EclipseSourceDir[] sourceDirs;
 79  
 
 80  
     /**
 81  
      * Local maven repo.
 82  
      */
 83  
     private ArtifactRepository localRepository;
 84  
 
 85  
     /**
 86  
      * Build output directory for eclipse.
 87  
      */
 88  
     private File buildOutputDirectory;
 89  
 
 90  
     /**
 91  
      * Manifest file.
 92  
      */
 93  
     private File osgiManifestFile;
 94  
 
 95  
     /**
 96  
      * PDE mode.
 97  
      */
 98  
     private boolean pde;
 99  
 
 100  
     /**
 101  
      * Project natures.
 102  
      */
 103  
     private List projectnatures;
 104  
 
 105  
     /**
 106  
      * Project facets.
 107  
      */
 108  
     private Map projectFacets;
 109  
 
 110  
     /**
 111  
      * Build commands. List<BuildCommand>
 112  
      */
 113  
     private List buildCommands;
 114  
 
 115  
     /**
 116  
      * Classpath containers.
 117  
      */
 118  
     private List classpathContainers;
 119  
 
 120  
     /**
 121  
      * Appends the version number to the project name if <tt>true</tt>.
 122  
      * 
 123  
      * @deprecated use {@link #projectNameTemplate}
 124  
      */
 125  
     private boolean addVersionToProjectName;
 126  
 
 127  
     /**
 128  
      * @see EclipsePlugin#getProjectNameTemplate()
 129  
      */
 130  
     private String projectNameTemplate;
 131  
 
 132  
     /**
 133  
      * @see EclipsePlugin#deployName()
 134  
      */
 135  
 
 136  
     private String contextName;
 137  
 
 138  
     /**
 139  
      * @see EclipsePlugin#wtpapplicationxml()
 140  
      */
 141  
     private boolean wtpapplicationxml;
 142  
 
 143  
     /**
 144  
      * @see EclipsePlugin#getWtpversion()
 145  
      */
 146  
     private float wtpVersion;
 147  
 
 148  
     private float ajdtVersion;
 149  
 
 150  
     private WorkspaceConfiguration workspaceConfiguration;
 151  
 
 152  
     public WorkspaceConfiguration getWorkspaceConfiguration()
 153  
     {
 154  0
         return workspaceConfiguration;
 155  
     }
 156  
 
 157  
     public void setWorkspaceConfiguration( WorkspaceConfiguration workspaceConfiguration )
 158  
     {
 159  0
         this.workspaceConfiguration = workspaceConfiguration;
 160  0
     }
 161  
 
 162  
     /**
 163  
      * Getter for <code>deps</code>.
 164  
      * 
 165  
      * @return Returns the deps.
 166  
      */
 167  
     public IdeDependency[] getDeps()
 168  
     {
 169  0
         return deps;
 170  
     }
 171  
 
 172  
     /**
 173  
      * Setter for <code>deps</code>.
 174  
      * 
 175  
      * @param deps The deps to set.
 176  
      */
 177  
     public void setDeps( IdeDependency[] deps )
 178  
     {
 179  2
         this.deps = deps;
 180  2
         if ( deps != null )
 181  
         {
 182  
             // TODO get the right comparator depending on orderDependencies={name,nearness..};
 183  
             // if none specified it could use a NullComparator to reduce the number of
 184  
             // conditions that have to be checked
 185  2
             Comparator depsByArtifactId = new Comparator()
 186  
             {
 187  2
                 public int compare( Object o1, Object o2 )
 188  
                 {
 189  1
                     int result =
 190  
                         ( (IdeDependency) o1 ).getArtifactId().compareToIgnoreCase(
 191  
                                                                                     ( (IdeDependency) o2 ).getArtifactId() );
 192  1
                     if ( result != 0 )
 193  
                     {
 194  1
                         return result;
 195  
                     }
 196  0
                     if ( ( (IdeDependency) o1 ).getClassifier() != null
 197  
                         && ( (IdeDependency) o2 ).getClassifier() != null )
 198  
                     {
 199  0
                         result =
 200  
                             ( (IdeDependency) o1 ).getClassifier().compareToIgnoreCase(
 201  
                                                                                         ( (IdeDependency) o2 ).getClassifier() );
 202  0
                         if ( result != 0 )
 203  
                         {
 204  0
                             return result;
 205  
                         }
 206  
                     }
 207  0
                     result = ( (IdeDependency) o1 ).getType().compareToIgnoreCase( ( (IdeDependency) o2 ).getType() );
 208  0
                     if ( result != 0 )
 209  
                     {
 210  0
                         return result;
 211  
                     }
 212  0
                     result =
 213  
                         ( (IdeDependency) o1 ).getGroupId().compareToIgnoreCase( ( (IdeDependency) o2 ).getGroupId() );
 214  0
                     return result;
 215  
                 }
 216  
             };
 217  
 
 218  2
             orderedDeps = new IdeDependency[deps.length];
 219  2
             System.arraycopy( deps, 0, orderedDeps, 0, deps.length );
 220  2
             Arrays.sort( orderedDeps, depsByArtifactId );
 221  
         }
 222  2
     }
 223  
 
 224  
     /**
 225  
      * Getter for <code>eclipseProjectDir</code>.
 226  
      * 
 227  
      * @return Returns the eclipseProjectDir.
 228  
      */
 229  
     public File getEclipseProjectDirectory()
 230  
     {
 231  6
         return eclipseProjectDirectory;
 232  
     }
 233  
 
 234  
     /**
 235  
      * Setter for <code>eclipseProjectDir</code>.
 236  
      * 
 237  
      * @param eclipseProjectDir The eclipseProjectDir to set.
 238  
      */
 239  
     public void setEclipseProjectDirectory( File eclipseProjectDir )
 240  
     {
 241  3
         eclipseProjectDirectory = eclipseProjectDir;
 242  3
     }
 243  
 
 244  
     /**
 245  
      * Getter for <code>eclipseProjectName</code>.
 246  
      * 
 247  
      * @return Returns the project name used in eclipse.
 248  
      */
 249  
     public String getEclipseProjectName()
 250  
     {
 251  4
         return eclipseProjectName;
 252  
     }
 253  
 
 254  
     /**
 255  
      * Setter for <code>eclipseProjectName</code>.
 256  
      * 
 257  
      * @param eclipseProjectName the project name used in eclipse.
 258  
      */
 259  
     public void setEclipseProjectName( String eclipseProjectName )
 260  
     {
 261  3
         this.eclipseProjectName = eclipseProjectName;
 262  3
     }
 263  
 
 264  
     /**
 265  
      * Getter for <code>project</code>.
 266  
      * 
 267  
      * @return Returns the project.
 268  
      */
 269  
     public MavenProject getProject()
 270  
     {
 271  6
         return project;
 272  
     }
 273  
 
 274  
     /**
 275  
      * Setter for <code>project</code>.
 276  
      * 
 277  
      * @param project The project to set.
 278  
      */
 279  
     public void setProject( MavenProject project )
 280  
     {
 281  1
         this.project = project;
 282  1
     }
 283  
 
 284  
     /**
 285  
      * Getter for <code>sourceDirs</code>.
 286  
      * 
 287  
      * @return Returns the sourceDirs.
 288  
      */
 289  
     public EclipseSourceDir[] getSourceDirs()
 290  
     {
 291  13
         return sourceDirs;
 292  
     }
 293  
 
 294  
     /**
 295  
      * Setter for <code>sourceDirs</code>.
 296  
      * 
 297  
      * @param sourceDirs The sourceDirs to set.
 298  
      */
 299  
     public void setSourceDirs( EclipseSourceDir[] sourceDirs )
 300  
     {
 301  1
         this.sourceDirs = sourceDirs;
 302  1
     }
 303  
 
 304  
     /**
 305  
      * Getter for <code>buildOutputDirectory</code>.
 306  
      * 
 307  
      * @return Returns the buildOutputDirectory.
 308  
      */
 309  
     public File getBuildOutputDirectory()
 310  
     {
 311  3
         return buildOutputDirectory;
 312  
     }
 313  
 
 314  
     /**
 315  
      * Setter for <code>buildOutputDirectory</code>.
 316  
      * 
 317  
      * @param buildOutputDirectory The buildOutputDirectory to set.
 318  
      */
 319  
     public void setBuildOutputDirectory( File buildOutputDirectory )
 320  
     {
 321  2
         this.buildOutputDirectory = buildOutputDirectory;
 322  2
     }
 323  
 
 324  
     /**
 325  
      * Getter for <code>localRepository</code>.
 326  
      * 
 327  
      * @return Returns the localRepository.
 328  
      */
 329  
     public ArtifactRepository getLocalRepository()
 330  
     {
 331  2
         return localRepository;
 332  
     }
 333  
 
 334  
     /**
 335  
      * Setter for <code>localRepository</code>.
 336  
      * 
 337  
      * @param localRepository The localRepository to set.
 338  
      */
 339  
     public void setLocalRepository( ArtifactRepository localRepository )
 340  
     {
 341  1
         this.localRepository = localRepository;
 342  1
     }
 343  
 
 344  
     /**
 345  
      * Getter for <code>manifestFile</code>.
 346  
      * 
 347  
      * @return Returns the manifestFile.
 348  
      */
 349  
     public File getOSGIManifestFile()
 350  
     {
 351  0
         return osgiManifestFile;
 352  
     }
 353  
 
 354  
     /**
 355  
      * Setter for <code>manifestFile</code>.
 356  
      * 
 357  
      * @param manifestFile The manifestFile to set.
 358  
      */
 359  
     public void setOSGIManifestFile( File manifestFile )
 360  
     {
 361  0
         this.osgiManifestFile = manifestFile;
 362  0
     }
 363  
 
 364  
     /**
 365  
      * Getter for <code>classpathContainers</code>.
 366  
      * 
 367  
      * @return Returns the classpathContainers.
 368  
      */
 369  
     public List getClasspathContainers()
 370  
     {
 371  2
         return classpathContainers;
 372  
     }
 373  
 
 374  
     /**
 375  
      * Setter for <code>classpathContainers</code>.
 376  
      * 
 377  
      * @param classpathContainers The classpathContainers to set.
 378  
      */
 379  
     public void setClasspathContainers( List classpathContainers )
 380  
     {
 381  0
         this.classpathContainers = classpathContainers;
 382  0
     }
 383  
 
 384  
     /**
 385  
      * Getter for <code>pde</code>.
 386  
      * 
 387  
      * @return Returns the pde.
 388  
      */
 389  
     public boolean isPde()
 390  
     {
 391  2
         return pde;
 392  
     }
 393  
 
 394  
     /**
 395  
      * Setter for <code>pde</code>.
 396  
      * 
 397  
      * @param pde The pde to set.
 398  
      */
 399  
     public void setPde( boolean pde )
 400  
     {
 401  0
         this.pde = pde;
 402  0
     }
 403  
 
 404  
     /**
 405  
      * Getter for <code>buildCommands</code>.
 406  
      * 
 407  
      * @return Returns the buildCommands.
 408  
      */
 409  
     public List getBuildCommands()
 410  
     {
 411  1
         return buildCommands;
 412  
     }
 413  
 
 414  
     /**
 415  
      * Setter for <code>buildCommands</code>.
 416  
      * 
 417  
      * @param buildCommands The buildCommands to set.
 418  
      */
 419  
     public void setBuildCommands( List buildCommands )
 420  
     {
 421  0
         this.buildCommands = buildCommands;
 422  0
     }
 423  
 
 424  
     /**
 425  
      * Getter for <code>projectnatures</code>.
 426  
      * 
 427  
      * @return Returns the projectnatures.
 428  
      */
 429  
     public List getProjectnatures()
 430  
     {
 431  0
         return projectnatures;
 432  
     }
 433  
 
 434  
     /**
 435  
      * Setter for <code>projectnatures</code>.
 436  
      * 
 437  
      * @param projectnatures The projectnatures to set.
 438  
      */
 439  
     public void setProjectnatures( List projectnatures )
 440  
     {
 441  0
         this.projectnatures = projectnatures;
 442  0
     }
 443  
 
 444  
     /**
 445  
      * Getter for <code>projectFacets</code>.
 446  
      * 
 447  
      * @return Returns the projectFacets
 448  
      */
 449  
     public Map getProjectFacets()
 450  
     {
 451  0
         return projectFacets;
 452  
     }
 453  
 
 454  
     /**
 455  
      * Setter for <code>projectFacets</code>
 456  
      * 
 457  
      * @param projectFacets The projectFacets to set.
 458  
      */
 459  
     public void setProjectFacets( Map projectFacets )
 460  
     {
 461  0
         this.projectFacets = projectFacets;
 462  0
     }
 463  
 
 464  
     /**
 465  
      * Getter for <code>projectBaseDir</code>.
 466  
      * 
 467  
      * @return Returns the projectBaseDir.
 468  
      */
 469  
     public File getProjectBaseDir()
 470  
     {
 471  2
         return projectBaseDir;
 472  
     }
 473  
 
 474  
     /**
 475  
      * Setter for <code>projectBaseDir</code>.
 476  
      * 
 477  
      * @param projectBaseDir The projectBaseDir to set.
 478  
      */
 479  
     public void setProjectBaseDir( File projectBaseDir )
 480  
     {
 481  3
         this.projectBaseDir = projectBaseDir;
 482  3
     }
 483  
 
 484  
     /**
 485  
      * Getter for <code>addVersionToProjectName</code>.
 486  
      * 
 487  
      * @deprecated use {@link #getProjectNameTemplate()}
 488  
      */
 489  
     public boolean isAddVersionToProjectName()
 490  
     {
 491  0
         return addVersionToProjectName;
 492  
     }
 493  
 
 494  
     /**
 495  
      * Setter for <code>addVersionToProjectName</code>.
 496  
      * 
 497  
      * @deprecated use {@link #setProjectNameTemplate(String)}
 498  
      */
 499  
     public void setAddVersionToProjectName( boolean addVersionToProjectName )
 500  
     {
 501  0
         this.addVersionToProjectName = addVersionToProjectName;
 502  0
     }
 503  
 
 504  
     public void setProjectNameTemplate( String projectNameTemplate )
 505  
     {
 506  0
         this.projectNameTemplate = projectNameTemplate;
 507  0
     }
 508  
 
 509  
     public String getProjectNameTemplate()
 510  
     {
 511  0
         return projectNameTemplate;
 512  
     }
 513  
 
 514  
     public String getContextName()
 515  
     {
 516  0
         return contextName;
 517  
     }
 518  
 
 519  
     public void setContextName( String deployName )
 520  
     {
 521  0
         contextName = deployName;
 522  0
     }
 523  
 
 524  
     /**
 525  
      * @return the packaging
 526  
      */
 527  
     public String getPackaging()
 528  
     {
 529  2
         return packaging;
 530  
     }
 531  
 
 532  
     /**
 533  
      * @param packaging the packaging to set
 534  
      */
 535  
     public void setPackaging( String packaging )
 536  
     {
 537  1
         this.packaging = packaging;
 538  1
     }
 539  
 
 540  
     /**
 541  
      * Getter for <code>wtpapplicationxml</code>.
 542  
      * 
 543  
      * @return Returns the wtpapplicationxml.
 544  
      */
 545  
     public boolean getWtpapplicationxml()
 546  
     {
 547  1
         return wtpapplicationxml;
 548  
     }
 549  
 
 550  
     /**
 551  
      * Setter for <code>buildCommands</code>.
 552  
      * 
 553  
      * @param buildCommands The buildCommands to set.
 554  
      */
 555  
     public void setWtpapplicationxml( boolean wtpapplicationxml )
 556  
     {
 557  0
         this.wtpapplicationxml = wtpapplicationxml;
 558  0
     }
 559  
 
 560  
     /**
 561  
      * Getter for <code>wtpVersion</code>.
 562  
      * 
 563  
      * @return Returns the wtpVersion.
 564  
      */
 565  
     public float getWtpVersion()
 566  
     {
 567  3
         return wtpVersion;
 568  
     }
 569  
 
 570  
     /**
 571  
      * Setter for <code>wtpVersion</code>.
 572  
      * 
 573  
      * @param wtpVersion The wtpVersion to set.
 574  
      */
 575  
     public void setWtpVersion( float wtpVersion )
 576  
     {
 577  1
         this.wtpVersion = wtpVersion;
 578  1
     }
 579  
 
 580  
     /**
 581  
      * @return an ordered list of dependencies
 582  
      */
 583  
     public IdeDependency[] getDepsOrdered()
 584  
     {
 585  7
         return orderedDeps;
 586  
     }
 587  
 
 588  
     /**
 589  
      * Returns the ajdtVersion.
 590  
      * 
 591  
      * @return the ajdtVersion.
 592  
      */
 593  
     public float getAjdtVersion()
 594  
     {
 595  1
         return ajdtVersion;
 596  
     }
 597  
 
 598  
     /**
 599  
      * Sets the ajdtVersion.
 600  
      * 
 601  
      * @param ajdtVersion the ajdtVersion.
 602  
      */
 603  
     public void setAjdtVersion( float ajdtVersion )
 604  
     {
 605  0
         this.ajdtVersion = ajdtVersion;
 606  0
     }
 607  
 
 608  
 }