/** * Creates a FSDMsg with a specific base path for the message format schema, and a base schema name. For instance, * FSDMsg("file:src/data/NDC-", "root") will look for a file: src/data/NDC-root.xml * @param basePath schema path * @param baseSchema schema name */ public FSDMsg (String basePath, String baseSchema) { super(); fields = new LinkedHashMap<>(); separators = new LinkedHashMap<>(); this.basePath = basePath; this.baseSchema = baseSchema; charset = ISOUtil.CHARSET; readCount = 0; setSeparator("FS", FS); setSeparator("US", US); setSeparator("GS", GS); setSeparator("RS", RS); setSeparator("EOF", EOF); setSeparator("PIPE", PIPE); } public String getBasePath() {
private boolean isSeparated(String separator) { /* * if type's last two characters appear in our Map of separators, * return true */ if (separator == null) return false; else if (separators.containsKey (separator)) return true; else if (isDummySeparator (separator)) return true; else try { if (Character.isDefined(Integer.parseInt(separator,16))) { setSeparator(separator, (char)Long.parseLong(separator,16)); return true; } } catch (NumberFormatException ignored) { throw new IllegalArgumentException("Invalid separator '"+ separator + "'"); } throw new IllegalArgumentException("isSeparated called on separator="+ separator+" which was not previously defined."); }
@Test public void testSetSeparator() throws Throwable { FSDMsg fSDMsg = new FSDMsg("testFSDMsgBasePath"); fSDMsg.setSeparator("testFSDMsgSeparatorName", ' '); assertEquals("fSDMsg.separators.get(\"testFSDMsgSeparatorName\")", Character.valueOf(' '), fSDMsg.separators.get("testFSDMsgSeparatorName")); }
@Test public void testIsSeparator1() throws Throwable { FSDMsg fSDMsg = new FSDMsg("testFSDMsgBasePath"); fSDMsg.setSeparator("testFSDMsgSeparatorName", ' '); boolean result = fSDMsg.isSeparator((byte) 32); assertTrue("result", result); }