nxt.blockchain

## Class Appendix.AbstractAppendix

- java.lang.Object
- - nxt.blockchain.Appendix.AbstractAppendix

- All Implemented Interfaces:
    Appendix
  Direct Known Subclasses:
    Attachment.AbstractAttachment, EncryptedMessageAppendix, EncryptToSelfMessageAppendix, MessageAppendix, PhasingAppendix, PrunableEncryptedMessageAppendix, PrunablePlainMessageAppendix, PublicKeyAnnouncementAppendix
  Enclosing interface:
    Appendix

      public abstract static class Appendix.AbstractAppendix
      extends java.lang.Object
      implements Appendix

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface nxt.blockchain.Appendix

      `Appendix.AbstractAppendix, Appendix.Encryptable, Appendix.Parser, Appendix.Prunable`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractAppendix()`
    `protected` | `AbstractAppendix(java.nio.ByteBuffer buffer)`
    `protected` | `AbstractAppendix(int version)`
    `protected` | `AbstractAppendix(org.json.simple.JSONObject attachmentData)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `apply(Transaction transaction, Account senderAccount, Account recipientAccount)`
    `abstract java.lang.String` | `getAppendixName()`
    `Fee` | `getBaselineFee(Transaction transaction)`
    `int` | `getBaselineFeeHeight()`
    `Fee` | `getFee(Transaction transaction, int height)`
    `int` | `getFullSize()`
    `org.json.simple.JSONObject` | `getJSONObject()`
    `protected abstract int` | `getMySize()`
    `Fee` | `getNextFee(Transaction transaction)`
    `int` | `getNextFeeHeight()`
    `int` | `getSize()`
    `byte` | `getVersion()`
    `abstract boolean` | `isPhasable()`
    `boolean` | `isPhased(Transaction transaction)`
    `void` | `loadPrunable(Transaction transaction)`
    `void` | `loadPrunable(Transaction transaction, boolean includeExpiredPrunable)`
    `void` | `putBytes(java.nio.ByteBuffer buffer)`
    `protected abstract void` | `putMyBytes(java.nio.ByteBuffer buffer)`
    `protected abstract void` | `putMyJSON(org.json.simple.JSONObject json)`
    `abstract void` | `validate(Transaction transaction)`
    `void` | `validateAtFinish(Transaction transaction)`
    `void` | `validateId(Transaction transaction)`
    `boolean` | `verifyVersion()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface nxt.blockchain.Appendix

      `getAppendixType, hasAppendix, isAllowed`

- - ### Constructor Detail

    - #### AbstractAppendix

          protected AbstractAppendix(org.json.simple.JSONObject attachmentData)

    - #### AbstractAppendix

          protected AbstractAppendix(java.nio.ByteBuffer buffer)

    - #### AbstractAppendix

          protected AbstractAppendix(int version)

    - #### AbstractAppendix

          protected AbstractAppendix()

  - ### Method Detail

    - #### getAppendixName

          public abstract java.lang.String getAppendixName()

    - #### getSize

          public final int getSize()

      Specified by:
        `getSize` in interface `Appendix`

    - #### getFullSize

          public final int getFullSize()

      Specified by:
        `getFullSize` in interface `Appendix`

    - #### getMySize

          protected abstract int getMySize()

    - #### putBytes

          public final void putBytes(java.nio.ByteBuffer buffer)

      Specified by:
        `putBytes` in interface `Appendix`

    - #### putMyBytes

          protected abstract void putMyBytes(java.nio.ByteBuffer buffer)

    - #### getJSONObject

          public final org.json.simple.JSONObject getJSONObject()

      Specified by:
        `getJSONObject` in interface `Appendix`

    - #### putMyJSON

          protected abstract void putMyJSON(org.json.simple.JSONObject json)

    - #### getVersion

          public final byte getVersion()

      Specified by:
        `getVersion` in interface `Appendix`

    - #### verifyVersion

          public boolean verifyVersion()

    - #### getBaselineFeeHeight

          public int getBaselineFeeHeight()

      Specified by:
        `getBaselineFeeHeight` in interface `Appendix`

    - #### getBaselineFee

          public Fee getBaselineFee(Transaction transaction)

      Specified by:
        `getBaselineFee` in interface `Appendix`

    - #### getNextFeeHeight

          public int getNextFeeHeight()

      Specified by:
        `getNextFeeHeight` in interface `Appendix`

    - #### getNextFee

          public Fee getNextFee(Transaction transaction)

      Specified by:
        `getNextFee` in interface `Appendix`

    - #### getFee

          public final Fee getFee(Transaction transaction,
                                  int height)

      Specified by:
        `getFee` in interface `Appendix`

    - #### validate

          public abstract void validate(Transaction transaction)
                                 throws NxtException.ValidationException

      Throws:
        `NxtException.ValidationException`

    - #### validateId

          public void validateId(Transaction transaction)
                          throws NxtException.ValidationException

      Throws:
        `NxtException.ValidationException`

    - #### validateAtFinish

          public void validateAtFinish(Transaction transaction)
                                throws NxtException.ValidationException

      Throws:
        `NxtException.ValidationException`

    - #### apply

          public abstract void apply(Transaction transaction,
                                     Account senderAccount,
                                     Account recipientAccount)

    - #### loadPrunable

          public final void loadPrunable(Transaction transaction)

    - #### loadPrunable

          public void loadPrunable(Transaction transaction,
                                   boolean includeExpiredPrunable)

    - #### isPhasable

          public abstract boolean isPhasable()

    - #### isPhased

          public final boolean isPhased(Transaction transaction)

      Specified by:
        `isPhased` in interface `Appendix`