nxt.blockchain

## Class Attachment.AbstractAttachment

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

- All Implemented Interfaces:
    Appendix, Attachment
  Direct Known Subclasses:
    AbstractShufflingAttachment, AccountInfoAttachment, AccountPropertyAttachment, AliasAssignmentAttachment, AliasBuyAttachment, AliasDeleteAttachment, AliasSellAttachment, AssetDeleteAttachment, AssetIncreaseAttachment, AssetIssuanceAttachment, AssetPropertyAttachment, AssetTransferAttachment, Attachment.EmptyAttachment, Attachment.PropertyDeleteAttachment, ChildBlockAttachment, ContractReferenceAttachment, ContractReferenceDeleteAttachment, CurrencyDeletionAttachment, CurrencyIssuanceAttachment, CurrencyMintingAttachment, CurrencyTransferAttachment, DelistingAttachment, DeliveryAttachment, DividendPaymentAttachment, EffectiveBalanceLeasingAttachment, ExchangeAttachment, FeedbackAttachment, ListingAttachment, OrderCancelAttachment, OrderCancellationAttachment, OrderIssueAttachment, OrderPlacementAttachment, PhasingVoteCastingAttachment, PollCreationAttachment, PriceChangeAttachment, PublishExchangeOfferAttachment, PurchaseAttachment, QuantityChangeAttachment, RefundAttachment, ReserveClaimAttachment, ReserveIncreaseAttachment, SetPhasingAssetControlAttachment, SetPhasingOnlyAttachment, ShufflingCreationAttachment, ShufflingRegistrationAttachment, TaggedDataAttachment, VoteCastingAttachment
  Enclosing interface:
    Attachment

      public abstract static class Attachment.AbstractAttachment
      extends Appendix.AbstractAppendix
      implements Attachment

- - ### Nested Class Summary

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

      `Attachment.AbstractAttachment, Attachment.EmptyAttachment, Attachment.PropertyDeleteAttachment`

    - ### 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` | `AbstractAttachment()`
    `protected` | `AbstractAttachment(java.nio.ByteBuffer buffer)`
    `protected` | `AbstractAttachment(int version)`
    `protected` | `AbstractAttachment(org.json.simple.JSONObject attachmentData)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `apply(Transaction transaction, Account senderAccount, Account recipientAccount)`
    `java.lang.String` | `getAppendixName()`
    `int` | `getAppendixType()`
    `Fee` | `getBaselineFee(Transaction transaction)`
    `int` | `getBaselineFeeHeight()`
    `int` | `getFinishValidationHeight(Transaction transaction)`
    `Fee` | `getNextFee(Transaction transaction)`
    `int` | `getNextFeeHeight()`
    `boolean` | `isAllowed(Chain chain)`
    `boolean` | `isPhasable()`
    `void` | `validate(Transaction transaction)`
    `void` | `validateId(Transaction transaction)`

    - ### Methods inherited from class nxt.blockchain.Appendix.AbstractAppendix

      `getFee, getFullSize, getJSONObject, getMySize, getSize, getVersion, isPhased, loadPrunable, loadPrunable, putBytes, putMyBytes, putMyJSON, validateAtFinish, 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.Attachment

      `getTransactionType`

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

      `getFee, getFullSize, getJSONObject, getSize, getVersion, hasAppendix, isPhased, putBytes`

- - ### Constructor Detail

    - #### AbstractAttachment

          protected AbstractAttachment(java.nio.ByteBuffer buffer)

    - #### AbstractAttachment

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

    - #### AbstractAttachment

          protected AbstractAttachment(int version)

    - #### AbstractAttachment

          protected AbstractAttachment()

  - ### Method Detail

    - #### getAppendixType

          public final int getAppendixType()

      Specified by:
        `getAppendixType` in interface `Appendix`

    - #### getAppendixName

          public final java.lang.String getAppendixName()

      Specified by:
        `getAppendixName` in class `Appendix.AbstractAppendix`

    - #### validate

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

      Specified by:
        `validate` in class `Appendix.AbstractAppendix`
      Throws:
        `NxtException.ValidationException`

    - #### validateId

          public final void validateId(Transaction transaction)
                                throws NxtException.ValidationException

      Overrides:
        `validateId` in class `Appendix.AbstractAppendix`
      Throws:
        `NxtException.ValidationException`

    - #### apply

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

      Specified by:
        `apply` in class `Appendix.AbstractAppendix`

    - #### getBaselineFee

          public final Fee getBaselineFee(Transaction transaction)

      Specified by:
        `getBaselineFee` in interface `Appendix`
      Overrides:
        `getBaselineFee` in class `Appendix.AbstractAppendix`

    - #### getNextFee

          public final Fee getNextFee(Transaction transaction)

      Specified by:
        `getNextFee` in interface `Appendix`
      Overrides:
        `getNextFee` in class `Appendix.AbstractAppendix`

    - #### getBaselineFeeHeight

          public final int getBaselineFeeHeight()

      Specified by:
        `getBaselineFeeHeight` in interface `Appendix`
      Overrides:
        `getBaselineFeeHeight` in class `Appendix.AbstractAppendix`

    - #### getNextFeeHeight

          public final int getNextFeeHeight()

      Specified by:
        `getNextFeeHeight` in interface `Appendix`
      Overrides:
        `getNextFeeHeight` in class `Appendix.AbstractAppendix`

    - #### isPhasable

          public final boolean isPhasable()

      Specified by:
        `isPhasable` in class `Appendix.AbstractAppendix`

    - #### isAllowed

          public final boolean isAllowed(Chain chain)

      Specified by:
        `isAllowed` in interface `Appendix`

    - #### getFinishValidationHeight

          public final int getFinishValidationHeight(Transaction transaction)