@Command("98")
@TestCaseDefault("98NNNNNN00000019700101    0100002.00AO|BXNNNNNNNNNNNNNNNN|")
@TestCasePopulated("98YYYYYY12312319700101    0100001.00AFscreenMessage|AGprintLine|AMlibraryName|ANterminalLocation|AOinstitutionId|BXYYYYYYYYYYYYYYYY|")
public class ACSStatus extends Message {
    private static final long serialVersionUID = -611426325284828647L;
    @PositionedField(start = 2, end = 2)
    private Boolean onlineStatus;
    @PositionedField(start = 3, end = 3)
    private Boolean checkInOk;
    @PositionedField(start = 4, end = 4)
    private Boolean checkOutOk;
    @PositionedField(start = 5, end = 5)
    private Boolean ACSRenewalPolicy;
    @PositionedField(start = 6, end = 6)
    private Boolean statusUpdateOk;
    @PositionedField(start = 7, end = 7)
    private Boolean offlineOk;
    @PositionedField(start = 8, end = 10)
    private Integer timeoutPeriod;
    @PositionedField(start = 11, end = 13)
    private Integer retriesAllowed;
    @PositionedField(start = 14, end = 31)
    private Date dateTimeSync;
    @PositionedField(start = 32, end = 35)
    private ProtocolVersion protocolVersion;
    @TaggedField
    private String institutionId;
    @TaggedField
    private String libraryName;
    @TaggedField
    private SupportedMessages supportedMessages = new SupportedMessages();
    @TaggedField
    private String terminalLocation;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public Boolean isCheckInOk() {
        return this.checkInOk;
    }

    public Boolean isCheckOutOk() {
        return this.checkOutOk;
    }

    public Date getDateTimeSync() {
        return this.dateTimeSync;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public String getLibraryName() {
        return this.libraryName;
    }

    public Boolean isOfflineOk() {
        return this.offlineOk;
    }

    public Boolean isOnlineStatus() {
        return this.onlineStatus;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public ProtocolVersion getProtocolVersion() {
        return this.protocolVersion;
    }

    public Boolean isACSRenewalPolicy() {
        return this.ACSRenewalPolicy;
    }

    public Integer getRetriesAllowed() {
        return this.retriesAllowed;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public Boolean isStatusUpdateOk() {
        return this.statusUpdateOk;
    }

    public SupportedMessages getSupportedMessages() {
        return this.supportedMessages;
    }

    public String getTerminalLocation() {
        return this.terminalLocation;
    }

    public Integer getTimeoutPeriod() {
        return this.timeoutPeriod;
    }

    public void setTimeoutPeriod(Integer timeoutPeriod) {
        this.timeoutPeriod = timeoutPeriod;
    }

    public void setTerminalLocation(String terminalLocation) {
        this.terminalLocation = terminalLocation;
    }

    /**
     * Use getSupportedMessages().set(SupportedMessages.VALUE)
     * getSupportedMessages().unset(SupportedMessages.VALUE)
     * getSupportedMessages().unsetAll()
     */
    @Deprecated
    public void setSupportedMessages(SupportedMessages supportedMessages) {
        this.supportedMessages = supportedMessages;
    }

    public void setStatusUpdateOk(Boolean statusUpdateOk) {
        this.statusUpdateOk = statusUpdateOk;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public void setRetriesAllowed(Integer retriesAllowed) {
        this.retriesAllowed = retriesAllowed;
    }

    public void setACSRenewalPolicy(Boolean ACSRenewalPolicy) {
        this.ACSRenewalPolicy = ACSRenewalPolicy;
    }

    public void setProtocolVersion(ProtocolVersion protocolVersion) {
        this.protocolVersion = protocolVersion;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }

    public void setOnlineStatus(Boolean onlineStatus) {
        this.onlineStatus = onlineStatus;
    }

    public void setOfflineOk(Boolean offlineOk) {
        this.offlineOk = offlineOk;
    }

    public void setLibraryName(String libraryName) {
        this.libraryName = libraryName;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public void setDateTimeSync(Date dateTimeSync) {
        this.dateTimeSync = dateTimeSync;
    }

    public void setCheckOutOk(Boolean checkOutOk) {
        this.checkOutOk = checkOutOk;
    }

    public void setCheckInOk(Boolean checkInOk) {
        this.checkInOk = checkInOk;
    }
} @Command("10")
@TestCaseDefault("100NUN19700101    010000AB|AO|AQ|")
@TestCasePopulated("101YYY19700101    010000AApatronIdentifier|ABitemIdentifier|AFscreenMessage|AGprintLine|AJtitleIdentifier|AOinstitutionId|AQpermanentLocation|CHitemProperties|CK010|CLsortBin|")
public class CheckInResponse extends Message {
    private static final long serialVersionUID = -3403534383487215711L;
    @PositionedField(start = 2, end = 2)
    private Boolean ok;
    @PositionedField(start = 3, end = 3)
    private Boolean resensitize;
    @PositionedField(start = 4, end = 4)
    private Boolean magneticMedia;
    @PositionedField(start = 5, end = 5)
    private Boolean alert;
    @PositionedField(start = 6, end = 23)
    private Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String itemIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String permanentLocation;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String titleIdentifier;
    @TaggedField
    private String sortBin;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String patronIdentifier;
    @TaggedField
    private MediaType mediaType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String itemProperties;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public Boolean isAlert() {
        return this.alert;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public String getItemIdentifier() {
        return this.itemIdentifier;
    }

    public String getItemProperties() {
        return this.itemProperties;
    }

    public Boolean isMagneticMedia() {
        return this.magneticMedia;
    }

    public MediaType getMediaType() {
        return this.mediaType;
    }

    public Boolean isOk() {
        return this.ok;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public String getPermanentLocation() {
        return this.permanentLocation;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public Boolean isResensitize() {
        return this.resensitize;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public String getSortBin() {
        return this.sortBin;
    }

    public String getTitleIdentifier() {
        return this.titleIdentifier;
    }

    public Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public void setTitleIdentifier(String titleIdentifier) {
        this.titleIdentifier = titleIdentifier;
    }

    public void setSortBin(String sortBin) {
        this.sortBin = sortBin;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public void setResensitize(Boolean resensitize) {
        this.resensitize = resensitize;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }

    public void setPermanentLocation(String permanentLocation) {
        this.permanentLocation = permanentLocation;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public void setOk(Boolean ok) {
        this.ok = ok;
    }

    public void setMediaType(MediaType mediaType) {
        this.mediaType = mediaType;
    }

    public void setMagneticMedia(Boolean magneticMedia) {
        this.magneticMedia = magneticMedia;
    }

    public void setItemProperties(String itemProperties) {
        this.itemProperties = itemProperties;
    }

    public void setItemIdentifier(String itemIdentifier) {
        this.itemIdentifier = itemIdentifier;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public void setAlert(Boolean alert) {
        this.alert = alert;
    }
} @Command("12")
@TestCaseDefault("120NUN19700101    010000AA|AB|AH|AJ|AO|")
@TestCasePopulated("121YYY19700101    010000AApatronIdentifier|ABitemIdentifier|AFscreenMessage|AGprintLine|AHdueDate|AJtitleIdentifier|AOinstitutionId|BHGBP|BKtransactionId|BT09|BVfeeAmount|CHitemProperties|CIY|CK010|")
public class CheckOutResponse extends Message {
    private static final long serialVersionUID = 9222995766948881317L;
    @PositionedField(start = 2, end = 2)
    private Boolean ok;
    @PositionedField(start = 3, end = 3)
    private Boolean renewalOk;
    @PositionedField(start = 4, end = 4)
    private Boolean magneticMedia;
    @PositionedField(start = 5, end = 5)
    private Boolean desensitize;
    @PositionedField(start = 6, end = 23)
    private Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String itemIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String titleIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String dueDate;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private FeeType feeType;
    @TaggedField
    private Boolean securityInhibit;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private CurrencyType currencyType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String feeAmount;
    @TaggedField
    private MediaType mediaType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String itemProperties;
    @TaggedField
    private String transactionId;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public CurrencyType getCurrencyType() {
        return this.currencyType;
    }

    public Boolean isDesensitize() {
        return this.desensitize;
    }

    public String getDueDate() {
        return this.dueDate;
    }

    public String getFeeAmount() {
        return this.feeAmount;
    }

    public FeeType getFeeType() {
        return this.feeType;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public String getItemIdentifier() {
        return this.itemIdentifier;
    }

    public String getItemProperties() {
        return this.itemProperties;
    }

    public Boolean isMagneticMedia() {
        return this.magneticMedia;
    }

    public MediaType getMediaType() {
        return this.mediaType;
    }

    public Boolean isOk() {
        return this.ok;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public Boolean isRenewalOk() {
        return this.renewalOk;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public Boolean isSecurityInhibit() {
        return this.securityInhibit;
    }

    public String getTitleIdentifier() {
        return this.titleIdentifier;
    }

    public Date getTransactionDate() {
        return this.transactionDate;
    }

    public String getTransactionId() {
        return this.transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public void setTransactionDate(Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public void setTitleIdentifier(String titleIdentifier) {
        this.titleIdentifier = titleIdentifier;
    }

    public void setSecurityInhibit(Boolean securityInhibit) {
        this.securityInhibit = securityInhibit;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public void setRenewalOk(Boolean renewalOk) {
        this.renewalOk = renewalOk;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public void setOk(Boolean ok) {
        this.ok = ok;
    }

    public void setMediaType(MediaType mediaType) {
        this.mediaType = mediaType;
    }

    public void setMagneticMedia(Boolean magneticMedia) {
        this.magneticMedia = magneticMedia;
    }

    public void setItemProperties(String itemProperties) {
        this.itemProperties = itemProperties;
    }

    public void setItemIdentifier(String itemIdentifier) {
        this.itemIdentifier = itemIdentifier;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public void setFeeType(FeeType feeType) {
        this.feeType = feeType;
    }

    public void setFeeAmount(String feeAmount) {
        this.feeAmount = feeAmount;
    }

    public void setDueDate(String dueDate) {
        this.dueDate = dueDate;
    }

    public void setDesensitize(Boolean desensitize) {
        this.desensitize = desensitize;
    }

    public void setCurrencyType(CurrencyType currencyType) {
        this.currencyType = currencyType;
    }
} @Command("36")
@TestCaseDefault("36N19700101    010000AA|AO|")
@TestCasePopulated("36Y19700101    010000AApatronIdentifier|AFscreenMessage|AGprintLine|AOinstitutionId|")
public class EndSessionResponse extends Message {
    private static final long serialVersionUID = 8955079727656656773L;
    @PositionedField(start = 2, end = 2)
    private Boolean endSession;
    @PositionedField(start = 3, end = 20)
    private Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public Boolean isEndSession() {
        return this.endSession;
    }

    public void setEndSession(Boolean endSession) {
        this.endSession = endSession;
    }

    public java.util.Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(java.util.Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }
} @Command("38")
@TestCaseDefault("38N19700101    010000AA|AO|")
@TestCasePopulated("38Y19700101    010000AApatronIdentifier|AFscreenMessage|AGprintLine|AOinstitutionId|BKtransactionId|")
public class FeePaidResponse extends Message {
    private static final long serialVersionUID = 3684506970071368895L;
    @PositionedField(start = 2, end = 2)
    private Boolean paymentAccepted;
    @PositionedField(start = 3, end = 20)
    private java.util.Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField
    private String transactionId;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public Boolean isPaymentAccepted() {
        return this.paymentAccepted;
    }

    public void setPaymentAccepted(Boolean paymentAccepted) {
        this.paymentAccepted = paymentAccepted;
    }

    public java.util.Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(java.util.Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public String getTransactionId() {
        return this.transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }
} @Command("16")
@TestCaseDefault("160N19700101    010000AA|AO|")
@TestCasePopulated("161Y19700101    010000AApatronIdentifier|ABitemIdentifier|AFscreenMessage|AGprintLine|AJtitleIdentifier|AOinstitutionId|BR123456789|BSpickupLocation|BW19700101    010000|")
public class HoldResponse extends Message {
    private static final long serialVersionUID = 2267131763722749419L;
    @PositionedField(start = 2, end = 2)
    private Boolean ok;
    @PositionedField(start = 3, end = 3)
    private Boolean available;
    @PositionedField(start = 4, end = 21)
    private java.util.Date transactionDate;
    @TaggedField
    private java.util.Date expirationDate;
    @TaggedField
    private Integer queuePosition;
    @TaggedField
    private String pickupLocation;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String itemIdentifier;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String titleIdentifier;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public Boolean isOk() {
        return this.ok;
    }

    public void setOk(Boolean ok) {
        this.ok = ok;
    }

    public Boolean isAvailable() {
        return this.available;
    }

    public void setAvailable(Boolean available) {
        this.available = available;
    }

    public java.util.Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(java.util.Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public java.util.Date getExpirationDate() {
        return this.expirationDate;
    }

    public void setExpirationDate(java.util.Date expirationDate) {
        this.expirationDate = expirationDate;
    }

    public Integer getQueuePosition() {
        return this.queuePosition;
    }

    public void setQueuePosition(Integer queuePosition) {
        this.queuePosition = queuePosition;
    }

    public String getPickupLocation() {
        return this.pickupLocation;
    }

    public void setPickupLocation(String pickupLocation) {
        this.pickupLocation = pickupLocation;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public String getItemIdentifier() {
        return this.itemIdentifier;
    }

    public void setItemIdentifier(String itemIdentifier) {
        this.itemIdentifier = itemIdentifier;
    }

    public String getTitleIdentifier() {
        return this.titleIdentifier;
    }

    public void setTitleIdentifier(String titleIdentifier) {
        this.titleIdentifier = titleIdentifier;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }
} @Command("18")
@TestCaseDefault("1801000119700101    010000AB|AJ|CF00000|")
@TestCasePopulated("1813030919700101    010000ABitemIdentifier|AFscreenMessage|AGprintLine|AHdueDate|AJtitleIdentifier|APcurrentLocation|AQpermanentLocation|BGowner|BHGBP|BVfeeAmount|CF12345|CHitemProperties|CJ19700101    010000|CK010|CM19700101    010000|")
public class ItemInformationResponse extends Message {
    private static final long serialVersionUID = 6408854778106704492L;
    @PositionedField(start = 2, end = 3)
    private CirculationStatus circulationStatus;
    @PositionedField(start = 4, end = 5)
    private SecurityMarker securityMarker;
    @PositionedField(start = 6, end = 7, policy=FieldPolicy.REQUIRED)
    private FeeType feeType;
    @PositionedField(start = 8, end = 25)
    private Date transactionDate;
    @TaggedField
    private Integer holdQueueLength;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String dueDate;
    @TaggedField
    private Date recallDate;
    @TaggedField
    private Date holdPickupDate;
    @TaggedField(FieldPolicy.REQUIRED)
    private String itemIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String titleIdentifier;
    @TaggedField
    private String owner;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private CurrencyType currencyType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String feeAmount;
    @TaggedField
    private MediaType mediaType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String permanentLocation;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String currentLocation;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String itemProperties;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public CirculationStatus getCirculationStatus() {
        return this.circulationStatus;
    }

    public CurrencyType getCurrencyType() {
        return this.currencyType;
    }

    public String getCurrentLocation() {
        return this.currentLocation;
    }

    public String getDueDate() {
        return this.dueDate;
    }

    public String getFeeAmount() {
        return this.feeAmount;
    }

    public FeeType getFeeType() {
        return this.feeType;
    }

    public Date getHoldPickupDate() {
        return this.holdPickupDate;
    }

    public Integer getHoldQueueLength() {
        return this.holdQueueLength;
    }

    public String getItemIdentifier() {
        return this.itemIdentifier;
    }

    public String getItemProperties() {
        return this.itemProperties;
    }

    public MediaType getMediaType() {
        return this.mediaType;
    }

    public String getOwner() {
        return this.owner;
    }

    public String getPermanentLocation() {
        return this.permanentLocation;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public Date getRecallDate() {
        return this.recallDate;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public SecurityMarker getSecurityMarker() {
        return this.securityMarker;
    }

    public String getTitleIdentifier() {
        return this.titleIdentifier;
    }

    public Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public void setTitleIdentifier(String titleIdentifier) {
        this.titleIdentifier = titleIdentifier;
    }

    public void setSecurityMarker(SecurityMarker securityMarker) {
        this.securityMarker = securityMarker;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public void setRecallDate(Date recallDate) {
        this.recallDate = recallDate;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }

    public void setPermanentLocation(String permanentLocation) {
        this.permanentLocation = permanentLocation;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public void setMediaType(MediaType mediaType) {
        this.mediaType = mediaType;
    }

    public void setItemProperties(String itemProperties) {
        this.itemProperties = itemProperties;
    }

    public void setItemIdentifier(String itemIdentifier) {
        this.itemIdentifier = itemIdentifier;
    }

    public void setHoldQueueLength(Integer holdQueueLength) {
        this.holdQueueLength = holdQueueLength;
    }

    public void setHoldPickupDate(Date holdPickupDate) {
        this.holdPickupDate = holdPickupDate;
    }

    public void setFeeType(FeeType feeType) {
        this.feeType = feeType;
    }

    public void setFeeAmount(String feeAmount) {
        this.feeAmount = feeAmount;
    }

    public void setDueDate(String dueDate) {
        this.dueDate = dueDate;
    }

    public void setCurrentLocation(String currentLocation) {
        this.currentLocation = currentLocation;
    }

    public void setCurrencyType(CurrencyType currencyType) {
        this.currencyType = currencyType;
    }

    public void setCirculationStatus(CirculationStatus circulationStatus) {
        this.circulationStatus = circulationStatus;
    }
} @Command("20")
@TestCaseDefault("20019700101    010000AB|")
@TestCasePopulated("20119700101    010000ABitemIdentifier|AFscreenMessage|AGprintLine|AJtitleIdentifier|CHitemProperties|")
public class ItemStatusUpdateResponse extends Message {

    private static final long serialVersionUID = 428496319623237121L;
    @PositionedField(start = 2, end = 2)
    private Boolean ok;
    @PositionedField(start = 3, end = 20)
    private java.util.Date transactionDate;
    @TaggedField(FieldPolicy.REQUIRED)
    private String itemIdentifier;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String titleIdentifier;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String itemProperties;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public Boolean isOk() {
        return this.ok;
    }

    public void setOk(Boolean ok) {
        this.ok = ok;
    }

    public java.util.Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(java.util.Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public String getItemIdentifier() {
        return this.itemIdentifier;
    }

    public void setItemIdentifier(String itemIdentifier) {
        this.itemIdentifier = itemIdentifier;
    }

    public String getTitleIdentifier() {
        return this.titleIdentifier;
    }

    public void setTitleIdentifier(String titleIdentifier) {
        this.titleIdentifier = titleIdentifier;
    }

    public String getItemProperties() {
        return this.itemProperties;
    }

    public void setItemProperties(String itemProperties) {
        this.itemProperties = itemProperties;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }
} @Command("94")
@TestCaseDefault("940")
@TestCasePopulated("941")
public class LoginResponse extends Message {
    private static final long serialVersionUID = -7739633345494042411L;
    @PositionedField(start = 2, end = 2)
    private Boolean ok;

    public Boolean isOk() {
        return this.ok;
    }

    public void setOk(Boolean ok) {
        this.ok = ok;
    }

} @Command("26")
@TestCaseDefault("26              00019700101    010000AA|AE|AO|")
@TestCasePopulated("26YYYYYYYYYYYYYY02719700101    010000AApatronIdentifier|AEpersonalName|AFscreenMessage|AGprintLine|AOinstitutionId|BLY|CQY|")
public class PatronEnableResponse extends Message {
    private static final long serialVersionUID = 5941325479001778479L;
    @PositionedField(start = 2, end = 15)
    private PatronStatus patronStatus = new PatronStatus();
    @PositionedField(start = 16, end = 18)
    private Language language;
    @PositionedField(start = 19, end = 36)
    private java.util.Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField
    private String personalName;
    @TaggedField
    private Boolean validPatronPassword;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;
    @TaggedField
    private Boolean validPatron;

    public PatronStatus getPatronStatus() {
        return this.patronStatus;
    }

    /**
     * Use getPatronStatus().set(PatronStatus.FIELD)
     * getPatronStatus().unset(PatronStatus.FIELD) getPatronStatus().unsetAll()
     */
    @Deprecated
    public void setPatronStatus(PatronStatus patronStatus) {
        this.patronStatus = patronStatus;
    }

    public Language getLanguage() {
        return this.language;
    }

    public void setLanguage(Language language) {
        this.language = language;
    }

    public java.util.Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(java.util.Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public String getPersonalName() {
        return this.personalName;
    }

    public void setPersonalName(String personalName) {
        this.personalName = personalName;
    }

    public Boolean isValidPatron() {
        return this.validPatron;
    }

    public void setValidPatron(Boolean validPatron) {
        this.validPatron = validPatron;
    }

    public Boolean isValidPatronPassword() {
        return this.validPatronPassword;
    }

    public void setValidPatronPassword(Boolean validPatronPassword) {
        this.validPatronPassword = validPatronPassword;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }
} @Command("64")
@TestCaseDefault("64              00019700101    010000                        AA|AE|AO|")
@TestCasePopulated("64YYYYYYYYYYYYYY02719700101    010000123412341234123412341234AApatronIdentifier|AEpersonalName|AFscreenMessage|AGprintLine|AOinstitutionId|ASholdItems1|ASholdItems2|AToverdueItems1|AToverdueItems2|AUchargedItems1|AUchargedItems2|AVfineItems1|AVfineItems2|BDhomeAddress|BEemailAddress|BFhomePhoneNumber|BHGBP|BLY|BUrecallItems1|BUrecallItems2|BVfeeAmount|BZ1234|CA1234|CB1234|CCfeeLimit|CDunavailableHoldItems1|CDunavailableHoldItems2|CQY|")
public class PatronInformationResponse extends Message {
    private static final long serialVersionUID = 5284231102576474180L;
    @PositionedField(start = 2, end = 15)
    private PatronStatus patronStatus = new PatronStatus();
    @PositionedField(start = 16, end = 18)
    private Language language;
    @PositionedField(start = 19, end = 36)
    private Date transactionDate;
    @PositionedField(start = 37, end = 40)
    private Integer holdItemsCount;
    @PositionedField(start = 41, end = 44)
    private Integer overdueItemsCount;
    @PositionedField(start = 45, end = 48)
    private Integer chargedItemsCount;
    @PositionedField(start = 49, end = 52)
    private Integer fineItemsCount;
    @PositionedField(start = 53, end = 56)
    private Integer recallItemsCount;
    @PositionedField(start = 57, end = 60)
    private Integer unavailableHoldsCount;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField
    private String personalName;
    @TaggedField
    private Integer holdItemsLimit;
    @TaggedField
    private Integer overdueItemsLimit;
    @TaggedField
    private Integer chargedItemsLimit;
    @TaggedField
    private Boolean validPatron;
    @TaggedField
    private Boolean validPatronPassword;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private CurrencyType currencyType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String feeAmount;
    @TaggedField
    private String feeLimit;
    @TaggedField
    private String[] holdItems;
    @TaggedField
    private String[] overdueItems;
    @TaggedField
    private String[] chargedItems;
    @TaggedField
    private String[] fineItems;
    @TaggedField
    private String[] recallItems;
    @TaggedField
    private String[] unavailableHoldItems;
    @TaggedField
    private String homeAddress;
    @TaggedField
    private String emailAddress;
    @TaggedField
    private String homePhoneNumber;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public String[] getChargedItems() {
        return this.chargedItems;
    }

    public Integer getChargedItemsCount() {
        return this.chargedItemsCount;
    }

    public Integer getChargedItemsLimit() {
        return this.chargedItemsLimit;
    }

    public CurrencyType getCurrencyType() {
        return this.currencyType;
    }

    public String getEmailAddress() {
        return this.emailAddress;
    }

    public String getFeeAmount() {
        return this.feeAmount;
    }

    public String getFeeLimit() {
        return this.feeLimit;
    }

    public String[] getFineItems() {
        return this.fineItems;
    }

    public Integer getFineItemsCount() {
        return this.fineItemsCount;
    }

    public String[] getHoldItems() {
        return this.holdItems;
    }

    public Integer getHoldItemsCount() {
        return this.holdItemsCount;
    }

    public Integer getHoldItemsLimit() {
        return this.holdItemsLimit;
    }

    public String getHomeAddress() {
        return this.homeAddress;
    }

    public String getHomePhoneNumber() {
        return this.homePhoneNumber;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public Language getLanguage() {
        return this.language;
    }

    public String[] getOverdueItems() {
        return this.overdueItems;
    }

    public Integer getOverdueItemsCount() {
        return this.overdueItemsCount;
    }

    public Integer getOverdueItemsLimit() {
        return this.overdueItemsLimit;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public PatronStatus getPatronStatus() {
        return this.patronStatus;
    }

    public String getPersonalName() {
        return this.personalName;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public String[] getRecallItems() {
        return this.recallItems;
    }

    public Integer getRecallItemsCount() {
        return this.recallItemsCount;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public Date getTransactionDate() {
        return this.transactionDate;
    }

    public Integer getUnavailableHoldsCount() {
        return this.unavailableHoldsCount;
    }

    public String[] getUnavailableHoldItems() {
        return this.unavailableHoldItems;
    }

    public Boolean isValidPatron() {
        return this.validPatron;
    }

    public Boolean isValidPatronPassword() {
        return this.validPatronPassword;
    }

    public void setValidPatronPassword(Boolean validPatronPassword) {
        this.validPatronPassword = validPatronPassword;
    }

    public void setValidPatron(Boolean validPatron) {
        this.validPatron = validPatron;
    }

    public void setUnavailableHoldItems(String[] unavailableHoldItems) {
        this.unavailableHoldItems = unavailableHoldItems;
    }

    public void setUnavailableHoldsCount(Integer unavailableHoldsCount) {
        this.unavailableHoldsCount = unavailableHoldsCount;
    }

    public void setTransactionDate(Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public void setRecallItemsCount(Integer recallItemsCount) {
        this.recallItemsCount = recallItemsCount;
    }

    public void setRecallItems(String[] recallItems) {
        this.recallItems = recallItems;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }

    public void setPersonalName(String personalName) {
        this.personalName = personalName;
    }

    @Deprecated
    public void setPatronStatus(PatronStatus patronStatus) {
        this.patronStatus = patronStatus;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public void setOverdueItemsLimit(Integer overdueItemsLimit) {
        this.overdueItemsLimit = overdueItemsLimit;
    }

    public void setOverdueItemsCount(Integer overdueItemsCount) {
        this.overdueItemsCount = overdueItemsCount;
    }

    public void setOverdueItems(String[] overdueItems) {
        this.overdueItems = overdueItems;
    }

    public void setLanguage(Language language) {
        this.language = language;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public void setHomePhoneNumber(String homePhoneNumber) {
        this.homePhoneNumber = homePhoneNumber;
    }

    public void setHomeAddress(String homeAddress) {
        this.homeAddress = homeAddress;
    }

    public void setHoldItemsLimit(Integer holdItemsLimit) {
        this.holdItemsLimit = holdItemsLimit;
    }

    public void setHoldItemsCount(Integer holdItemsCount) {
        this.holdItemsCount = holdItemsCount;
    }

    public void setHoldItems(String[] holdItems) {
        this.holdItems = holdItems;
    }

    public void setFineItemsCount(Integer fineItemsCount) {
        this.fineItemsCount = fineItemsCount;
    }

    public void setFineItems(String[] fineItems) {
        this.fineItems = fineItems;
    }

    public void setFeeLimit(String feeLimit) {
        this.feeLimit = feeLimit;
    }

    public void setFeeAmount(String feeAmount) {
        this.feeAmount = feeAmount;
    }

    public void setChargedItems(String[] chargedItems) {
        this.chargedItems = chargedItems;
    }

    public void setChargedItemsCount(Integer chargedItemsCount) {
        this.chargedItemsCount = chargedItemsCount;
    }

    public void setChargedItemsLimit(Integer chargedItemsLimit) {
        this.chargedItemsLimit = chargedItemsLimit;
    }

    public void setCurrencyType(CurrencyType currencyType) {
        this.currencyType = currencyType;
    }

    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }
} @Command("23")
@TestCaseDefault("2300019700101    010000AA|AC|AD|AO|")
@TestCasePopulated("2302719700101    010000AApatronIdentifier|ACterminalPassword|ADpatronPassword|AOinstitutionId|")
public class PatronStatusRequest extends Message {
    private static final long serialVersionUID = -4867507215519281871L;
    @PositionedField(start = 2, end = 4)
    private Language language;
    @PositionedField(start = 5, end = 22)
    private Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String terminalPassword;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronPassword;


    public String getInstitutionId() {
        return this.institutionId;
    }

    public Language getLanguage() {
        return this.language;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public String getPatronPassword() {
        return this.patronPassword;
    }

    public String getTerminalPassword() {
        return this.terminalPassword;
    }

    public Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public void setTerminalPassword(String terminalPassword) {
        this.terminalPassword = terminalPassword;
    }

    public void setPatronPassword(String patronPassword) {
        this.patronPassword = patronPassword;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public void setLanguage(Language language) {
        this.language = language;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }
} @Command("24")
@TestCaseDefault("24              00019700101    010000AA|AE|AO|")
@TestCasePopulated("24YYYYYYYYYYYYYY02719700101    010000AApatronIdentifier|AEpersonalName|AFscreenMessage|AGprintLine|AOinstitutionId|BHGBP|BLY|BVfeeAmount|CQY|")
public class PatronStatusResponse extends Message {
    private static final long serialVersionUID = 163945073911230183L;
    @PositionedField(start = 2, end = 15)
    private PatronStatus patronStatus = new PatronStatus();
    @PositionedField(start = 16, end = 18)
    private Language language;
    @PositionedField(start = 19, end = 36)
    private Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField
    private String personalName;
    @TaggedField
    private Boolean validPatron;
    @TaggedField
    private Boolean validPatronPassword;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private CurrencyType currencyType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String feeAmount;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public CurrencyType getCurrencyType() {
        return this.currencyType;
    }

    public String getFeeAmount() {
        return this.feeAmount;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public Language getLanguage() {
        return this.language;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public PatronStatus getPatronStatus() {
        return this.patronStatus;
    }

    public String getPersonalName() {
        return this.personalName;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public Date getTransactionDate() {
        return this.transactionDate;
    }

    public Boolean isValidPatron() {
        return this.validPatron;
    }

    public Boolean isValidPatronPassword() {
        return this.validPatronPassword;
    }

    public void setValidPatronPassword(Boolean validPatronPassword) {
        this.validPatronPassword = validPatronPassword;
    }

    public void setValidPatron(Boolean validPatron) {
        this.validPatron = validPatron;
    }

    public void setTransactionDate(Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }

    public void setPersonalName(String personalName) {
        this.personalName = personalName;
    }

    @Deprecated
    public void setPatronStatus(PatronStatus patronStatus) {
        this.patronStatus = patronStatus;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public void setLanguage(Language language) {
        this.language = language;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public void setFeeAmount(String feeAmount) {
        this.feeAmount = feeAmount;
    }

    public void setCurrencyType(CurrencyType currencyType) {
        this.currencyType = currencyType;
    }
} @Command("66")
@TestCaseDefault("6600000000019700101    010000AO|")
@TestCasePopulated("6611234123419700101    010000AFscreenMessage|AGprintLine|AOinstitutionId|")
public class RenewAllResponse extends Message {
    private static final long serialVersionUID = 5428582577226346891L;
    @PositionedField(start = 2, end = 2)
    private Boolean ok;
    @PositionedField(start = 3, end = 6)
    private Integer renewedCount;
    @PositionedField(start = 7, end = 10)
    private Integer unrenewedCount;
    @PositionedField(start = 11, end = 28)
    private java.util.Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public Boolean isOk() {
        return this.ok;
    }

    public void setOk(Boolean ok) {
        this.ok = ok;
    }

    public Integer getRenewedCount() {
        return this.renewedCount;
    }

    public void setRenewedCount(Integer renewedCount) {
        this.renewedCount = renewedCount;
    }

    public Integer getUnrenewedCount() {
        return this.unrenewedCount;
    }

    public void setUnrenewedCount(Integer unrenewedCount) {
        this.unrenewedCount = unrenewedCount;
    }

    public java.util.Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(java.util.Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }
} @Command("30")
@TestCaseDefault("300NUN19700101    010000AA|AB|AH|AJ|AO|")
@TestCasePopulated("301YYY19700101    010000AApatronIdentifier|ABitemIdentifier|AFscreenMessage|AGprintLine|AHdueDate|AJtitleIdentifier|AOinstitutionId|BHGBP|BKtransactionId|BT09|BVfeeAmount|CHitemProperties|CIY|CK010|")
public class RenewResponse extends Message {
    private static final long serialVersionUID = 434658072913047721L;
    @PositionedField(start = 2, end = 2)
    private Boolean ok;
    @PositionedField(start = 3, end = 3)
    private Boolean renewalOk;
    @PositionedField(start = 4, end = 4)
    private Boolean magneticMedia;
    @PositionedField(start = 5, end = 5)
    private Boolean desensitize;
    @PositionedField(start = 6, end = 23)
    private java.util.Date transactionDate;
    @TaggedField
    private String institutionId;
    @TaggedField(FieldPolicy.REQUIRED)
    private String patronIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String itemIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String titleIdentifier;
    @TaggedField(FieldPolicy.REQUIRED)
    private String dueDate;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private FeeType feeType;
    @TaggedField
    private Boolean securityInhibit;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private CurrencyType currencyType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String feeAmount;
    @TaggedField
    private MediaType mediaType;
    @TaggedField(FieldPolicy.NOT_REQUIRED)
    private String itemProperties;
    @TaggedField
    private String transactionId;
    @TaggedField
    private String screenMessage;
    @TaggedField
    private String printLine;

    public Boolean isOk() {
        return this.ok;
    }

    public void setOk(Boolean ok) {
        this.ok = ok;
    }

    public Boolean isRenewalOk() {
        return this.renewalOk;
    }

    public void setRenewalOk(Boolean renewalOk) {
        this.renewalOk = renewalOk;
    }

    public Boolean isMagneticMedia() {
        return this.magneticMedia;
    }

    public void setMagneticMedia(Boolean magneticMedia) {
        this.magneticMedia = magneticMedia;
    }

    public Boolean isDesensitize() {
        return this.desensitize;
    }

    public void setDesensitize(Boolean desensitize) {
        this.desensitize = desensitize;
    }

    public java.util.Date getTransactionDate() {
        return this.transactionDate;
    }

    public void setTransactionDate(java.util.Date transactionDate) {
        this.transactionDate = transactionDate;
    }

    public String getInstitutionId() {
        return this.institutionId;
    }

    public void setInstitutionId(String institutionId) {
        this.institutionId = institutionId;
    }

    public String getPatronIdentifier() {
        return this.patronIdentifier;
    }

    public void setPatronIdentifier(String patronIdentifier) {
        this.patronIdentifier = patronIdentifier;
    }

    public String getItemIdentifier() {
        return this.itemIdentifier;
    }

    public void setItemIdentifier(String itemIdentifier) {
        this.itemIdentifier = itemIdentifier;
    }

    public String getTitleIdentifier() {
        return this.titleIdentifier;
    }

    public void setTitleIdentifier(String titleIdentifier) {
        this.titleIdentifier = titleIdentifier;
    }

    public String getDueDate() {
        return this.dueDate;
    }

    public void setDueDate(String dueDate) {
        this.dueDate = dueDate;
    }

    public FeeType getFeeType() {
        return this.feeType;
    }

    public void setFeeType(FeeType feeType) {
        this.feeType = feeType;
    }

    public Boolean isSecurityInhibit() {
        return this.securityInhibit;
    }

    public void setSecurityInhibit(Boolean securityInhibit) {
        this.securityInhibit = securityInhibit;
    }

    public CurrencyType getCurrencyType() {
        return this.currencyType;
    }

    public void setCurrencyType(CurrencyType currencyType) {
        this.currencyType = currencyType;
    }

    public String getFeeAmount() {
        return this.feeAmount;
    }

    public void setFeeAmount(String feeAmount) {
        this.feeAmount = feeAmount;
    }

    public MediaType getMediaType() {
        return this.mediaType;
    }

    public void setMediaType(MediaType mediaType) {
        this.mediaType = mediaType;
    }

    public String getItemProperties() {
        return this.itemProperties;
    }

    public void setItemProperties(String itemProperties) {
        this.itemProperties = itemProperties;
    }

    public String getTransactionId() {
        return this.transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getScreenMessage() {
        return this.screenMessage;
    }

    public void setScreenMessage(String screenMessage) {
        this.screenMessage = screenMessage;
    }

    public String getPrintLine() {
        return this.printLine;
    }

    public void setPrintLine(String printLine) {
        this.printLine = printLine;
    }
} @Command("99")
@TestCaseDefault("9900002.00")
@TestCasePopulated("9921231.00")
public class SCStatus extends Message {
    private static final long serialVersionUID = -6198644705404364776L;
    @PositionedField(start = 2, end = 2)
    private StatusCode statusCode;
    @PositionedField(start = 3, end = 5)
    private Integer maxPrintWidth;
    @PositionedField(start = 6, end = 9)
    private ProtocolVersion protocolVersion;

    public Integer getMaxPrintWidth() {
        return this.maxPrintWidth;
    }

    public ProtocolVersion getProtocolVersion() {
        return this.protocolVersion;
    }

    public StatusCode getStatusCode() {
        return this.statusCode;
    }

    public void setStatusCode(StatusCode statusCode) {
        this.statusCode = statusCode;
    }

    public void setProtocolVersion(ProtocolVersion protocolVersion) {
        this.protocolVersion = protocolVersion;
    }

    public void setMaxPrintWidth(Integer maxPrintWidth) {
        this.maxPrintWidth = maxPrintWidth;
    }
} public abstract class AbstractDriver implements Driver {

	@Override
	public final ACSStatus Status(SCStatus msg) {
      ACSStatus response = new ACSStatus(); 
      if (this instanceof BlockPatronOperation) {
      	response.getSupportedMessages().setBlockPatron(true);
      }
      if (this instanceof CheckInOperation) {
	      response.getSupportedMessages().setCheckIn(true);
      }
      if (this instanceof CheckOutOperation) {
	      response.getSupportedMessages().setCheckOut(true);
		  }
      if (this instanceof EndPatronSessionOperation) {
	        response.getSupportedMessages().setEndPatronSession(true);
		  }
      if (this instanceof FeePaidOperation) {
	        response.getSupportedMessages().setFeePaid(true);
	    }
      if (this instanceof HoldOperation) {
	        response.getSupportedMessages().setHold(true);
	    }
		  if (this instanceof ItemInformationOperation) {
	        response.getSupportedMessages().setItemInformation(true);
    	}
		  if (this instanceof ItemStatusUpdateOperation) {
	        response.getSupportedMessages().setItemStatusUpdate(true);
	    }
	    if (this instanceof LoginOperation) {
	        response.getSupportedMessages().setLogin(true);
	    }
	    if (this instanceof PatronEnableOperation) {
	        response.getSupportedMessages().setPatronEnable(true);
	    }
	    if (this instanceof PatronInformationOperation) {
	        response.getSupportedMessages().setPatronInformation(true);
	    }
	    if (this instanceof PatronStatusOperation) {
	        response.getSupportedMessages().setPatronStatusRequest(true);
	    }
	    if (this instanceof RenewOperation) {
	        response.getSupportedMessages().setRenew(true);
	    }
	    if (this instanceof RenewAllOperation) {
	        response.getSupportedMessages().setRenewAll(true);
	    }
	    if (this instanceof RequestResendOperation) {
	        response.getSupportedMessages().setRequestScAcsResend(true);
	    }
	    if (this instanceof StatusOperation) {
	        response.getSupportedMessages().setScAcsStatus(true);
    	}
	    
	    response.setDateTimeSync(new Date());
	    response.setProtocolVersion(ProtocolVersion.VERSION_2_00);
	    response.setRetriesAllowed(999);
	    response.setTimeoutPeriod(999);
      response.setOnlineStatus(true);
		  return this.Status(response, msg);
	}
	
	abstract public ACSStatus Status(ACSStatus status, SCStatus msg);
} public interface BlockPatronOperation {

	public abstract PatronStatusResponse BlockPatron(BlockPatron msg);

} public interface CheckInOperation {

	public abstract CheckInResponse CheckIn(CheckIn msg);

} public interface CheckOutOperation {

	public abstract CheckOutResponse CheckOut(CheckOut msg);

} public interface EndPatronSessionOperation {

	public abstract EndSessionResponse EndPatronSession(EndPatronSession msg);

} public interface FeePaidOperation {

	public abstract FeePaidResponse FeePaid(FeePaid msg);

} public interface HoldOperation {

	public abstract HoldResponse Hold(Hold msg);

} public interface ItemInformationOperation {

	public abstract ItemInformationResponse ItemInformation(ItemInformation msg);

} public interface ItemStatusUpdateOperation {

	public abstract ItemStatusUpdateResponse ItemStatusUpdate(
			ItemStatusUpdate msg);

} public interface LoginOperation {

	public abstract LoginResponse Login(Login msg);

} public interface PatronEnableOperation {

	public abstract PatronEnableResponse PatronEnable(PatronEnable msg);

} public interface PatronInformationOperation {

	public abstract PatronInformationResponse PatronInformation(
			PatronInformation msg);

} public interface PatronStatusOperation {

	public abstract PatronStatusResponse PatronStatus(PatronStatusRequest msg);

} public interface RenewAllOperation {
    public RenewAllResponse RenewAll(RenewAll msg);

} public interface RenewOperation {

	public abstract RenewResponse Renew(Renew msg);

}
import com.ceridwen.circulation.SIP.messages.ACSStatus;
import com.ceridwen.circulation.SIP.messages.CheckInResponse;
import com.ceridwen.circulation.SIP.messages.CheckOutResponse;
import com.ceridwen.circulation.SIP.messages.EndSessionResponse;
import com.ceridwen.circulation.SIP.messages.FeePaidResponse;
import com.ceridwen.circulation.SIP.messages.HoldResponse;
import com.ceridwen.circulation.SIP.messages.ItemInformationResponse;
import com.ceridwen.circulation.SIP.messages.ItemStatusUpdateResponse;
import com.ceridwen.circulation.SIP.messages.LoginResponse;
import com.ceridwen.circulation.SIP.messages.PatronEnableResponse;
import com.ceridwen.circulation.SIP.messages.PatronInformationResponse;
import com.ceridwen.circulation.SIP.messages.PatronStatusRequest;
import com.ceridwen.circulation.SIP.messages.PatronStatusResponse;
import com.ceridwen.circulation.SIP.messages.RenewAllResponse;
import com.ceridwen.circulation.SIP.messages.RenewResponse;
import com.ceridwen.circulation.SIP.messages.SCStatus;
import com.ceridwen.circulation.SIP.netty.server.driver.AbstractDriver;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.BlockPatronOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.CheckInOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.CheckOutOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.EndPatronSessionOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.FeePaidOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.HoldOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.ItemInformationOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.ItemStatusUpdateOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.LoginOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.PatronEnableOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.PatronInformationOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.PatronStatusOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.RenewAllOperation;
import com.ceridwen.circulation.SIP.netty.server.driver.operation.RenewOperation;
/* 
 * Copyright (C) 2020 Ceridwen Limited
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.ceridwen.circulation.SIP.samples.netty;


/**
 *
 * @author Matthew
 */
public class DummyDriver extends AbstractDriver
  implements  BlockPatronOperation,
              CheckInOperation,
              CheckOutOperation,
              EndPatronSessionOperation,
              FeePaidOperation,
              HoldOperation,
              ItemInformationOperation,
              ItemStatusUpdateOperation,
              LoginOperation,
              PatronEnableOperation,
              PatronInformationOperation,
              PatronStatusOperation,
              RenewAllOperation,
              RenewOperation
{

  @Override
  public ACSStatus Status(ACSStatus status, SCStatus msg) {
    status.setACSRenewalPolicy(false);
    status.setCheckInOk(true);
    status.setCheckOutOk(true);
    status.setOfflineOk(false);
    status.setStatusUpdateOk(true);
    return status;
  }

    @Override
    public PatronStatusResponse BlockPatron(
            com.ceridwen.circulation.SIP.messages.BlockPatron msg) {
        return new PatronStatusResponse();
    }

    @Override
    public CheckInResponse CheckIn(
            com.ceridwen.circulation.SIP.messages.CheckIn msg) {
        return new CheckInResponse();
    }

    @Override
    public CheckOutResponse CheckOut(
            com.ceridwen.circulation.SIP.messages.CheckOut msg) {
        return new CheckOutResponse();
    }

    @Override
    public EndSessionResponse EndPatronSession(
            com.ceridwen.circulation.SIP.messages.EndPatronSession msg) {
        return new EndSessionResponse();
    }

    @Override
    public FeePaidResponse FeePaid(
            com.ceridwen.circulation.SIP.messages.FeePaid msg) {
        return new FeePaidResponse();
    }

    @Override
    public HoldResponse Hold(com.ceridwen.circulation.SIP.messages.Hold msg) {
        return new HoldResponse();
    }

    @Override
    public ItemInformationResponse ItemInformation(
            com.ceridwen.circulation.SIP.messages.ItemInformation msg) {
        return new ItemInformationResponse();
    }

    @Override
    public ItemStatusUpdateResponse ItemStatusUpdate(