Package adept.lockfile

Source Code of adept.lockfile.LockfileArtifact

package adept.lockfile;

import java.util.Set;

import adept.artifact.models.Artifact;
import adept.artifact.models.ArtifactAttribute;
import adept.artifact.models.ArtifactHash;
import adept.artifact.models.ArtifactLocation;

/**
* Limited to this package only, use Lockfile factory methods to create lockfile
* instead, or LockfileGenerator
*/
public class LockfileArtifact { // TODO: equals, hashCode
  public final ArtifactHash hash;
  public final Integer size; // TODO: we have to make this a Long, because we
                             // might hit some strange issues but json smart
                             // does not support it
  public final Set<ArtifactLocation> locations; // because locations are public
                                                // we might have concurrency
                                                // issues, but the likelyhood is
                                                // rather small
  public final Set<ArtifactAttribute> attributes;
  /* can be null */
  public final String filename;

  public LockfileArtifact(ArtifactHash hash, Integer size,
      Set<ArtifactLocation> locations, Set<ArtifactAttribute> attributes,
      String filename) {
    this.hash = hash;
    this.size = size;
    this.locations = locations;
    this.attributes = attributes;
    this.filename = filename;
  }

  public Artifact getArtifact() {
    return new Artifact(hash, size.longValue(), locations);
  }

  @Override
  public boolean equals(Object other) {
    if (other != null && other instanceof LockfileArtifact) {
      LockfileArtifact otherArtifact = (LockfileArtifact) other;
      return hash.equals(otherArtifact.hash) && size.equals(otherArtifact.size)
          && locations.equals(otherArtifact.locations)
          && attributes.equals(otherArtifact.attributes)
          && filename.equals(otherArtifact.filename);
    } else
      return false;
  }

  public int hashCode() {
    return this.getClass().getName().hashCode() + hash.hashCode()
        + size.hashCode() + locations.hashCode() + attributes.hashCode()
        + filename.hashCode();
  }
}
TOP

Related Classes of adept.lockfile.LockfileArtifact

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.