// Path: hangar-api/src/main/java/com/spedge/hangar/index/IndexKey.java
// public class IndexKey
// {
//     private String key;
//     private RepositoryType type = RepositoryType.UNKNOWN;
// 
//     public IndexKey(RepositoryType type, String key)
//     {
//         this.key = key;
//         this.type = type;
//     }
// 
//     public RepositoryType getType()
//     {
//         return type;
//     }
// 
//     public String toPath()
//     {
//         return key;
//     }
// 
//     public String toString()
//     {
//         return type.getLanguage() + ":" + key;
//     }
// 
//     /* (non-Javadoc)
//      * @see java.lang.Object#hashCode()
//      */
//     @Override
//     public int hashCode()
//     {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((key == null) ? 0 : key.hashCode());
//         result = prime * result + ((type.getLanguage() == null) ? 0 : type.getLanguage().hashCode());
//         return result;
//     }
// 
//     /* (non-Javadoc)
//      * @see java.lang.Object#equals(java.lang.Object)
//      */
//     @Override
//     public boolean equals(Object obj)
//     {
//         if (this == obj)
//         {
//             return true;
//         }
//         if (obj == null)
//         {
//             return false;
//         }
//         if (getClass() != obj.getClass())
//         {
//             return false;
//         }
//         IndexKey other = (IndexKey) obj;
//         if (key == null)
//         {
//             if (other.key != null)
//             {
//                 return false;
//             }
//         }
//         else if (!key.equals(other.key))
//         {
//             return false;
//         }
//         if (type.getLanguage() != other.type.getLanguage())
//         {
//             return false;
//         }
//         return true;
//     }
// }
// 
// Path: hangar-api/src/main/java/com/spedge/hangar/repo/RepositoryType.java
// public enum RepositoryType
// {
//     RELEASE_JAVA(RepositoryLanguage.JAVA), 
//     SNAPSHOT_JAVA(RepositoryLanguage.JAVA), 
//     PROXY_JAVA(RepositoryLanguage.JAVA), 
//     PROXY_PYTHON(RepositoryLanguage.PYTHON),
//     UNKNOWN(RepositoryLanguage.UNKNOWN);
// 
//     private RepositoryLanguage lang;
// 
//     RepositoryType(RepositoryLanguage lang)
//     {
//         this.lang = lang;
//     }
// 
//     public RepositoryLanguage getLanguage()
//     {
//         return lang;
//     }
// }


import com.spedge.hangar.index.IndexKey;
import com.spedge.hangar.repo.RepositoryType;
package com.spedge.hangar.repo.python;


public class PythonIndexKey extends IndexKey
{
    private String artifact;
    private String filename;
    
    /**
     * Saves the main details for identifying a package within Pip.
     * @param type RepositoryType this index item is from
     * @param artifact Name of the artifact
     * @param filename Name of the actual file being served
     */
    public PythonIndexKey(RepositoryType type, String artifact, String filename)
    {
// Path: hangar-api/src/main/java/com/spedge/hangar/index/IndexKey.java
// public class IndexKey
// {
//     private String key;
//     private RepositoryType type = RepositoryType.UNKNOWN;
// 
//     public IndexKey(RepositoryType type, String key)
//     {
//         this.key = key;
//         this.type = type;
//     }
// 
//     public RepositoryType getType()
//     {
//         return type;
//     }
// 
//     public String toPath()
//     {
//         return key;
//     }
// 
//     public String toString()
//     {
//         return type.getLanguage() + ":" + key;
//     }
// 
//     /* (non-Javadoc)
//      * @see java.lang.Object#hashCode()
//      */
//     @Override
//     public int hashCode()
//     {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((key == null) ? 0 : key.hashCode());
//         result = prime * result + ((type.getLanguage() == null) ? 0 : type.getLanguage().hashCode());
//         return result;
//     }
// 
//     /* (non-Javadoc)
//      * @see java.lang.Object#equals(java.lang.Object)
//      */
//     @Override
//     public boolean equals(Object obj)
//     {
//         if (this == obj)
//         {
//             return true;
//         }
//         if (obj == null)
//         {
//             return false;
//         }
//         if (getClass() != obj.getClass())
//         {
//             return false;
//         }
//         IndexKey other = (IndexKey) obj;
//         if (key == null)
//         {
//             if (other.key != null)
//             {
//                 return false;
//             }
//         }
//         else if (!key.equals(other.key))
//         {
//             return false;
//         }
//         if (type.getLanguage() != other.type.getLanguage())
//         {
//             return false;
//         }
//         return true;
//     }
// }
// 
// Path: hangar-api/src/main/java/com/spedge/hangar/repo/RepositoryType.java
// public enum RepositoryType
// {
//     RELEASE_JAVA(RepositoryLanguage.JAVA), 
//     SNAPSHOT_JAVA(RepositoryLanguage.JAVA), 
//     PROXY_JAVA(RepositoryLanguage.JAVA), 
//     PROXY_PYTHON(RepositoryLanguage.PYTHON),
//     UNKNOWN(RepositoryLanguage.UNKNOWN);
// 
//     private RepositoryLanguage lang;
// 
//     RepositoryType(RepositoryLanguage lang)
//     {
//         this.lang = lang;
//     }
// 
//     public RepositoryLanguage getLanguage()
//     {
//         return lang;
//     }
// }


// Path: hangar-api/src/main/java/com/spedge/hangar/repo/python/PythonIndexKey.java
import com.spedge.hangar.index.IndexKey;
import com.spedge.hangar.repo.RepositoryType;

package com.spedge.hangar.repo.python;


public class PythonIndexKey extends IndexKey
{
    private String artifact;
    private String filename;
    
    /**
     * Saves the main details for identifying a package within Pip.
     * @param type RepositoryType this index item is from
     * @param artifact Name of the artifact
     * @param filename Name of the actual file being served
     */
    public PythonIndexKey(RepositoryType type, String artifact, String filename)
    {
        super(type, artifact.toLowerCase() + ":" + filename.toLowerCase());