return sb.toString();
}
List<FactMetaModel> toModel(String drl) throws DroolsParserException {
if (drl != null && drl.startsWith("#advanced")) {
throw new DroolsParserException("Using advanced editor");
}
DrlParser parser = new DrlParser();
PackageDescr pkg = parser.parse(drl);
if (parser.hasErrors()) {
throw new DroolsParserException("The model drl " + drl + " is not valid");
}
if (pkg == null) return new ArrayList<FactMetaModel>();
List<TypeDeclarationDescr> types = pkg.getTypeDeclarations();
List<FactMetaModel> list = new ArrayList<FactMetaModel>(types.size());
for (TypeDeclarationDescr td : types) {
FactMetaModel mm = new FactMetaModel();
mm.name = td.getTypeName();
if (td.getMetaAttributes().size() > 0) {
//can't do this yet
throw new DroolsParserException("will have to use text for this");
}
Map<String, TypeFieldDescr> fields = td.getFields();
for (Iterator<Map.Entry<String, TypeFieldDescr>> iterator = fields.entrySet().iterator(); iterator.hasNext();) {
Map.Entry<String, TypeFieldDescr> en = iterator.next();
String fieldName = en.getKey();
TypeFieldDescr descr = en.getValue();
if (descr.getMetaAttributes().size() > 0) {
//can't do this yet
throw new DroolsParserException("using text");
}
FieldMetaModel fm = new FieldMetaModel(fieldName, descr.getPattern().getObjectType());
mm.fields.add(fm);
}