00001 package com.ohrasys.cad.bnf.validator; 00002 import com.ohrasys.cad.bnf.*; 00003 import java.util.*; 00004 00005 public class TermValidator 00006 extends BNFOneOfManyRequiredTest { 00007 public TermValidator() 00008 throws BNFTestException {super(createTests());} 00009 00010 private static BNFTestImplementor[] createTests() 00011 throws BNFTestException { 00012 BNFTestImplementor result[] = new BNFTestImplementor[] { 00013 new BracketedTermValidator(), 00014 new BracedTermValidator(), new FactorsValidator() 00015 }; 00016 return result; 00017 } 00018 public Object collect(){ 00019 if(formatting){ 00020 return format(ValidatorUtils.flattenList((List)super.collect())); 00021 } else { 00022 return ValidatorUtils.flattenList((List)super.collect()); 00023 } 00024 } 00025 00026 private Object format(Object tokens){ 00027 if(!(tokens instanceof List)) return tokens; 00028 StringBuffer result = new StringBuffer(((List)tokens).size()); 00029 List tokenList = (List)tokens; 00030 for(int i = 0; i < tokenList.size(); i++){ 00031 result.append(tokenList.get(i)); 00032 } 00033 return result.toString().trim(); 00034 } 00035 }