@Override protected ParseResult parseTokenWithSeparator( LoadContext context, FactSetDefinition def, String value) { StringTokenizer aTok = new StringTokenizer(value, Constants.PIPE); String fileType = aTok.nextToken(); if (!aTok.hasMoreTokens()) { return new ParseResult.Fail( getTokenName() + " expects 2 PIPE separated values, found 1 in: " + value, context); } String identifier = aTok.nextToken(); if (aTok.hasMoreTokens()) { return new ParseResult.Fail( getTokenName() + " expects 3 PIPE separated values, found too many in: " + value, context); } Class<? extends Loadable> cl; if ("GLOBAL".equals(fileType)) { cl = CDOMObject.class; } else { cl = StringPClassUtil.getClassFor(fileType); if (cl == null) { throw new IllegalArgumentException( "Invalid Data Definition Location (no class): " + fileType); } } def.setUsableLocation(cl); def.setFactSetName(identifier); return ParseResult.SUCCESS; }