001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jpos.iso; 020 021/** 022 * This interpreter does no conversion and leaves the input the same as the output. 023 * @author jonathan.oconnor@xcom.de 024 */ 025public class LiteralBinaryInterpreter implements BinaryInterpreter 026{ 027 /** 028 * The only instance of this interpreter. 029 */ 030 public static final LiteralBinaryInterpreter INSTANCE = new LiteralBinaryInterpreter(); 031 032 /** 033 * Private constructor so we don't allow multiple instances. 034 */ 035 private LiteralBinaryInterpreter() 036 { 037 } 038 039 /** 040 * Copies the input to the output. 041 */ 042 public void interpret(byte[] data, byte[] b, int offset) 043 { 044 System.arraycopy(data, 0, b, offset, data.length); 045 } 046 047 /** 048 * Copies the data out of the byte array. 049 */ 050 public byte[] uninterpret(byte[] rawData, int offset, int length) 051 { 052 byte[] ret = new byte[length]; 053 System.arraycopy(rawData, offset, ret, 0, length); 054 return ret; 055 } 056 057 /** 058 * Returns nBytes because we are not doing any conversion. 059 */ 060 public int getPackedLength(int nBytes) 061 { 062 return nBytes; 063 } 064}