View Javadoc
1   /*
2    * This file is part of Waarp Project (named also Waarp or GG).
3    *
4    *  Copyright (c) 2019, Waarp SAS, and individual contributors by the @author
5    *  tags. See the COPYRIGHT.txt in the distribution for a full listing of
6    * individual contributors.
7    *
8    *  All Waarp Project is free software: you can redistribute it and/or
9    * modify it under the terms of the GNU General Public License as published by
10   * the Free Software Foundation, either version 3 of the License, or (at your
11   * option) any later version.
12   *
13   * Waarp is distributed in the hope that it will be useful, but WITHOUT ANY
14   * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15   * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16   *
17   *  You should have received a copy of the GNU General Public License along with
18   * Waarp . If not, see <http://www.gnu.org/licenses/>.
19   */
20  
21  /*
22   * Licensed under the Apache License, Version 2.0 (the "License");
23   * you may not use this file except in compliance with the License.
24   * You may obtain a copy of the License at
25   *
26   *     http://www.apache.org/licenses/LICENSE-2.0
27   *
28   * Unless required by applicable law or agreed to in writing, software
29   * distributed under the License is distributed on an "AS IS" BASIS,
30   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31   * See the License for the specific language governing permissions and
32   * limitations under the License.
33   */
34  package org.waarp.compress.zstdsafe;
35  
36  import java.util.Arrays;
37  
38  class FrameHeader {
39    final int headerSize;
40    final int windowSize;
41    final int contentSize;
42    final int dictionaryId;
43    final boolean hasChecksum;
44  
45    public FrameHeader(final int headerSize, final int windowSize,
46                       final int contentSize, final int dictionaryId,
47                       final boolean hasChecksum) {
48      this.headerSize = headerSize;
49      this.windowSize = windowSize;
50      this.contentSize = contentSize;
51      this.dictionaryId = dictionaryId;
52      this.hasChecksum = hasChecksum;
53    }
54  
55    @Override
56    public boolean equals(final Object o) {
57      if (this == o) {
58        return true;
59      }
60      if (o == null || getClass() != o.getClass()) {
61        return false;
62      }
63      final FrameHeader that = (FrameHeader) o;
64      return headerSize == that.headerSize && windowSize == that.windowSize &&
65             contentSize == that.contentSize &&
66             dictionaryId == that.dictionaryId && hasChecksum == that.hasChecksum;
67    }
68  
69    @Override
70    public int hashCode() {
71      return Arrays.hashCode(new Object[] {
72          headerSize, windowSize, contentSize, dictionaryId, hasChecksum
73      });
74    }
75  
76    @Override
77    public String toString() {
78      return new StringBuilder(FrameHeader.class.getSimpleName() + "[").append(
79                                                                           "headerSize=").append(headerSize).append(", ").append("windowSize=")
80                                                                       .append(
81                                                                           windowSize)
82                                                                       .append(
83                                                                           ", ")
84                                                                       .append(
85                                                                           "contentSize=")
86                                                                       .append(
87                                                                           contentSize)
88                                                                       .append(
89                                                                           ", ")
90                                                                       .append(
91                                                                           "dictionaryId=")
92                                                                       .append(
93                                                                           dictionaryId)
94                                                                       .append(
95                                                                           ", ")
96                                                                       .append(
97                                                                           "hasChecksum=")
98                                                                       .append(
99                                                                           hasChecksum)
100                                                                      .append(
101                                                                          "]")
102                                                                      .toString();
103   }
104 }