class GolangHostedFacetImpl extends FacetSupport implements GolangHostedFacet {

  @Override
  public void upload(final String path,
                     final GolangAttributes golangAttributes,
                     final Payload payload,
                     final AssetKind assetKind) throws IOException
  {
    checkNotNull(path);
    checkNotNull(golangAttributes);
    checkNotNull(payload);
    checkNotNull(assetKind);

    if (assetKind != PACKAGE) {
      throw new IllegalArgumentException("Unsupported AssetKind");
    }

    storeContent(path, golangAttributes, payload, assetKind);
    extractAndSaveMod(path, golangAttributes);
  }

  @Inject public  GolangHostedFacetImpl(final GolangDataAccess golangDataAccess,
                               final CompressedContentExtractor compressedContentExtractor);

}