public ASNClassFactory(GramarFile fileName) { RawClassFactory rcf = new RawClassFactory(fileName); String rootNodeName = rcf.getRootClassName(); RawClass rawclass = rcf.getRawClass(rootNodeName); // System.out.printf("\n Got RawClass for %s from file %s = \n %s ", rootNodeName, fileName // ,rawclass); ASNClass asnClass = toASNClass(rcf, rawclass, Field.ROOTFIELD); asnClass.toArray(); // We assume that the Top Level ASNClass is always an Array Type. Map<String, String> options = loadControlFile(fileName); String OPTION_BLOCKSIZE = "BLOCKSIZE"; String OPTION_PADDINGBYTE = "PADDINGBYTE"; if (options.containsKey(OPTION_BLOCKSIZE)) { asnClass.blockSize = Integer.parseInt(options.get(OPTION_BLOCKSIZE)); } if (options.containsKey(OPTION_PADDINGBYTE)) { asnClass.paddingByte = (byte) Integer.parseInt(options.get(OPTION_PADDINGBYTE), 16); } field = new Field(Field.ROOTFIELD, Field.ROOTFIELD, AsnConst.POS_NOT_SPECIFIED, asnClass); }