Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2015 Edward Samson
   *
   * Licensed 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 ph.samson.maven.enforcer.rule.checksum;
 
 import java.io.File;
Enforcer Rule to verify checksum of a file.
 
 public class FileChecksum implements EnforcerRule {
 
     private File file;
     private String checksum;
     private String type = "sha1";
 
     public File getFile() {
         return ;
     }

    
The file to check.

Parameters:
file file
 
     public void setFile(File file) {
         this. = file;
     }
 
     public String getChecksum() {
         return ;
     }

    
The expected checksum value.

Parameters:
checksum checksum
 
     public void setChecksum(String checksum) {
         this. = checksum;
     }
 
     public String getType() {
         return ;
     }

    
The checksum algorithm to use. Default: "sha1". Possible values: "crc32", "crc32c", "md5", "sha1", "sha256", "sha512".

Parameters:
type algorithm
 
     public void setType(String type) {
         this. = type;
     }
 
     @Override
     public void execute(EnforcerRuleHelper erhthrows EnforcerRuleException {
         if ( == null || !.canRead()) {
             throw new EnforcerRuleException("Missing file: " + );
         }
 
         HashFunction hashFn;
         switch () {
             case "crc32":
                 hashFn = Hashing.crc32();
                 break;
             case "crc32c":
                 hashFn = Hashing.crc32c();
                 break;
             case "md5":
                 hashFn = Hashing.md5();
                 break;
             case "sha1":
                 hashFn = Hashing.sha1();
                 break;
             case "sha256":
                hashFn = Hashing.sha256();
                break;
            case "sha512":
                hashFn = Hashing.sha512();
                break;
            default:
                throw new EnforcerRuleException(
                        "Unsupported hash type: " + );
        }
        String hash;
        try {
            hash = hashFn.hashBytes(Files.readAllBytes(.toPath()))
                    .toString();
        } catch (IOException ex) {
            throw new EnforcerRuleException("Failed reading " + ex);
        }
        if (!hash.equalsIgnoreCase()) {
            throw new EnforcerRuleException( + " hash of " +  + " was "
                    + hash + " but expected " + );
        }
    }
    @Override
    public boolean isCacheable() {
        return false;
    }
    @Override
    public boolean isResultValid(EnforcerRule er) {
        return false;
    }
    @Override
    public String getCacheId() {
        return "no cache";
    }
New to GrepCode? Check out our FAQ X