NewSubHeaderType.java

/*
 * Copyright (c) 2007 innoSysTec (R) GmbH, Germany. All rights reserved.
 * Original author: Edmund Wagner
 * Creation date: 24.05.2007
 *
 * Source: $HeadURL$
 * Last changed: $LastChangedDate$
 *
 *
 * the unrar licence applies to all junrar source and binary distributions
 * you are not allowed to use this source to re-create the RAR compression algorithm
 *
 * Here some html entities which can be used for escaping javadoc tags:
 * "&":  "&" or "&"
 * "<":  "&#060;" or "&lt;"
 * ">":  "&#062;" or "&gt;"
 * "@":  "&#064;"
 */
package com.github.junrar.rarfile;

import java.util.Arrays;

/**
 * subheaders new version of the info headers
 *
 * @author $LastChangedBy$
 * @version $LastChangedRevision$
 */
public class NewSubHeaderType {


    public static final NewSubHeaderType SUBHEAD_TYPE_CMT = new NewSubHeaderType(new byte[]{'C', 'M', 'T'});
    public static final NewSubHeaderType SUBHEAD_TYPE_ACL = new NewSubHeaderType(new byte[]{'A', 'C', 'L'});
    public static final NewSubHeaderType SUBHEAD_TYPE_STREAM = new NewSubHeaderType(new byte[]{'S', 'T', 'M'});
    public static final NewSubHeaderType SUBHEAD_TYPE_UOWNER = new NewSubHeaderType(new byte[]{'U', 'O', 'W'});
    public static final NewSubHeaderType SUBHEAD_TYPE_AV = new NewSubHeaderType(new byte[]{'A', 'V'});
    /**
     * recovery record subheader
     */
    public static final NewSubHeaderType SUBHEAD_TYPE_RR = new NewSubHeaderType(new byte[]{'R', 'R'});
    public static final NewSubHeaderType SUBHEAD_TYPE_OS2EA = new NewSubHeaderType(new byte[]{'E', 'A', '2'});
    public static final NewSubHeaderType SUBHEAD_TYPE_BEOSEA = new NewSubHeaderType(new byte[]{'E', 'A', 'B', 'E'});

    private final byte[] headerTypes;

    private NewSubHeaderType(byte[] headerTypes) {
        this.headerTypes = headerTypes;
    }

    /**
     * @param toCompare .
     * @return Returns true if the given byte array matches to the internal byte array of this header.
     */
    public boolean byteEquals(byte[] toCompare) {
        return Arrays.equals(this.headerTypes, toCompare);
    }

    @Override
    public String toString() {
        return new String(this.headerTypes);
    }
}