/ app / src / main / java / com / reandroid / arsc / item / IndirectInteger.java
IndirectInteger.java
 1  /*
 2   *  Copyright (C) 2022 github.com/REAndroid
 3   *
 4   *  Licensed under the Apache License, Version 2.0 (the "License");
 5   *  you may not use this file except in compliance with the License.
 6   *  You may obtain a copy of the License at
 7   *
 8   *      http://www.apache.org/licenses/LICENSE-2.0
 9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package com.reandroid.arsc.item;
17  
18  import com.reandroid.arsc.base.Block;
19  
20  public class IndirectInteger extends IndirectItem<BlockItem> implements IntegerReference {
21      public IndirectInteger(BlockItem blockItem, int offset){
22          super(blockItem, offset);
23      }
24      @Override
25      public int get(){
26          return Block.getInteger(getBytesInternal(), getOffset());
27      }
28      @Override
29      public void set(int value){
30          Block.putInteger(getBytesInternal(), getOffset(), value);
31      }
32      public boolean isNull(){
33          return (getBytesInternal().length - getOffset()) < 4;
34      }
35      @Override
36      public String toString(){
37          if(isNull()){
38              return "NULL";
39          }
40          return Integer.toString(get());
41      }
42  }