Author: sisbell
Date: Tue Nov 27 22:41:19 2007
New Revision: 598880

URL: http://svn.apache.org/viewvc?rev=598880&view=rev
Log:
Default CompilerContext and KeyInfo implementations. Better exception checking.

Added:
    
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/ArtifactType.java
   (with props)
Modified:
    
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/CompilerConfig.java
    
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/KeyInfo.java
    
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/NetCompilerConfig.java
    
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/impl/NetCompilerContextImpl.java

Added: 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/ArtifactType.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/ArtifactType.java?rev=598880&view=auto
==============================================================================
--- 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/ArtifactType.java
 (added)
+++ 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/ArtifactType.java
 Tue Nov 27 22:41:19 2007
@@ -0,0 +1,125 @@
+package org.apache.maven.dotnet.compiler;
+
+/**
+ * Enumeration of all the valid target types (module, library, winexe, exe, 
nar) for the .NET platform.
+ *
+ */
+public enum ArtifactType
+{
+    MODULE( "module", "module", "netmodule" ),
+    LIBRARY( "library", "library", "dll" ),
+    EXE( "exe", "exe", "exe" ),
+    WINEXE( "winexe", "winexe", "exe" ),
+    NAR( "nar", "null", "nar" ),
+    EXECONFIG( "exe.config", "null", "exe.config" ),
+    NETPLUGIN( "netplugin", "library", "dll" ),
+    VISUAL_STUDIO_ADDIN( "visual-studio-addin", "library", "dll" ),
+    SHARP_DEVELOP_ADDIN( "sharp-develop-addin", "library", "dll" ),
+    NULL( "null", "null", "null" );
+
+    /**
+     * The extension used for the artifact(netmodule, dll, exe)
+     */
+    private String extension;
+
+    /**
+     * The packaging type (as given in the package tag within the pom.xml) of 
the artifact.
+     */
+    private String packagingType;
+
+    /**
+     * The target types (module, library, winexe, exe) for the .NET platform.
+     */
+    private String targetCompileType;
+
+    /**
+     * Constructor
+     */
+    ArtifactType( String packagingType, String targetCompileType, String 
extension )
+    {
+        this.packagingType = packagingType;
+        this.targetCompileType = targetCompileType;
+        this.extension = extension;
+    }
+
+    /**
+     * Returns extension used for the artifact(netmodule, dll, exe).
+     *
+     * @return Extension used for the artifact(netmodule, dll, exe).
+     */
+    public String getExtension()
+    {
+        return extension;
+    }
+
+    /**
+     * Returns the packaging type (as given in the package tag within the 
pom.xml) of the artifact.
+     *
+     * @return the packaging type (as given in the package tag within the 
pom.xml) of the artifact.
+     */
+    public String getPackagingType()
+    {
+        return packagingType;
+    }
+
+    /**
+     * Returns target types (module, library, winexe, exe) for the .NET 
platform.
+     *
+     * @return target types (module, library, winexe, exe) for the .NET 
platform.
+     */
+    public String getTargetCompileType()
+    {
+        return targetCompileType;
+    }
+
+    /**
+     * Returns artifact type for the specified packaging name
+     *
+     * @param packagingName the package name (as given in the package tag 
within the pom.xml) of the artifact.
+     * @return the artifact type for the specified packaging name
+     */
+    public static synchronized ArtifactType getArtifactTypeForPackagingName( 
String packagingName )
+    {
+        if ( packagingName.equals( ArtifactType.MODULE.getPackagingType() ) )
+        {
+            return ArtifactType.MODULE;
+        }
+        else if ( packagingName.equals( 
ArtifactType.LIBRARY.getPackagingType() ) )
+        {
+            return ArtifactType.LIBRARY;
+        }
+        else if ( packagingName.equals( ArtifactType.EXE.getPackagingType() ) )
+        {
+            return ArtifactType.EXE;
+        }
+        else if ( packagingName.equals( ArtifactType.WINEXE.getPackagingType() 
) )
+        {
+            return ArtifactType.WINEXE;
+        }
+        else if ( packagingName.equals( ArtifactType.NAR.getPackagingType() ) )
+        {
+            return ArtifactType.LIBRARY;
+        }
+        else if ( packagingName.equals( ArtifactType.NAR.getPackagingType() ) )
+        {
+            return ArtifactType.NAR;
+        }
+        else if ( packagingName.equals( 
ArtifactType.EXECONFIG.getPackagingType() ) )
+        {
+            return ArtifactType.EXECONFIG;
+        }
+        else if ( packagingName.equals( 
ArtifactType.NETPLUGIN.getPackagingType() ) )
+        {
+            return ArtifactType.NETPLUGIN;
+        }
+        else if ( packagingName.equals( 
ArtifactType.SHARP_DEVELOP_ADDIN.getPackagingType() ) )
+        {
+            return ArtifactType.SHARP_DEVELOP_ADDIN;
+        }
+        else if ( packagingName.equals( 
ArtifactType.VISUAL_STUDIO_ADDIN.getPackagingType() ) )
+        {
+            return ArtifactType.VISUAL_STUDIO_ADDIN;
+        }
+        return ArtifactType.NULL;
+    }
+}

Propchange: 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/ArtifactType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/CompilerConfig.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/CompilerConfig.java?rev=598880&r1=598879&r2=598880&view=diff
==============================================================================
--- 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/CompilerConfig.java
 (original)
+++ 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/CompilerConfig.java
 Tue Nov 27 22:41:19 2007
@@ -1,7 +1,5 @@
 package org.apache.maven.dotnet.compiler;
 
-import org.apache.maven.dotnet.ArtifactType;
-
 import java.io.File;
 
 public interface CompilerConfig
@@ -74,6 +72,8 @@
     void setVendor(Vendor vendor);
 
     Vendor getVendor();
+
+    void verifyCompilerConfig() throws IllegalArgumentException;
 
 
 }

Modified: 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/KeyInfo.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/KeyInfo.java?rev=598880&r1=598879&r2=598880&view=diff
==============================================================================
--- 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/KeyInfo.java
 (original)
+++ 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/KeyInfo.java
 Tue Nov 27 22:41:19 2007
@@ -4,7 +4,6 @@
 
 /**
  * Provides services for obtaining information about the key file.
- *
  */
 public interface KeyInfo
 {
@@ -20,11 +19,11 @@
      *
      * @param keyFileUri the path of the key
      */
-    void setKeyFileUri(URI keyFileUri);
+    void setKeyFileUri( URI keyFileUri );
 
     String getKeyContainerName();
 
-    void setKeyContainerName(String keyContainerName);
+    void setKeyContainerName( String keyContainerName );
 
     public static class Factory
     {
@@ -48,22 +47,59 @@
 
                 private String keyContainerName;
 
-                public URI getKeyFileUri() {
+                public URI getKeyFileUri()
+                {
                     return keyFileUri;
                 }
 
-                public void setKeyFileUri(URI keyFileUri) {
+                public void setKeyFileUri( URI keyFileUri )
+                {
                     this.keyFileUri = keyFileUri;
                 }
 
-                public String getKeyContainerName() {
+                public String getKeyContainerName()
+                {
                     return keyContainerName;
                 }
 
-                public void setKeyContainerName(String keyContainerName) {
+                public void setKeyContainerName( String keyContainerName )
+                {
                     this.keyContainerName = keyContainerName;
                 }
 
+                public boolean equals( Object o )
+                {
+                    if ( this == o )
+                    {
+                        return true;
+                    }
+                    if ( o == null || getClass() != o.getClass() )
+                    {
+                        return false;
+                    }
+
+                    final KeyInfo that = (KeyInfo) o;
+
+                    if ( keyContainerName != null ? !keyContainerName.equals( 
that.getKeyContainerName() )
+                        : that.getKeyContainerName() != null )
+                    {
+                        return false;
+                    }
+                    if ( keyFileUri != null ? !keyFileUri.equals( 
that.getKeyFileUri() ) : that.getKeyFileUri() != null )
+                    {
+                        return false;
+                    }
+
+                    return true;
+                }
+
+                public int hashCode()
+                {
+                    int result;
+                    result = ( keyFileUri != null ? keyFileUri.hashCode() : 0 
);
+                    result = 29 * result + ( keyContainerName != null ? 
keyContainerName.hashCode() : 0 );
+                    return result;
+                }
             };
         }
     }

Modified: 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/NetCompilerConfig.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/NetCompilerConfig.java?rev=598880&r1=598879&r2=598880&view=diff
==============================================================================
--- 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/NetCompilerConfig.java
 (original)
+++ 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/NetCompilerConfig.java
 Tue Nov 27 22:41:19 2007
@@ -1,6 +1,9 @@
 package org.apache.maven.dotnet.compiler;
 
-public interface NetCompilerConfig extends CompilerConfig
+import java.io.File;
+
+public interface NetCompilerConfig
+    extends CompilerConfig
 {
 
     /**
@@ -10,14 +13,255 @@
      */
     KeyInfo getKeyInfo();
 
-     /**
+    /**
      * Sets key info used for signing assemblies.
      *
      * @param keyInfo key info used for signing assemblies
      */
-    void setKeyInfo( KeyInfo keyInfo);
+    void setKeyInfo( KeyInfo keyInfo );
 
     NetCompilerPlatformVersion getCompilerPlatformVersion();
 
-    void setCompilerPlatformVersion(NetCompilerPlatformVersion  
compilerPlatformVersion);
+    void setCompilerPlatformVersion( NetCompilerPlatformVersion 
compilerPlatformVersion );
+
+    public static class Factory
+    {
+        /**
+         * Constructor
+         */
+        private Factory()
+        {
+        }
+
+        /**
+         * Returns a default instance of the executable config.
+         *
+         * @return a default instance of the executable config
+         */
+        public static NetCompilerConfig createDefaultExecutableConfig()
+        {
+            return new NetCompilerConfig()
+            {
+                private KeyInfo keyInfo;
+
+                private NetCompilerPlatformVersion compilerPlatformVersion;
+
+                private ArtifactType artifactType;
+
+                private boolean isTestCompile;
+
+                private File localRepository;
+
+                private File sourceDirectory;
+
+                private File targetDirectory;
+
+                private ProgrammingLanguage programmingLanguage;
+
+                private Vendor vendor;
+
+                public KeyInfo getKeyInfo()
+                {
+                    return keyInfo;
+                }
+
+                public void setKeyInfo( KeyInfo keyInfo )
+                {
+                    this.keyInfo = keyInfo;
+                }
+
+                public NetCompilerPlatformVersion getCompilerPlatformVersion()
+                {
+                    return compilerPlatformVersion;
+                }
+
+                public void setCompilerPlatformVersion( 
NetCompilerPlatformVersion compilerPlatformVersion )
+                {
+                    this.compilerPlatformVersion = compilerPlatformVersion;
+                }
+
+                public ArtifactType getArtifactType()
+                {
+                    return artifactType;
+                }
+
+                public void setArtifactType( ArtifactType artifactType )
+                {
+                    this.artifactType = artifactType;
+                }
+
+                public boolean isTestCompile()
+                {
+                    return isTestCompile;
+                }
+
+                public void setTestCompile( boolean testCompile )
+                {
+                    isTestCompile = testCompile;
+                }
+
+                public File getLocalRepository()
+                {
+                    return localRepository;
+                }
+
+                public void setLocalRepository( File localRepository )
+                {
+                    this.localRepository = localRepository;
+                }
+
+                public File getSourceDirectory()
+                {
+                    return sourceDirectory;
+                }
+
+                public void setSourceDirectory( File sourceDirectory )
+                {
+                    this.sourceDirectory = sourceDirectory;
+                }
+
+                public File getTargetDirectory()
+                {
+                    return targetDirectory;
+                }
+
+                public void setTargetDirectory( File targetDirectory )
+                {
+                    this.targetDirectory = targetDirectory;
+                }
+
+                public ProgrammingLanguage getProgrammingLanguage()
+                {
+                    return programmingLanguage;
+                }
+
+                public void setProgrammingLanguage( ProgrammingLanguage 
programmingLanguage )
+                {
+                    this.programmingLanguage = programmingLanguage;
+                }
+
+                public Vendor getVendor()
+                {
+                    return vendor;
+                }
+
+                public void setVendor( Vendor vendor )
+                {
+                    this.vendor = vendor;
+                }
+
+                public void verifyCompilerConfig()
+                    throws IllegalArgumentException
+                {
+                    if ( artifactType == null )
+                    {
+                       throw new IllegalArgumentException("artifactType");
+                    }
+
+                    if ( compilerPlatformVersion == null )
+                    {
+                      throw new 
IllegalArgumentException("compilerPlatformVersion");
+                    }
+
+                    if ( localRepository == null || !localRepository.exists() )
+                    {
+                        throw new IllegalArgumentException("localRepository");
+                    }
+
+                    if ( sourceDirectory == null || !sourceDirectory.exists() )
+                    {
+                        throw new IllegalArgumentException("sourceDirectory");
+                    }
+
+                    if ( targetDirectory == null || !targetDirectory.exists() )
+                    {
+                        throw new IllegalArgumentException("targetDirectory");
+                    }
+
+                    if(programmingLanguage == null)
+                    {
+                       throw new 
IllegalArgumentException("programmingLanguage");
+                    }
+
+                    if(vendor == null)
+                    {
+                        throw new IllegalArgumentException("vendor");
+                    }
+
+                    if(artifactType == null)
+                    {
+                         throw new IllegalArgumentException("artifactType");
+                    }
+                }
+
+                public boolean equals( Object o )
+                {
+                    if ( this == o )
+                    {
+                        return true;
+                    }
+                    if ( o == null || getClass() != o.getClass() )
+                    {
+                        return false;
+                    }
+
+                    final NetCompilerConfig that = (NetCompilerConfig) o;
+
+                    if ( isTestCompile != that.isTestCompile() )
+                    {
+                        return false;
+                    }
+                    if ( artifactType != that.getArtifactType() )
+                    {
+                        return false;
+                    }
+                    if ( compilerPlatformVersion != 
that.getCompilerPlatformVersion() )
+                    {
+                        return false;
+                    }
+                    if ( keyInfo != null ? !keyInfo.equals( that.getKeyInfo() 
) : that.getKeyInfo() != null )
+                    {
+                        return false;
+                    }
+                    if ( !localRepository.equals( that.getLocalRepository() ) )
+                    {
+                        return false;
+                    }
+                    if ( programmingLanguage != that.getProgrammingLanguage() )
+                    {
+                        return false;
+                    }
+                    if ( !sourceDirectory.equals( that.getSourceDirectory() ) )
+                    {
+                        return false;
+                    }
+                    if ( !targetDirectory.equals( that.getTargetDirectory() ) )
+                    {
+                        return false;
+                    }
+                    if ( vendor != that.getVendor() )
+                    {
+                        return false;
+                    }
+
+                    return true;
+                }
+
+                public int hashCode()
+                {
+                    int result;
+                    result = ( keyInfo != null ? keyInfo.hashCode() : 0 );
+                    result = 29 * result + compilerPlatformVersion.hashCode();
+                    result = 29 * result + artifactType.hashCode();
+                    result = 29 * result + ( isTestCompile ? 1 : 0 );
+                    result = 29 * result + localRepository.hashCode();
+                    result = 29 * result + sourceDirectory.hashCode();
+                    result = 29 * result + targetDirectory.hashCode();
+                    result = 29 * result + programmingLanguage.hashCode();
+                    result = 29 * result + vendor.hashCode();
+                    return result;
+                }
+            };
+        }
+    }
 }

Modified: 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/impl/NetCompilerContextImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/impl/NetCompilerContextImpl.java?rev=598880&r1=598879&r2=598880&view=diff
==============================================================================
--- 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/impl/NetCompilerContextImpl.java
 (original)
+++ 
incubator/nmaven/branches/SI_MAVEN_INTEGRATION/sandbox/components/dotnet-executable/src/org/apache/maven/dotnet/compiler/impl/NetCompilerContextImpl.java
 Tue Nov 27 22:41:19 2007
@@ -104,8 +104,20 @@
     public void init( MavenProject project, CompilerConfig compilerConfig )
         throws PlatformUnsupportedException
     {
+        if(project == null)
+        {
+            throw new IllegalArgumentException("mavenProject");
+        }
+
+        if(compilerConfig == null)
+        {
+            throw new IllegalArgumentException("compilerConfig");
+        }
+
         this.project = project;
         this.netCompilerConfig = (NetCompilerConfig) compilerConfig;
+        netCompilerConfig.verifyCompilerConfig();
+
         libraryDependencies = new HashSet<Artifact>();
         moduleDependencies = new HashSet<Artifact>();
 


Reply via email to