[ https://issues.apache.org/jira/browse/NIFI-1833?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15957161#comment-15957161 ]
ASF GitHub Bot commented on NIFI-1833: -------------------------------------- Github user jtstorck commented on a diff in the pull request: https://github.com/apache/nifi/pull/1636#discussion_r109962882 --- Diff: nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/utils/BlobInfo.java --- @@ -0,0 +1,188 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.azure.storage.utils; + +import java.io.Serializable; + +import org.apache.nifi.processors.standard.util.ListableEntity; + +public class BlobInfo implements Comparable<BlobInfo>, Serializable, ListableEntity { + private static final long serialVersionUID = 1L; + + private final String primaryUri; + private final String secondaryUri; + private final String contentType; + private final String contentLanguage; + private final String etag; + private final long lastModifiedTime; + private final long length; + private final String blobType; + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public String getPrimaryUri() { + return primaryUri; + } + + public String getSecondaryUri() { + return secondaryUri; + } + + public String getContentType() { + return contentType; + } + + public String getContentLanguage() { + return contentLanguage; + } + + public String getEtag() { + return etag; + } + + public long getLastModifiedTime() { + return lastModifiedTime; + } + + public long getLength() { + return length; + } + + public String getBlobType() { + return blobType; + } + + public static final class Builder { + private String primaryUri; + private String secondaryUri; + private String contentType; + private String contentLanguage; + private String etag; + private long lastModifiedTime; + private long length; + private String blobType; + + public Builder primaryUri(String primaryUri) { + this.primaryUri = primaryUri; + return this; + } + + public Builder secondaryUri(String secondaryUri) { + this.secondaryUri = secondaryUri; + return this; + } + + public Builder contentType(String contentType) { + this.contentType = contentType; + return this; + } + + public Builder contentLanguage(String contentLanguage) { + this.contentLanguage = contentLanguage; + return this; + } + + public Builder etag(String etag) { + this.etag = etag; + return this; + } + + public Builder lastModifiedTime(long lastModifiedTime) { + this.lastModifiedTime = lastModifiedTime; + return this; + } + + public Builder length(long length) { + this.length = length; + return this; + } + + public Builder blobType(String blobType) { + this.blobType = blobType; + return this; + } + + public BlobInfo build() { + return new BlobInfo(this); + } + + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((etag == null) ? 0 : etag.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + BlobInfo other = (BlobInfo) obj; + if (etag == null) { + if (other.etag != null) { + return false; + } + } else if (!etag.equals(other.etag)) { + return false; + } + return true; + } + + @Override + public int compareTo(BlobInfo o) { + return etag.compareTo(o.etag); + } + + protected BlobInfo(final Builder builder) { --- End diff -- With the builder being available for constructing this class, typically this constructor should be private. > Add support for Azure Blob Storage and Table Storage > ---------------------------------------------------- > > Key: NIFI-1833 > URL: https://issues.apache.org/jira/browse/NIFI-1833 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions > Affects Versions: 0.6.1 > Reporter: Simon Elliston Ball > Priority: Minor > > It would be useful to have an Azure equivalent of the current S3 capability. > Azure also provides a Table storage mechanism, providing simple key value > storage. Since the Azure SDKs are Apache Licensed, this should be reasonably > straightforward. A first cut is available as an addition to the existing > azure bundle. -- This message was sent by Atlassian JIRA (v6.3.15#6346)