// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/HasResourceIdAndPath.java
// public interface HasResourceIdAndPath<T extends AbstractResource> extends HasResourceId<T>,
//  HasResourcePath<T> {
// 
// }
// 
// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/ResourceId.java
// public class ResourceId<T extends AbstractResource> {
//   private final int id;
// 
//   public ResourceId(int id) {
//     this.id = id;
//   }
// 
//   public int getId() {
//     return id;
//   }
// 
//   @Override
//   public String toString() {
//     return Integer.toString(id);
//   }
// 
//   @Override
//   public int hashCode() {
//     final int prime = 31;
//     int result = 1;
//     result = prime * result + id;
//     return result;
//   }
// 
//   @SuppressWarnings("rawtypes")
//   @Override
//   public boolean equals(Object obj) {
//     if (this == obj)
//       return true;
//     if (obj == null)
//       return false;
//     if (getClass() != obj.getClass())
//       return false;
//     ResourceId other = (ResourceId) obj;
//     if (id != other.id)
//       return false;
//     return true;
//   }
// }
// 
// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/ResourcePath.java
// public class ResourcePath<T extends AbstractResource> {
// 
//   private final String path;
// 
//   @JsonCreator
//   public ResourcePath(String path) {
//     this.path = path;
//   }
// 
//   public String getPath() {
//     return path;
//   }
// 
//   @Override
//   public String toString() {
//     return path;
//   }
// 
//   @Override
//   public int hashCode() {
//     final int prime = 31;
//     int result = 1;
//     result = prime * result + ((path == null) ? 0 : path.hashCode());
//     return result;
//   }
// 
//   @SuppressWarnings("rawtypes")
//   @Override
//   public boolean equals(Object obj) {
//     if (this == obj)
//       return true;
//     if (obj == null)
//       return false;
//     if (getClass() != obj.getClass())
//       return false;
//     ResourcePath other = (ResourcePath) obj;
//     if (path == null) {
//       if (other.path != null)
//         return false;
//     } else if (!path.equals(other.path))
//       return false;
//     return true;
//   }
// 
// }
// 
// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/resources/Key.java
// public class Key extends AbstractResource {
// 
// }
// 
// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/resources/PlatformKeys.java
// public class PlatformKeys extends AbstractResource {
// 
// }


import java.io.File;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.logging.Log;
import com.github.chrisprice.phonegapbuild.api.data.HasResourceIdAndPath;
import com.github.chrisprice.phonegapbuild.api.data.ResourceId;
import com.github.chrisprice.phonegapbuild.api.data.ResourcePath;
import com.github.chrisprice.phonegapbuild.api.data.resources.Key;
import com.github.chrisprice.phonegapbuild.api.data.resources.PlatformKeys;
import com.sun.jersey.api.client.WebResource;
package com.github.chrisprice.phonegapbuild.plugin.utils;




public interface AndroidKeyManager {

  public ResourceId<Key> ensureAndroidKey(WebResource webResource, ResourcePath<PlatformKeys> keysResource,
      HasResourceIdAndPath<Key>[] keyResources) throws MojoFailureException;

  public void setAndroidKeyId(Integer androidKeyId);

  public void setAndroidServer(String androidServer);

  public void setAndroidCertificatePassword(String androidCertificatePassword);

  public void setAndroidKeystore(File androidKeystore);

  public void setAndroidKeystorePassword(String androidKeystorePassword);

  public void setAndroidCertificateAlias(String androidCertificateAlias);

// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/HasResourceIdAndPath.java
// public interface HasResourceIdAndPath<T extends AbstractResource> extends HasResourceId<T>,
//  HasResourcePath<T> {
// 
// }
// 
// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/ResourceId.java
// public class ResourceId<T extends AbstractResource> {
//   private final int id;
// 
//   public ResourceId(int id) {
//     this.id = id;
//   }
// 
//   public int getId() {
//     return id;
//   }
// 
//   @Override
//   public String toString() {
//     return Integer.toString(id);
//   }
// 
//   @Override
//   public int hashCode() {
//     final int prime = 31;
//     int result = 1;
//     result = prime * result + id;
//     return result;
//   }
// 
//   @SuppressWarnings("rawtypes")
//   @Override
//   public boolean equals(Object obj) {
//     if (this == obj)
//       return true;
//     if (obj == null)
//       return false;
//     if (getClass() != obj.getClass())
//       return false;
//     ResourceId other = (ResourceId) obj;
//     if (id != other.id)
//       return false;
//     return true;
//   }
// }
// 
// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/ResourcePath.java
// public class ResourcePath<T extends AbstractResource> {
// 
//   private final String path;
// 
//   @JsonCreator
//   public ResourcePath(String path) {
//     this.path = path;
//   }
// 
//   public String getPath() {
//     return path;
//   }
// 
//   @Override
//   public String toString() {
//     return path;
//   }
// 
//   @Override
//   public int hashCode() {
//     final int prime = 31;
//     int result = 1;
//     result = prime * result + ((path == null) ? 0 : path.hashCode());
//     return result;
//   }
// 
//   @SuppressWarnings("rawtypes")
//   @Override
//   public boolean equals(Object obj) {
//     if (this == obj)
//       return true;
//     if (obj == null)
//       return false;
//     if (getClass() != obj.getClass())
//       return false;
//     ResourcePath other = (ResourcePath) obj;
//     if (path == null) {
//       if (other.path != null)
//         return false;
//     } else if (!path.equals(other.path))
//       return false;
//     return true;
//   }
// 
// }
// 
// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/resources/Key.java
// public class Key extends AbstractResource {
// 
// }
// 
// Path: api/src/main/java/com/github/chrisprice/phonegapbuild/api/data/resources/PlatformKeys.java
// public class PlatformKeys extends AbstractResource {
// 
// }


// Path: plugin/src/main/java/com/github/chrisprice/phonegapbuild/plugin/utils/AndroidKeyManager.java
import java.io.File;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.logging.Log;
import com.github.chrisprice.phonegapbuild.api.data.HasResourceIdAndPath;
import com.github.chrisprice.phonegapbuild.api.data.ResourceId;
import com.github.chrisprice.phonegapbuild.api.data.ResourcePath;
import com.github.chrisprice.phonegapbuild.api.data.resources.Key;
import com.github.chrisprice.phonegapbuild.api.data.resources.PlatformKeys;
import com.sun.jersey.api.client.WebResource;

package com.github.chrisprice.phonegapbuild.plugin.utils;




public interface AndroidKeyManager {

  public ResourceId<Key> ensureAndroidKey(WebResource webResource, ResourcePath<PlatformKeys> keysResource,
      HasResourceIdAndPath<Key>[] keyResources) throws MojoFailureException;

  public void setAndroidKeyId(Integer androidKeyId);

  public void setAndroidServer(String androidServer);

  public void setAndroidCertificatePassword(String androidCertificatePassword);

  public void setAndroidKeystore(File androidKeystore);

  public void setAndroidKeystorePassword(String androidKeystorePassword);

  public void setAndroidCertificateAlias(String androidCertificateAlias);

  public void setLog(Log log);